# Sipflow MCP server

Source: https://glimind.com/server/mcp-registry%2Fdev.sipflow%2Fsipflow
Registry id: `mcp-registry/dev.sipflow/sipflow`
Status: live (checked 2026-10-27T06:17:20.055Z)

## Verdict

Sipflow MCP server answered 100% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 1025 ms median handshake and 0 outages in 90 days. Its agent-readiness grade is A (96/100) across 22 tools, costing an agent about 8,534 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 100% | 42% of MCP servers |
| Median handshake latency | 1025 ms | 17% of MCP servers |
| p95 handshake latency | 3129 ms | — |
| Checks in 30 days | 4,974 | — |
| Outages, 90 days | 0 | — |
| Median recovery | — | — |
| Agent-readiness score | 96/100 (A) | 82% of MCP servers |
| Tools | 22 | — |
| Tool-list size for an agent | ~8,534 tokens | 33% of MCP servers |
| Days observed | 29 | — |

## Install

```json
{
  "mcpServers": {
    "sipflow-mcp-server": {
      "type": "http",
      "url": "https://mcp.sipflow.dev/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http sipflow-mcp-server https://mcp.sipflow.dev/mcp
```

## Tools (22)

- `compare_sdp_offer_answer`: [cost: free (pure CPU, no network) | read-only] Diff a SIP/SDP offer and answer and surface the issues that actually break calls in practice: codec intersection
- `detect_sip_stack`: [cost: free (pure CPU, no network) | read-only] Identify the SIP product behind a piece of input. Works on both: - a SIP trace (User-Agent / Server headers from
- `detect_sip_vendor_from_config`: [cost: free (pure CPU, no network) | read-only] Heuristic-only sibling of `detect_sip_stack`, scoped to vendor configs. Returns the matched vendor slug, a confi
- `diff_sip_messages`: [cost: free (pure CPU, no network) | read-only, no persistence] Take two SIP messages (typically the same request observed at two adjacent hops - e.g. the INVIT
- `dns_diagnose_sip_target`: [cost: external_io (DNS via Cloudflare + Google; TLS handshake + a SIP OPTIONS keepalive to public targets when applicable) | read-only | rate-limited per IP: 1
- `fetch_sipflow_share`: [cost: external_io (Mongo + S3 fetch on the Sipflow backend) | read-only, no persistence | rate limit: shared with the public share endpoint] Given a Sipflow sh
- `lint_sip_request`: [cost: free (pure CPU, no network) | read-only, no persistence] Run RFC 3261 / RFC 3325 / RFC 8224 / RFC 8225 / CTIA BCID compliance checks on a single raw SIP 
- `lookup_response_code`: [cost: free (pure CPU, no network) | read-only] Instant static lookup of a SIP response code (100-699). Returns name, RFC anchor, category, description, common 
- `lookup_sip_header`: [cost: free (pure CPU, no network) | read-only] Instant lookup of a SIP header by canonical or compact form (e.g. "Via" / "v", "Diversion", "P-Asserted-Identity
- `minimize_sip_trace`: [cost: free (pure CPU, no network) | read-only, no persistence] Reduce a raw SIP trace to a compact form suitable for sending to an LLM. Preserves SDP bodies an
- `parse_sdp`: [cost: free (pure CPU, no network) | read-only] Parse a Session Description Protocol body and return a structured view: origin, session, timing, per-media codec
- `parse_sip_message`: [cost: free (pure CPU, no network) | read-only, no persistence] Parse a single raw SIP message (request OR response) and return a structured view: start line (m
- `render_sip_ladder`: [cost: free (pure CPU, no network) | read-only] Parse a raw SIP trace (PCAP-decoded text, sngrep export, syslog, or pasted INVITE/200 dialog) and emit a Mermaid
- `review_sip_config`: [cost: free (pure CPU, no network) | read-only] Use this when the user asks 'review my config' or attaches a kamailio.cfg, sip.conf, pjsip.conf, FreeSWITCH XML 
- `search_sip_docs`: [cost: rag (one embed + one vector search) | read-only, network: outbound to embed model only] Vector search over Sipflow's curated VoIP knowledge base: vendor 
- `sip_ladder_example`: [cost: free (pure CPU, no network) | read-only] Return a hand-curated SIP scenario as a Mermaid `sequenceDiagram` plus a bullet list of step-by-step explanation
- `stir_attestation_explainer`: [cost: free (pure CPU, no network) | read-only] Static explainer for STIR/SHAKEN: maps attestation levels (A / B / C per RFC 8588) to plain-English requirements
- `submit_sipflow_feedback`: [cost: write (single MongoDB row) | rate-limited per IP: 3/min, 20/day] Send the Sipflow team feedback when something doesn't work, a vendor or RFC isn't covere
- `troubleshoot_response_code`: [cost: rag (one embed + one vector search) | read-only, network: outbound to embed model only | rate-limited per IP] Like `lookup_response_code` but augmented: 
- `validate_e164_number`: [cost: free (pure CPU, no network) | read-only] Parse a phone number, normalize to E.164, and classify it. International coverage is via libphonenumber-js (ever
- `validate_stir_shaken_identity`: [cost: external_io (HTTPS fetch of the x5u cert) | read-only] Verify a SIP `Identity:` JWS (RFC 8224 / SHAKEN). Fetches the x5u certificate, parses it, verifies
- `webrtc_sip_checklist`: [cost: free (pure CPU, no network) | read-only] Return a curated checklist of WebRTC ↔ SIP requirements (WSS transport, ICE gathering, DTLS-SRTP fingerprint, rt

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
