mcpField
V
voice-quality-api

voice-quality-api

Remote
github.com/Gomess8Cloud & Infra0Updated 17w ago
Repository

About voice-quality-api

Voice Quality API measures network conditions to a voice or VoIP endpoint and estimates MOS for AI voice agents and infrastructure teams. It reports live RTT, jitter, and packet loss through REST or an MCP tool.

Key features

  1. 01Estimated MOS from network measurements
  2. 02Live RTT, jitter, and packet-loss metrics
  3. 03Per-probe results and methodology
  4. 04REST API and MCP tool
  5. 05SSRF protection and target allowlists

Use cases

  1. 01Checking a voice path before routing calls
  2. 02Monitoring network paths to voice endpoints

MCP support

The MCP server provides one tool, `measure_voice_quality`, which wraps the REST API. It can handle x402 payment transparently after the free allowance when configured with a wallet.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.voice-quality.com/
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

Voice Quality API

status MCP x402 model G.113 SSRF

Measure the network path quality to a voice/VoIP destination and get an estimated MOS (1–5) — live, from an API. Built for AI voice agents. Available as REST and as an MCP tool, paid per call via x402 (USDC on Base).

🌐 Live: voice-quality.com · REST api.voice-quality.com · MCP mcp.voice-quality.com


Try it

curl https://api.voice-quality.com/health          # {"status":"ok"}

curl -s https://api.voice-quality.com/v1/voice-quality \
  -H 'content-type: application/json' \
  -d '{ "target": "your-voice-endpoint.example", "target_port": 10000, "codec": "G711" }'

You get an estimated MOS + live RTT / jitter / packet loss. Point it at an endpoint that answers media — your own voice infra, or a tiny reflector you run (probe-agent/cmd/reflector). 20 free/day; beyond that it's pay-per-call via x402 (no account needed).

{
  "request_id": "vq_2ibc6qqq",
  "target": "your-voice-endpoint.example",
  "codec": "G711",
  "measured_at": "2026-07-01T10:15:13.795Z",
  "summary": { "mos_estimate": 4.38, "mos_class": "excellent", "r_factor": 91.8 },
  "by_probe": [ /* per-probe metrics + R-factor + MOS */ ],
  "methodology": {
    "model": "ITU-T G.107 E-model",
    "confidence": "estimate",
    "assumptions": ["owd = rtt/2 (symmetric path)", "adaptive jitter buffer = 2x jitter"]
  },
  "credits_used": 0
}

Why it exists

Free network-measurement platforms (Globalping, RIPE Atlas) measure ping/traceroute/DNS/HTTP — they do not measure RTP media quality or estimate MOS. The tools that do (Cyara, Spearline) are enterprise sales motions. This fills the gap: voice path quality as a clean, self-serve, agent-native API — check it before you route a call, or monitor the path to your voice endpoints.

Trustworthy by design

  • Honest metric. An objective G.107 E-model estimate from measured network metrics — never sold as a perceptual (PESQ/POLQA) score. Every response carries methodology.confidence: "estimate" and its assumptions.
  • Verified constants. The codec Ie/Bpl values are verified against ITU-T G.113 (09/2024), App. I, Table I.4 — rows matched to the probe profile (no PLC, no VAD/DTX). Not "representative"; cited.
  • SSRF-guarded. ~36.7% of public MCP servers ship SSRF issues — this one blocks internal/private targets by default (orchestrator and probe), plus a per-target allowlist and rate limit.
  • Hardened. TLS/mTLS on the probe channel, non-root containers, pnpm audit clean, structured machine-readable errors, Idempotency-Key, Prometheus /metrics, per-identity API keys.

Pricing

TierWhat you get
Free20 measurements/day per identity (credits_used: 0).
Pay-per-callBeyond that, a sub-cent–cents micropayment per call via x402 (USDC on Base). Unpaid → 402 with the payment requirements; pay and retry. Agents pay transparently.

Agent-native (MCP + x402)

One MCP tool, measure_voice_quality. The server wraps the REST API and pays x402 transparently from a configured wallet once the free tier is exhausted — no human in the loop.

{
  "mcpServers": {
    "voice-quality": {
      "url": "https://mcp.voice-quality.com/",
      "env": { "MCP_CLIENT_PRIVATE_KEY": "0x…" }   // optional; only for paid calls
    }
  }
}

Architecture

[AI agent / dev] ──(HTTP + x402 / MCP)──► [Orchestrator] ──► [E-model (G.107): R → MOS]
                                              └──► [regional probe] ──(emulated UDP/RTP)──► target
ComponentStackRole
Orchestrator (packages/orchestrator)TypeScript + HonoREST API, E-model, x402 paywall, AUP, rate limit, probe dispatch
MCP server (packages/mcp-server)TypeScript + MCP SDKmeasure_voice_quality; wraps REST + transparent x402
Probe agent (probe-agent)GoUDP/RTP emulation + RFC 3550 metrics; cheap regional VPS
Shared (packages/shared)TypeScriptZod schemas, types, G.113 codec constants

Self-host

cp .env.example .env                 # fill in values
docker compose up --build -d         # orchestrator + MCP + probe + reflector + landing
curl localhost:8080/health

Full deploy (public HTTPS via Caddy or Cloudflare Tunnel, regional probes with mTLS): docs/deploy.md. Going to production (mainnet x402, codec verification, registries): docs/go-live.md.

Docs

Methodology · OpenAPI · Deploy · Go-live · Discovery & registries


The MOS is an objective estimate from network conditions, not a guarantee of call quality. Maintained actively.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.