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

io.github.Ringer/warp

NPM · WARP-MCP · SCANNED AUG 3

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

Available components

+28 this week 79 Trust /100
Trust breakdown (6 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 →

Supply Chain Security80
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • 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
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. 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 27 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability81
  • 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 21646 tokens (~160/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 Management27
  • Stability observed for 8 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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · warp-mcp

# add to Claude Code
claude mcp add ringer-warp -- npx -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"]
// 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.

  • 3 Aug 26 +1

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

  • 2 Aug 26 +53
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • Install scripts: unverified → partial security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • The scripts that run when this package is installed changed: postinstall security
    • The attested source repository moved: Ringer/warp-mcp security
    • Stability: unverified → 0.23 functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • MCP protocol: unverified → pass functional
    • Licence: MIT functional
  • 1 Aug 26 −27
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 +1
    • Malware scan: pass → unverified security
    • Install scripts: unverified → partial security
    • Provenance: unverified → pass security
    • The scripts that run when this package is installed changed: postinstall security
    • The attested source repository moved: Ringer/warp-mcp security
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 27 Jul 26 51

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

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.0.2
Rekor log index:
2084915860
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:b72983e1441c9dab7ac2adf29c971e8d57c5b6a03ec6d41de2cb3cf260b115ccad4d8bc63ac7971093c7baad17210682485b7f58b9988eec9aa7d132c
Discovery method:
attestation_endpoint
Install scripts 1 script
Hook Tier Command
postinstall unreviewed node postinstall.js
Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 135 exposed · ~17,617 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.

Tool Tokens
msg_update_campaign ~619

Update (PUT) one of your 10DLC campaigns — e.g. fix sample messages or opt-in flow after a carrier rejection, then resubmit with msg_resubmit_campaign. Errors: INVALID_PAYLOAD (400), NOT_FOUND (404), TNIQ_ERROR (502).

NameTypeReqDescription
age_gatedbooleanTrue if content is age-gated (alcohol, gambling, etc.)
auto_renewalbooleanAuto-renew the campaign at TCR each billing cycle
brand_idstringParent brand ID (messaging-backend UUID from msg_list_brands). Required when creating a campaign.
descriptionstringWhat this campaign sends and to whom (reviewed by carriers)
direct_lendingbooleanTrue if content relates to direct lending or loan arrangements
embedded_linkbooleanTrue if messages may contain URLs/links
embedded_phonebooleanTrue if messages may contain phone numbers
help_keywordsstringComma-separated help keywords, e.g. "HELP,INFO"
help_messagestringReply sent when a subscriber texts a help keyword
idstringyesCampaign ID (messaging-backend UUID, as returned by msg_list_campaigns / msg_create_campaign)
message_flowstringHow subscribers opt in to receive messages (consent flow description; heavily weighted in carrier review)
number_poolbooleanTrue if the campaign uses 50+ sending numbers (number pooling)
optin_keywordsstringComma-separated opt-in keywords, e.g. "START,SUBSCRIBE"
optin_messagestringConfirmation message sent after a subscriber opts in
optout_keywordsstringComma-separated opt-out keywords, e.g. "STOP,UNSUBSCRIBE"
optout_messagestringConfirmation message sent after a subscriber opts out
reference_idstringYour own free-form reference ID for this campaign
sample1stringSample message 1 (representative outbound text)
sample2stringSample message 2
sample3stringSample message 3
sample4stringSample message 4
sample5stringSample message 5
sub_usecasesarraySub-use-case codes for MIXED/LOW_VOLUME campaigns
subscriber_helpbooleanTrue if subscribers can request help via keyword (HELP handling)
subscriber_optinbooleanTrue if subscribers can opt in via keyword
subscriber_optoutbooleanTrue if subscribers can opt out via keyword (STOP handling)
terms_and_conditionsbooleanAffirm the campaign complies with carrier terms and conditions
usecasestringCampaign use case code, e.g. MARKETING, 2FA, CUSTOMER_CARE (see msg_list_use_cases; check msg_get_use_case_requirements first)

No output schema declared.

No examples provided.

net_get_ingress_ips ~54

Get the customer-facing WARP SIP edge servers (UDP/TCP/TLS hosts, IPs, ports) to point a trunk or PBX at. Use when configuring SIP endpoints or firewall rules toward WARP.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

net_get_vendor_ips ~52

Get the WARP egress/origination IPs you must allowlist in your firewall for symmetric SIP signaling. Use when inbound calls from WARP are being blocked or when setting up a new network edge.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

num_bulk_order ~298

Procure and assign up to 200 telephone numbers in one idempotent batch. THIS COSTS MONEY — each number incurs purchase and recurring charges, so confirm the list with the user first. Requires a UUID idempotency key (reused as procurement_request_id); reuse the same key to safely retry. Per-TN failures do not abort the batch. Find candidates with num_search; for a single number use num_order; to route many held numbers to a trunk use num_bulk_route. Errors: INVALID_REQUEST, MISSING_IDEMPOTENCY_KEY, INVALID_IDEMPOTENCY_KEY, TRUNK_UNOWNED (whole-request 403 on default_trunk_id).

NameTypeReqDescription
default_trunk_idstringTrunk-group UUID to route all assigned numbers to (403 TRUNK_UNOWNED if not yours)
idempotency_keystringyesUUID idempotency key for the batch (sent as the Idempotency-Key header; reuse it to retry the same batch safely)
notestringFree-text note recorded on the procurement request
per_tn_overridesobjectMap of TN -> per-number override object, overriding tn_metadata/default_trunk_id for that TN
tn_metadataobjectMetadata applied to every TN in the batch (e.g. friendly_name, description fields)
tnsarrayyesTelephone numbers to procure and assign (max 200)

No output schema declared.

No examples provided.

num_bulk_route ~118

Assign up to 200 HELD numbers you already own to a single voice trunk-group in one request (idempotent at the SQL level). Use after num_bulk_order to bring purchased numbers into service, or to re-home existing numbers. For per-number routing details use num_update_voice. Errors: INVALID_REQUEST, TRUNK_UNOWNED (whole-request 403).

NameTypeReqDescription
tnsarrayyesHeld telephone numbers to route (max 200)
trunk_idstringyesVoice trunk-group UUID to route all listed numbers to

No output schema declared.

No examples provided.

num_delete_sms_config ~79

Remove the SMS usage row from a number you own, disabling SMS on it. To change SMS settings instead of removing them, use num_update_sms. Errors: TN_NOT_OWNED.

NameTypeReqDescription
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_delete_voice_config ~88

Remove the voice usage row from a number you own, DISABLING voice routing on it (inbound calls will stop routing). To change routing instead of removing it, use num_update_voice. Errors: TN_NOT_OWNED.

NameTypeReqDescription
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_get ~80

Get one telephone number you own, including its voice and SMS usage configuration. Use after num_list to inspect a specific TN before updating it with num_update_voice, num_update_sms, or num_update_metadata.

NameTypeReqDescription
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_get_port_out_pin ~106

Check whether a port-out PIN is set on a number you own, and if verification attempts locked it out, when the lock expires (locked_until). The PIN itself is never returned. Set a PIN with num_set_port_out_pin; clear it with num_remove_port_out_pin. Errors: TN_NOT_OWNED.

NameTypeReqDescription
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_list ~197

List the telephone numbers you own, with each number's voice/SMS configuration state. Use to browse or audit your DID/TFN inventory; filter by status, type, search text, or configuration flags. To find NEW purchasable numbers use num_search instead; to inspect one owned number use num_get.

NameTypeReqDescription
pageintegerPage number, 1-based (default 1)
searchstringFree-text search on TN digits or metadata
sizeintegerResults per page (default 50)
sms_configuredbooleanFilter to numbers with (true) or without (false) SMS configuration
statusstringFilter by number status
typestringFilter by number type: did (local) or tfn (toll-free)
voice_configuredbooleanFilter to numbers with (true) or without (false) voice configuration

No output schema declared.

No examples provided.

num_order ~161

Procure a telephone number from upstream inventory and assign it to your account. THIS COSTS MONEY — ordering a number incurs purchase and recurring charges, so confirm the TN with the user first. Find candidates with num_search; after ordering, configure it with num_update_voice / num_update_sms. For up to 200 numbers at once use num_bulk_order. Errors: TN_ALREADY_ASSIGNED, TN_UNAVAILABLE, TNIQ_UPSTREAM_ERROR.

NameTypeReqDescription
descriptionstringFree-text description to set on the new number
friendly_namestringHuman-friendly label to set on the new number
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_release ~124

Release a telephone number you own back to inventory. IRREVERSIBLE from your account's perspective — the number leaves your inventory and may be picked up by others, so confirm with the user first. Errors: TN_NOT_OWNED, POI_LOCKED (number is a POI fallback ANI), TNIQ_UPSTREAM_ERROR.

NameTypeReqDescription
reasonstringFree-text reason for releasing the number (for audit)
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_remove_port_out_pin ~105

Clear the port-out PIN on a number you own (idempotent), removing PIN protection against port-outs. Requires step-up MFA. Returns 204 No Content on success. Check state with num_get_port_out_pin; set a new PIN with num_set_port_out_pin. Errors: TN_NOT_OWNED.

NameTypeReqDescription
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_search ~270

Search upstream inventory for PURCHASABLE telephone numbers by area code, rate center, locality, or digit pattern. Returns paginated candidates you do not yet own. Use this before ordering; then buy a candidate with num_order (or many with num_bulk_order). For numbers you already own use num_list.

NameTypeReqDescription
citystringCity name
last_4_prefixstringPrefix the last 4 digits must start with
localitystringLocality name
npastringArea code (NPA), 3 digits, e.g. "303"
nxxstringExchange (NXX), 3 digits, e.g. "629"
pageintegerPage number, 1-based (default 1)
patternstringDigit pattern to match within the number, e.g. "1234"
rate_centerstringLERG rate center name, e.g. "DENVER"
sizeintegerResults per page (default 25)
statestring2-letter state code, e.g. "CO"
typestringNumber type: "did" (local, default) or "tfn" (toll-free)

No output schema declared.

No examples provided.

num_set_port_out_pin ~136

Set the customer-chosen 4-10 digit port-out PIN on a number you own (hashed at rest; also resets the failed-attempt lock). Requires step-up MFA on the session. Check current state with num_get_port_out_pin; clear with num_remove_port_out_pin. Errors: INVALID_REQUEST, INVALID_PIN, TN_NOT_OWNED.

NameTypeReqDescription
pinstringyesPort-out PIN, 4-10 digits, e.g. "482913"
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_update_metadata ~126

Update the friendly name and/or description on a number you own. Use to label numbers for humans; for routing/E911/CNAM use num_update_voice, for messaging use num_update_sms. Errors: INVALID_REQUEST, TN_NOT_OWNED.

NameTypeReqDescription
descriptionstringLonger free-text description of the number's purpose
friendly_namestringHuman-friendly label for the number, e.g. "Support line"
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_update_sms ~179

Update the customer-owned SMS fields on a number you own: inbound webhook URL/secret, fallback URL, and MMS toggle. Requests containing tniq-owned fields are rejected. To remove SMS entirely use num_delete_sms_config. Errors: INVALID_REQUEST, TN_NOT_OWNED.

NameTypeReqDescription
fallback_inbound_urlstringFallback URL used when the primary inbound webhook fails
inbound_webhook_secretstringShared secret used to sign inbound webhook deliveries
inbound_webhook_urlstringHTTPS URL that receives inbound SMS webhooks, e.g. "https://example.com/sms"
mms_enabledbooleanEnable or disable MMS on this number
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1

No output schema declared.

No examples provided.

num_update_voice ~290

Set or update the voice routing, E911, and CNAM configuration on a number you own. Use after ordering a number (num_order) to bring it into voice service, or to change routing later. To disable voice entirely use num_delete_voice_config; to route many numbers to one trunk use num_bulk_route. Errors: INVALID_REQUEST, TN_NOT_OWNED.

NameTypeReqDescription
cnam_display_namestringCNAM display name shown to called parties (typically max 15 chars)
cnam_enabledbooleanEnable or disable outbound CNAM (caller name) on this number
e911_address_idstringValidated E911 address record ID to associate with this number
e911_enabledbooleanEnable or disable E911 emergency service on this number
tnstringyesTelephone number, 10 digits (e.g. "3035551234") or 11 digits with leading 1
trunk_idstringVoice trunk-group UUID to route inbound calls to
voice_destinationstringPrimary inbound voice destination (e.g. SIP URI or endpoint)
voice_failover_destinationstringFailover destination used when the primary is unreachable
voice_routing_typestringRouting type for inbound voice (e.g. "trunk" or a URI-based type per your account setup)

No output schema declared.

No examples provided.

port_activate ~94

Activate numbers that have reached FOC (the final step of the port-in lifecycle). Gated on the project being activatable — check port_get_progress first. Requires step-up MFA. To have this happen automatically instead, use port_set_auto_activation. Errors: NOT_FOUND, CONFLICT (not activatable), TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_add_note ~119

Add a note to the port request. visibility="internal" is operator-only (customers get FORBIDDEN); customers may only post "customer" notes. Read notes with port_list_notes. Errors: INVALID_PAYLOAD, FORBIDDEN, NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
bodystringyesNote text
idstringyesPort request UUID (from port_list_requests or port_create_request)
visibilitystringNote visibility: "customer" (default; visible to the customer) or "internal" (operator-only)

No output schema declared.

No examples provided.

port_add_tns ~115

Normalise a free-form TN list and upload it to the draft port request's TNIQ project. Step 2 of the port-in lifecycle, after port_create_request and before port_set_group_details / port_validate_request. Errors: INVALID_PAYLOAD, VALIDATION_ERROR, NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)
tnsarrayyesFree-form list of 10-digit telephone numbers to add to the port request

No output schema declared.

No examples provided.

port_auto_fix ~134

Apply TNIQ auto-fixes to the project, optionally scoped to one error group (from port_get_error_groups) or a TN subset. After fixing, run port_revalidate_tns or port_resubmit_request as appropriate. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
error_group_idstringError group ID (from port_get_error_groups) to scope the fix to
idstringyesPort request UUID (from port_list_requests or port_create_request)
tnsarrayOptional subset of 10-digit TNs to fix; omit to fix all affected TNs

No output schema declared.

No examples provided.

port_cancel_request ~78

Cancel a submitted port. Gated on the project being cancellable — a CONFLICT is returned otherwise. For unsubmitted drafts use port_delete_draft instead. Requires step-up MFA. Errors: NOT_FOUND, CONFLICT, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_create_request ~153

Create a draft port-in request (TNIQ project + WARP mirror row). This is step 1 of the port-in lifecycle: create draft → port_add_tns → port_set_group_details → port_validate_request → port_generate_loa → port_submit_request → track with port_get_progress → port_activate. Run port_preview first to check portability. Errors: NO_ACTIVE_CUSTOMER, INVALID_PAYLOAD, TNIQ_ERROR, INTERNAL_ERROR, GATEWAY_UNAVAILABLE.

NameTypeReqDescription
desired_due_datestringDesired port due date (FOC date), ISO 8601 date, e.g. 2026-08-01
namestringHuman-friendly name for the port request

No output schema declared.

No examples provided.

port_delete_document ~93

Delete a document from the port project. Get document IDs from port_list_documents. Deleting a group's only current LOA will re-block port_submit_request for that group. Errors: NOT_FOUND, TNIQ_VALIDATION, TNIQ_ERROR.

NameTypeReqDescription
doc_idstringyesDocument ID (from port_list_documents)
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_delete_draft ~90

Delete a pre-submission draft port request (TNIQ project + WARP mirror row). Only allowed in states with zero submitted TNs — after submission use port_cancel_request instead. Requires step-up MFA. Errors: NOT_FOUND, CONFLICT (already submitted), TNIQ_ERROR, INTERNAL_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_download_document ~105

Download one port document's raw bytes (Content-Type mirrors the stored document). Get document IDs from port_list_documents. Note: binary content (e.g. PDF) is returned inline and may not be readable as text. Errors (JSON): NOT_FOUND, TNIQ_VALIDATION, TNIQ_ERROR.

NameTypeReqDescription
doc_idstringyesDocument ID (from port_list_documents)
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_execute_transfer ~135

Transfer on-net numbers between WARP tenants without an NPAC port. Each item authorizes with the current owner's port-out PIN; items succeed or fail INDEPENDENTLY within an HTTP 200 response — check per-TN results. Per-TN failure reasons: not_in_warp_inventory, already_yours, poi_locked, invalid_pin, pin_locked, lookup_failed, transfer_failed, invalid_tn. Preview eligibility first with port_preview_transfer. Requires step-up MFA. Errors: NO_ACTIVE_CUSTOMER, INVALID_PAYLOAD.

NameTypeReqDescription
itemsarrayyesNumbers to transfer, each with the owning tenant's port-out PIN

No output schema declared.

No examples provided.

port_generate_loa ~249

Render a WARP-branded LOA PDF for one off-net SPID group and upload it to the project, superseding prior LOAs for that group. Only valid BEFORE the port is submitted; every off-net group needs a current LOA before port_submit_request will succeed. Requires attestation=true plus all authorizing-party, losing-carrier, and signer fields. Requires step-up MFA. Alternatively upload an existing signed LOA with port_upload_document. Errors: INVALID_PAYLOAD (error.details.fields lists missing fields), INVALID_PARAM, CONFLICT (already submitted), TNIQ_ERROR, INTERNAL_ERROR, GATEWAY_UNAVAILABLE.

NameTypeReqDescription
attestationbooleanyesMust be true — attests the signer is authorized to port the numbers
authorizing_partyobjectAuthorizing party details for the LOA
idstringyesPort request UUID (from port_list_requests or port_create_request)
losing_carrierobjectLosing-carrier account details for the LOA
signerobjectSigner details for the LOA
spidstringyesLosing-carrier SPID (from port_get_request's SPID groups)

No output schema declared.

No examples provided.

port_get_error_groups ~88

Get the TNIQ validation/port error groups for the project. Use after port_validate_request or a rejected submission to see what's blocking the port, then resolve with port_auto_fix (pass an error_group_id) or port_set_group_details. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_get_history ~72

Get the audit timeline for the port request (tenant-scoped, newest-first). Use to see who did what and when — submissions, cancels, document uploads, state changes. Errors: NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_get_progress ~87

Get the live TNIQ progress snapshot for the port project. Use to track a submitted port (per-TN states, FOC readiness) and to check whether it is activatable before port_activate. For aggregate counts use port_get_statistics. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_get_request ~107

Get one port-in request: the WARP mirror row, the live TNIQ project, and per-SPID grouped TN details. Also reconciles any ACTIVATED TNs into inventory (idempotent). Use this as the primary status view for a port; for the lighter progress snapshot use port_get_progress. Errors: NO_ACTIVE_CUSTOMER, INVALID_ID, NOT_FOUND, CONFLICT.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_get_statistics ~77

Get the live TNIQ statistics for the port project (also opportunistically refreshes the WARP snapshot). Use for aggregate TN state counts; for per-TN detail use port_get_progress. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_list_documents ~117

List the port project's documents (LOAs, bills, CSRs, etc.), optionally filtered by doc_type or TN. signer_ip is present only for operator callers. Use to verify LOA coverage before port_submit_request. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
doc_typestringFilter by document type: LOA | BILL | CSR | OTHER
idstringyesPort request UUID (from port_list_requests or port_create_request)
tnstringFilter by 10-digit telephone number

No output schema declared.

No examples provided.

port_list_notes ~64

List the port request's notes. Operators also see internal notes; customers see only customer-visibility notes. Add notes with port_add_note. Errors: NOT_FOUND, INTERNAL_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_list_requests ~53

List the active customer's port-in requests, most-recent first. Use to find an existing port request's UUID before calling port_get_request or any other per-request tool. Errors: NO_ACTIVE_CUSTOMER, INTERNAL_ERROR.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

port_lookup_company_details ~150

Retrieve detailed company information from TinComply by company name and optional address. Used during the port-in flow for entity verification (e.g. before drafting an LOA). See also port_lookup_ein (by EIN) and port_verify_tin_name (TIN/name match). Errors: INVALID_REQUEST, COMPANY_NAME_REQUIRED, TINCOMPLY_ERROR, LOOKUP_FAILED.

NameTypeReqDescription
citystringCity
company_namestringyesLegal company name to look up
statestringState, 2-letter code, e.g. CO
streetstringStreet address
zip_codestringZIP code, e.g. 80202

No output schema declared.

No examples provided.

port_lookup_ein ~100

Retrieve company information from TinComply by EIN/Tax ID. Used during the port-in flow for entity verification. Validate the format first with port_validate_ein_format if unsure. Errors: EIN_REQUIRED, INVALID_EIN, TINCOMPLY_ERROR, LOOKUP_FAILED.

NameTypeReqDescription
einstringyesEIN/Tax ID, 9 digits with or without hyphen, e.g. 12-3456789 or 123456789

No output schema declared.

No examples provided.

port_preview ~133

Run an instant Telique-backed portability preview for a free-form list of TNs, grouped by current losing-carrier SPID. No project is created — use this BEFORE port_create_request to see which carriers hold the numbers and whether they are portable. For numbers already on-net (WARP-to-WARP), use port_preview_transfer instead. Errors: NO_ACTIVE_CUSTOMER, INVALID_PAYLOAD, VALIDATION_ERROR, GATEWAY_UNAVAILABLE.

NameTypeReqDescription
tnsarrayyesFree-form list of 10-digit telephone numbers to check for portability, e.g. ["3035551234", "7205556789"]

No output schema declared.

No examples provided.

port_preview_transfer ~131

For a free-form TN list, report which numbers are on-net (an active WARP assignment) and eligible for on-net transfer between WARP tenants (no NPAC port needed). The owning customer's BAN is masked. Per-TN ineligibility reasons: not_in_warp_inventory, already_yours, poi_locked, lookup_failed. Use before port_execute_transfer; for off-net numbers use port_preview instead. Errors: NO_ACTIVE_CUSTOMER, INVALID_PAYLOAD, VALIDATION_ERROR.

NameTypeReqDescription
tnsarrayyesFree-form list of 10-digit telephone numbers to check for on-net transfer eligibility

No output schema declared.

No examples provided.

port_resubmit_request ~86

Resubmit a port that is in an error/rejection/exception state (e.g. after fixing issues with port_auto_fix or port_set_group_details). Only valid from those states — a CONFLICT is returned otherwise. Errors: NOT_FOUND, CONFLICT, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_revalidate_tns ~109

Send a REVALIDATE bulk action for selected (or all) TNs in the port request. Use after fixing individual TN errors when you don't need the full re-validation of port_validate_request. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)
tnsarrayOptional subset of 10-digit TNs to revalidate; omit to revalidate all TNs in the request

No output schema declared.

No examples provided.

port_set_auto_activation ~166

Update the port project's auto-activation mode so numbers activate without a manual port_activate call. Modes: DISABLED (manual only), ASAP (activate as soon as FOC is reached), SCHEDULED (activate at scheduled_at, which is required for that mode). Errors: INVALID_PAYLOAD, NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)
modestringyesAuto-activation mode: DISABLED | ASAP | SCHEDULED (SCHEDULED requires scheduled_at)
scheduled_atstringISO 8601 timestamp for SCHEDULED mode, e.g. 2026-08-01T14:00:00Z; required when mode=SCHEDULED

No output schema declared.

No examples provided.

port_set_group_details ~222

Apply losing-carrier account details (account number, BTN, PIN, service address, names) to EVERY TN in one SPID group. Group membership is recomputed from live TNIQ details, not client-supplied. Get SPID groups from port_get_request; run before port_validate_request. Errors: INVALID_PAYLOAD, INVALID_PARAM, NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
account_numberstringAccount number with the losing carrier
btnstringBilling telephone number (10-digit) on the losing account
business_namestringBusiness name on the losing account
end_user_namestringEnd-user name on the losing account
idstringyesPort request UUID (from port_list_requests or port_create_request)
pinstringAccount PIN/passcode with the losing carrier
service_addressstringService address on file with the losing carrier
spidstringyesLosing-carrier SPID (from port_get_request's SPID groups)

No output schema declared.

No examples provided.

port_submit_request ~170

Submit the port to NPAC. Gated on (1) every off-net SPID group having a current LOA (generate one with port_generate_loa or upload with port_upload_document) and (2) the project being submittable (validate first with port_validate_request). Requires step-up MFA. On the LOA gate a 409 CONFLICT is returned whose error.details has reason="loa_required" and groups=[{spid, tn_count, reason: "missing"|"stale"}]; other 409s carry error.details.reason from the submit blocker. After submitting, track with port_get_progress and port_get_statistics. Errors: NOT_FOUND, CONFLICT, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_supplement_due_date ~142

Change the desired due date of a submitted port (SUP_DDD), optionally for a subset of TNs. Only valid before activation — a CONFLICT is returned otherwise. Errors: INVALID_PAYLOAD, NOT_FOUND, CONFLICT, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)
new_dddstringyesNew desired due date (FOC date), ISO 8601 date, e.g. 2026-08-15
tnsarrayOptional subset of 10-digit TNs to supplement; omit to apply to all TNs

No output schema declared.

No examples provided.

port_upload_document ~150

Upload a supporting document (LOA, bill copy, CSR, or other; max 25MB) to the port's TNIQ project from a local file. Use for a customer-signed LOA or supporting evidence; to have WARP generate the LOA instead, use port_generate_loa. Errors: INVALID_PAYLOAD, NOT_FOUND, TNIQ_VALIDATION, TNIQ_ERROR.

NameTypeReqDescription
doc_typestringyesDocument type: LOA | BILL | CSR | OTHER
file_pathstringyesAbsolute path to the local file to upload (max 25MB)
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.

port_validate_ein_format ~75

Check whether an EIN is well-formed (9 digits) WITHOUT calling the external TinComply API. Use as a cheap pre-check before port_lookup_ein or port_verify_tin_name. Errors: EIN_REQUIRED.

NameTypeReqDescription
einstringyesEIN to validate, e.g. 12-3456789

No output schema declared.

No examples provided.

port_validate_request ~108

Trigger a TNIQ-side re-validation of ALL TNs in the port request. Run after adding TNs (port_add_tns) and applying carrier details (port_set_group_details), then inspect failures via port_get_error_groups and fix them with port_auto_fix. To revalidate only a subset of TNs use port_revalidate_tns. Errors: NOT_FOUND, TNIQ_ERROR.

NameTypeReqDescription
idstringyesPort request UUID (from port_list_requests or port_create_request)

No output schema declared.

No examples provided.