Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Ringer/warp

NPM · WARP-MCP · SCANNED SEP 21

SIP trunking, numbers, porting, messaging, billing, and CDR analytics on the Ringer WARP platform

Available components

0 this week 93 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security92
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Ringer/warp-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 24 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 21945 tokens (~162/item across 135 items; 135 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety99
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 17 of 18 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "port_preview_transfer" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 136 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.Ringer/warp MCP server?

io.github.Ringer/warp runs locally as an npm package, launched with npx -y warp-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · warp-mcp

# add to Claude Code
claude mcp add ringer-warp -- npx -y warp-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "ringer-warp": {
      "command": "npx",
      "args": [
        "-y",
        "warp-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ringer-warp": {
      "command": "npx",
      "args": [
        "-y",
        "warp-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add ringer-warp -- npx -y warp-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ringer-warp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "warp-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ringer-warp --command npx --arg -y --arg warp-mcp
# ~/.hermes/config.yaml
mcp_servers:
  ringer-warp:
    command: "npx"
    args: ["-y", "warp-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ringer-warp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "warp-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ringer-warp -t stdio -c npx -a -y warp-mcp
// mcp.json
{
  "mcpServers": {
    "ringer-warp": {
      "command": "npx",
      "args": [
        "-y",
        "warp-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 18 Sept 26 +1
    • Security disclosure: fail → unverified functional
  • 16 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 15 Sept 26 +1
    • Stability: 0.97 → pass security
  • 14 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 13 Sept 26 +1
    • Security disclosure: fail → unverified functional
  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed npm/warp-mcp@1.1.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Ringer/warp-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Ringer/warp-mcp/.github/workflows/publish.yml@refs/tags/v1.1.0
Rekor log index 2618784581
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:10f60e5839f4a9e8bb7105d5d97942aef3c653db2237ed7ff4c40a8598fdbf6a18e8835651873fa8eb5da4621f1d854a411a17fe9b2974061bff63538

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
postinstall unreviewed node postinstall.js

Background: Why install scripts are a supply-chain risk →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 135 exposed · ~17,897 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
port_verify_tin_name ~121

Verify that a TIN matches the provided company name via IRS TIN-Name matching. Used during the port-in flow to confirm the authorizing entity before submission. See also port_lookup_ein and port_lookup_company_details. Errors: INVALID_REQUEST, INVALID_TIN, COMPANY_NAME_REQUIRED, TINCOMPLY_ERROR, VERIFICATION_FAILED.

NameTypeReqDescription
company_namestringyesLegal company name to match against the TIN
tinstringyesTIN/EIN to verify, 9 digits, e.g. 123456789

No output schema declared.

No examples provided.

team_create_role ~191

Create a customer-owned role with the given scope set. Scopes must exist in the platform registry (discover them with acct_list_scopes), be non-superadmin, and be held by the caller (no privilege escalation). To start from an existing role's scopes instead, use team_duplicate_role. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
descriptionstringOptional free-text description of the role's purpose
display_namestringyesHuman-readable role name, e.g. 'Billing Viewer'
namestringyesMachine name for the role (unique within the customer), e.g. 'billing_viewer'
scopesarrayyesPermission scopes the role grants, e.g. ['team:read', 'billing:read']. Use acct_list_scopes to see the full catalog.

No output schema declared.

No examples provided.

team_delete_role ~97

Permanently delete a customer-owned role. HIGH IMPACT and irreversible. Fails when the role is still assigned to any user (reassign members via team_update_member_role first) or when it is a system role. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
role_idstringyesRole UUID (find it via team_list_roles)

No output schema declared.

No examples provided.

team_duplicate_role ~162

Create a new customer-owned role copying the source role's scope set (the source may be a system role). Useful for customizing a system role: duplicate it, then adjust scopes with team_update_role. The caller must hold every copied scope. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
descriptionstringOptional free-text description of the new role
display_namestringyesHuman-readable name for the new role
namestringyesMachine name for the new role (unique within the customer), e.g. 'support_admin_custom'
role_idstringyesSource role UUID to copy scopes from (find it via team_list_roles)

No output schema declared.

No examples provided.

team_get_role ~93

Get one role (system or customer-owned) with its full scope list. Use to inspect exactly what a role grants before assigning it (team_update_member_role) or editing it (team_update_role). Requires the team:read scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
role_idstringyesRole UUID (find it via team_list_roles)

No output schema declared.

No examples provided.

team_list_members ~81

List every user holding a role in this customer, alphabetical by email. Use to see who is on the team and which role each member holds, or to find a user UUID for team_update_member_role / team_remove_member. Requires the team:read scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)

No output schema declared.

No examples provided.

team_list_roles ~75

List the system roles plus this customer's custom roles. Use to find a role UUID for team_update_member_role, team_get_role, team_update_role, team_duplicate_role, or team_delete_role. Requires the team:read scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)

No output schema declared.

No examples provided.

team_remove_member ~118

Remove a user's membership (role assignment) from this customer. HIGH IMPACT: the user immediately loses access and all their sessions are invalidated. You cannot remove yourself. Find the user UUID via team_list_members first. To change a member's permissions instead of removing them, use team_update_member_role. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
user_idstringyesUser UUID of the team member (find it via team_list_members)

No output schema declared.

No examples provided.

team_update_member_role ~140

Assign a role (system or customer-owned, never superadmin) to a member of this customer, replacing their current role. The caller must hold every scope the role grants (no privilege escalation). Find user UUIDs via team_list_members and role UUIDs via team_list_roles. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
role_idstringyesUUID of the role to assign (from team_list_roles); superadmin roles cannot be assigned
user_idstringyesUser UUID of the team member (find it via team_list_members)

No output schema declared.

No examples provided.

team_update_role ~178

Update the display name, description, and/or scope set of a customer-owned role. System roles are immutable. HIGH IMPACT when changing scopes: session invalidation fans out to every user holding the role. Only provided fields are changed. Use acct_list_scopes to discover valid scopes. Requires the team:write scope.

NameTypeReqDescription
customer_idstringyesYour customer UUID (shown in the WARP portal under Settings)
descriptionstringNew free-text description of the role's purpose
display_namestringNew human-readable role name
role_idstringyesRole UUID (find it via team_list_roles)
scopesarrayReplacement scope set, e.g. ['team:read', 'billing:read']. Replaces the role's entire scope list and invalidates sessions of affected users.

No output schema declared.

No examples provided.

trunk_add_ip_acl ~195

Add an IP/netmask to an owned trunk's ACL and sync it to Kamailio, allowing that source IP to send calls. The trunk's auth_type should include IP_ACL (IP_ACL, EITHER, or BOTH — check with trunk_get). Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INVALID_PAYLOAD, INTERNAL_ERROR.

NameTypeReqDescription
descriptionstringFree-text label for this ACL entry (e.g. 'HQ PBX')
enabledbooleanWhether the entry is active (default true)
ipstringyesIPv4 address to allow (e.g. 203.0.113.10)
netmaskintegerCIDR netmask bits, 0-32 (e.g. 32 for a single host)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_create ~309

Create a new trunk group on your account. Enforces your account's allowed number-classes and per-direction capacity ceilings (check acct_get_capacity first). Note: a capacity of 0 means 'direction disabled' — calls in that direction are rejected with 503 + Retry-After. Errors: NO_ACTIVE_CUSTOMER, INVALID_PAYLOAD, VALIDATION_ERROR, INTERNAL_ERROR.

NameTypeReqDescription
allowed_number_classesarrayNumber classes this trunk may carry (must be within the account's allowed classes)
auth_typestringyesAuthentication mode: IP_ACL (source-IP allowlist), DIGEST (SIP username/password), EITHER, or BOTH
capacity_channels_inboundintegerMax concurrent inbound channels; 0 disables inbound
capacity_channels_outboundintegerMax concurrent outbound channels; 0 disables outbound
capacity_cps_inboundintegerMax inbound calls-per-second. 0 is valid and means the direction is disabled (runtime gate returns 503 + Retry-After)
capacity_cps_outboundintegerMax outbound calls-per-second; 0 disables outbound
descriptionstringFree-text description of the trunk
namestringyesTrunk name (required)
sip_configobjectSIP config object persisted as JSONB (e.g. { codecs: [...], dtmf_mode: '...' }). The customer portal only writes codecs and dtmf_mode; other keys are admin-surface.

No output schema declared.

No examples provided.

trunk_create_credential ~122

Create a SIP Digest credential on an owned trunk. The trunk's auth_type must be DIGEST, EITHER, or BOTH (check with trunk_get). The plaintext password is returned exactly once — save it immediately. Step-up MFA required. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, VALIDATION_ERROR, INVALID_PAYLOAD, CONFLICT, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)
usernamestringyesSIP auth username for the new credential (required)

No output schema declared.

No examples provided.

trunk_create_endpoint ~245

Add a dispatcher endpoint (SIP destination) to an owned trunk, either as structured host/port/transport or as a raw_uri. Returns HTTP 207 with a warning when the Kamailio sync is deferred. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INVALID_PAYLOAD, VALIDATION_ERROR, INTERNAL_ERROR.

NameTypeReqDescription
descriptionstringFree-text label for the endpoint
enabledbooleanWhether the endpoint is active in the dispatcher
hoststringSIP destination hostname or IP (structured form; mutually alternative to raw_uri)
portintegerSIP destination port (e.g. 5060)
priorityintegerFailover priority (lower is tried first)
raw_uristringRaw SIP URI (alternative to structured host/port/transport, e.g. sip:pbx.example.com:5061;transport=tls)
transportstringSIP transport protocol
trunk_idstringyesTrunk group UUID (find it with trunk_list)
weightintegerLoad-balancing weight among endpoints of the same priority

No output schema declared.

No examples provided.

trunk_delete ~107

Delete an owned trunk. Rejected with CONFLICT when the trunk has live calls (drain first — check trunk_get_throttle_state) or is referenced by CDRs (disable it via trunk_update instead). Run trunk_get_cascade_preview first to see what will be removed. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, CONFLICT, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_delete_credential ~112

Delete a SIP credential and cascade removal from Redis + Kamailio usrloc. Idempotent (returns 204 when already gone). Use trunk_list_credentials first to find the credential id. Step-up MFA required. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_delete_endpoint ~96

Remove a dispatcher endpoint from an owned trunk and drop it from Kamailio. Use trunk_list_endpoints first to find the endpoint id. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
endpoint_idintegeryesEndpoint ID (integer, find it with trunk_list_endpoints)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_delete_ip_acl ~101

Remove an IP ACL entry from an owned trunk; that source IP can no longer send calls via IP auth. Use trunk_list_ips first to find the ip_id. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
ip_idstringyesIP ACL entry UUID (find it with trunk_list_ips)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_get ~60

Get one trunk group you own, including its IP ACL entries. Use trunk_list first to find the trunk id. Errors: UNAUTHORIZED, INVALID_ID, NOT_FOUND.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_get_cascade_preview ~93

Get per-trunk cascade-preview counts (src_ips, tns_routed_here, active_calls, cdr_count) for an owned trunk. Use before trunk_delete to see what would be affected; active_calls is read live from Redis. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_get_endpoint ~84

Get one dispatcher endpoint on an owned trunk. Use trunk_list_endpoints first to find the endpoint id. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
endpoint_idintegeryesEndpoint ID (integer, find it with trunk_list_endpoints)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_get_throttle_state ~89

Get an owned trunk's configured capacity plus live CPS/channel counters. Use to check current load before draining, deleting, or resizing a trunk. On a Redis read failure the counters are null and counters_available=false (still HTTP 200). Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, NOT_FOUND.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_list ~45

List all of your trunk groups, each with its IP ACL entries. Use this first to find a trunk_id for the other trunk_* tools. Errors: UNAUTHORIZED, INTERNAL_ERROR.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

trunk_list_credential_calls ~111

List active SIP dialogs for a credential's AOR. Note: the dialog-tracking store is not yet live, so this currently returns an empty array. Use trunk_list_credentials first to find the credential id. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_list_credential_registrations ~116

List the current Kamailio usrloc bindings (live SIP registrations) for a credential's AOR. Use to see which devices are registered, or to find a contact_id for trunk_revoke_registration. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, NOT_FOUND, GATEWAY_UNAVAILABLE.

NameTypeReqDescription
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_list_credentials ~83

List SIP Digest credentials for an owned trunk (no HA1, no password), each enriched with live registration_count and active_call_count. Use trunk_list first to find the trunk id. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_list_endpoints ~73

List the dispatcher endpoints (SIP destinations WARP delivers calls to) for an owned trunk. Use trunk_list first to find the trunk id. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_list_ips ~81

List all IP ACL entries for an owned trunk. Use to audit which source IPs may send calls, or to find an ip_id for trunk_update_ip_acl / trunk_delete_ip_acl. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_revoke_registration ~143

Evict one SIP contact binding from Kamailio usrloc for a credential's AOR. Use trunk_list_credential_registrations first to find the contact_id. Step-up MFA required. Errors: INVALID_ID, MISSING_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, NOT_FOUND, GATEWAY_UNAVAILABLE.

NameTypeReqDescription
contact_idstringyesusrloc contact ID of the registration binding to revoke (from trunk_list_credential_registrations)
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_rotate_credential ~110

Generate a new password + HA1 for a SIP credential (username and realm unchanged). The old password stops working immediately and the new plaintext password is returned exactly once — save it immediately. Step-up MFA required. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_update ~303

Update an owned trunk's settings (name, auth type, capacities, SIP config). The trunk being updated is excluded from the account capacity-sum check. POI assignment is silently ignored (admin-only). Step-up MFA required. Use trunk_list first to find the trunk id. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INVALID_PAYLOAD, VALIDATION_ERROR, INTERNAL_ERROR.

NameTypeReqDescription
allowed_number_classesarrayNumber classes this trunk may carry
auth_typestringAuthentication mode: IP_ACL, DIGEST, EITHER, or BOTH
capacity_channels_inboundintegerMax concurrent inbound channels; 0 disables inbound
capacity_channels_outboundintegerMax concurrent outbound channels; 0 disables outbound
capacity_cps_inboundintegerMax inbound calls-per-second; 0 disables inbound (503 + Retry-After at runtime)
capacity_cps_outboundintegerMax outbound calls-per-second; 0 disables outbound
descriptionstringFree-text description of the trunk
namestringTrunk name
sip_configobjectSIP config object persisted as JSONB (e.g. { codecs: [...], dtmf_mode: '...' }). The customer portal only writes codecs and dtmf_mode; other keys are admin-surface.
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_update_credential ~140

Toggle a SIP credential's enabled flag. Disabling drops the Redis HA1 + AOR and tears down active registrations (in-progress dialogs are NOT terminated); enabling restores them. Use trunk_list_credentials first to find the credential id. Step-up MFA required. Errors: INVALID_ID, NO_ACTIVE_CUSTOMER, TRUNK_UNOWNED, INVALID_PAYLOAD, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
cred_idstringyesSIP credential UUID (find it with trunk_list_credentials)
enabledbooleantrue to enable the credential, false to disable it
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

trunk_update_endpoint ~270

Update a dispatcher endpoint on an owned trunk (structured host/port/transport fields or a raw_uri). Returns HTTP 207 with a warning when the Kamailio sync is deferred. Use trunk_list_endpoints first to find the endpoint id. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INVALID_PAYLOAD, VALIDATION_ERROR, INTERNAL_ERROR.

NameTypeReqDescription
descriptionstringFree-text label for the endpoint
enabledbooleanWhether the endpoint is active in the dispatcher
endpoint_idintegeryesEndpoint ID (integer, find it with trunk_list_endpoints)
hoststringSIP destination hostname or IP (structured form; mutually alternative to raw_uri)
portintegerSIP destination port (e.g. 5060)
priorityintegerFailover priority (lower is tried first)
raw_uristringRaw SIP URI (alternative to structured host/port/transport, e.g. sip:pbx.example.com:5061;transport=tls)
transportstringSIP transport protocol
trunk_idstringyesTrunk group UUID (find it with trunk_list)
weightintegerLoad-balancing weight among endpoints of the same priority

No output schema declared.

No examples provided.

trunk_update_ip_acl ~132

Update the description and/or enabled flag of an owned trunk's IP ACL entry. Use trunk_list_ips first to find the ip_id. Step-up MFA required. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, INVALID_PAYLOAD, INTERNAL_ERROR.

NameTypeReqDescription
descriptionstringNew free-text label for the ACL entry
enabledbooleantrue to enable the ACL entry, false to disable it
ip_idstringyesIP ACL entry UUID (find it with trunk_list_ips)
trunk_idstringyesTrunk group UUID (find it with trunk_list)

No output schema declared.

No examples provided.

warp_status ~62

Check warp-mcp configuration and API connectivity. Use this first when any other tool returns an auth error, or to confirm the server is set up correctly. Reports the server version, API base URL, whether an API key is configured, and whether the API accepts it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the io.github.Ringer/warp MCP server?

io.github.Ringer/warp is an MCP server listed in the public MCP registry as io.github.Ringer/warp. SIP trunking, numbers, porting, messaging, billing, and CDR analytics on the Ringer WARP platform. This page covers its npm package (warp-mcp).

Is the io.github.Ringer/warp MCP server safe to use?

io.github.Ringer/warp scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Ringer/warp MCP server expose?

io.github.Ringer/warp exposes 135 tools: warp_status, acct_get_capacity, acct_get_balance, acct_get_utilization, acct_list_scopes, and 130 more. Their descriptions and schemas cost roughly 17,897 tokens of context every time the server is loaded.

Is the io.github.Ringer/warp MCP server still maintained?

io.github.Ringer/warp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Ringer/warp MCP server under?

io.github.Ringer/warp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.