Skip to main content
Glama

standard-vocal-mcp

A Voice Agent Factory exposed over the Model Context Protocol. Not a CRUD wrapper — a factory that deploys production phone agents, tests them, audits their audio, and gates their prompts like code.

Built on top of Vapi (telephony + LLM + STT + TTS). Differs from the official vapi-mcp-server, which is a generic CRUD wrapper over the Vapi API. This is the factory layer: vertical templates, self-testing agents, audio forensics, prompt versioning, CI regression gates.

Why it's hard to copy

The official Vapi MCP is 20 tools that each map to one raw API call. Anyone can read the docs and rebuild it in an hour.

This one encodes months of empirical tuning into its templates — transcriber parameters (numerals, confidenceThreshold, keywords, endpointing), voice selection, conversation flow, urgency handling — plus evaluation logic and audio diagnostics that require knowing the Vapi artifacts API and audio signal processing. The longer it runs, the more reference data it accumulates. That's the moat.

Related MCP server: Bolna MCP Server

Tools

Tool

What it does

list_agents

Lists the assistants on the account (id, name, model, voice, transcriber) — the entry point to find an assistantId.

deploy_agent

One tool = one full vertical deployment. deploy_agent(vertical: elagueur|plombier, company, extraKeywords) creates a complete Vapi assistant: prompt, voice, transcriber, keywords, greeting.

run_eval

The agent tests itself. Fetches the live system prompt, simulates N scripted scenarios against the configured LLM, scores behavior (close speed, no price quoting, spelled digit confirmation, urgency priority, solicitation refusal), returns a /100 grade with PASS / WARN / FAIL. No audio, no billing — pure prompt evaluation. Global hard checks on every scenario: phone fidelity (any number the agent speaks must be one the caller gave — catches hallucinated numbers that plain "did it spell the digits?" checks miss) and anti-leak (template brackets never reach the caller's ear). One hard failure = verdict FAIL, whatever the grade.

audio_forensics

Downloads the 3 recording tracks of a call (mono / customer / assistant), runs RMS-per-window analysis, and locates the noise source. Automates the exact manual investigation that found a "computer noise" issue was injected downstream of the caller's mic, not in Vapi.

prompt_diff

Prompts as code. snapshot captures the live prompt into local history, diff compares two versions, rollback pushes an old prompt back to Vapi.

regression_gate

CI for prompts. Runs run_eval and blocks the update if the score regressed vs the stored baseline. Returns allow/deny with the reason.

Quickstart

# Claude Code
claude mcp add standard-vocal -- npx -y standard-vocal-mcp

# Env
export VAPI_TOKEN="your_vapi_token"
export OPENAI_API_KEY="your_openai_key"   # used by run_eval to simulate scenarios
// claude_desktop_config.json
{
  "mcpServers": {
    "standard-vocal": {
      "command": "npx",
      "args": ["-y", "standard-vocal-mcp"],
      "env": {
        "VAPI_TOKEN": "<token>",
        "OPENAI_API_KEY": "<key>"
      }
    }
  }
}

Prompt snapshots (prompt_diff) are stored in ./.standard-vocal/ of the directory you launch from — override with STANDARD_VOCAL_STATE_DIR.

Example: one call = one working agent

deploy_agent({ vertical: "elagueur", company: "L'Arbre en Nord", extraKeywords: ["Coutiches", "Ramoniers"] })

→ creates the assistant with:

  • A receptionist prompt tuned for tree service (close after 3 questions, spelled-digit confirmation, urgency priority, never quote a price)

  • The right French voice (ElevenLabs)

  • Deepgram nova-3 with numerals: true, confidenceThreshold: 0.5, and keywords boosted for the business's real streets/towns

Then:

run_eval({ assistantId: "...", vertical: "elagueur" })

→ runs 4 scripted scenarios (standard quote, address correction, storm emergency, solicitation) and returns a /100 grade with per-check pass/fail.

Eval report example

GRADE: 100/100  →  PASS

[100/100] Devis classique (close rapide)
   ✓ Demande le type de chantier
   ✓ Demande l'adresse ou la ville
   ✓ Confirme le numéro de rue en épelant les chiffres
   ✓ Ne donne jamais de prix
   ✓ Clôture avec promesse de rappel

Architecture

Claude / any MCP client
        │  (stdio)
        ▼
standard-vocal-mcp  ──┬──► Vapi API (assistants, calls, recordings)
  (5 factory tools)   ├──► OpenAI-compatible LLM (eval simulation)
                      └──► Vapi artifacts API (mono/customer/assistant WAV)
  • src/deploy.ts — vertical deployment

  • src/eval.ts — self-testing engine

  • src/forensics.ts — audio analysis

  • src/versioning.ts — prompt history / diff / rollback

  • verticals/templates.json — vertical templates (prompt, voice, transcriber, keywords)

  • evals/scenarios.json — scripted eval scenarios with weighted checks

Roadmap

  • More verticals (dentiste, kiné, restaurant, garage)

  • regression_gate integration with CI (GitHub Action)

  • Call-level latency breakdown in audio_forensics

  • Hosted mcp-remote variant (like Vapi's mcp.vapi.ai)

  • Scenario auto-generation from real call transcripts


Built by Guillaume Jean Hussong · Standard Vocal — the phone agent factory.

Available Tools

6 tools
audio_forensicsA

Download the 3 recording tracks of a call (mono/customer/assistant), run RMS analysis, and locate the noise source. Automates the manual audio investigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
callIdYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing safety and side effects. It describes downloading and analyzing files, which suggests a read-only operation, but it doesn't explicitly state that no modifications occur, what permissions are required, or potential side effects like data transfer or storage. The description is action-focused but lacks necessary behavioral caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that efficiently convey the tool's actions and its automation value. Every word contributes to understanding, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple interface with one parameter and a clear action sequence, but the description omits details about the output format, prerequisites, or edge cases. It is adequate for basic understanding but leaves gaps that would be particularly problematic given the absence of annotations and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter, 'callId', with 0% schema description coverage. The description mentions 'a call' but does not explicitly link it to the 'callId' parameter or explain how to obtain it. This provides minimal added meaning beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with specific verbs (download, run, locate) and identifies the resource (3 recording tracks of a call). It distinguishes itself from sibling tools, which are focused on agent management and evaluation, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating it automates the manual audio investigation, implying use when investigating noise in call recordings. It doesn't explicitly mention alternatives, but since sibling tools are unrelated, the usage context is sufficiently clear; however, there is no 'when not to use' exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_agentA

Deploy a full production phone agent for a market (fr, us, sv) and a vertical (elagueur, plombier, tree-service, plumber, jardineria, plomeria). Creates the Vapi assistant with prompt, voice, transcriber and keywords baked in. One call = one working agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
marketYes
companyYesCompany name shown to callers
verticalYes
extraKeywordsNoLocation names / street names to boost transcription
voiceIdOverrideNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It discloses that the tool creates a Vapi assistant with prompt, voice, transcriber, and keywords baked in, and that one call yields one working agent. However, it does not mention potential side effects like costs, auth requirements, or whether it overwrites existing agents, which is important for a deploying/mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences that are front-loaded with the core action. The first sentence states what it does, the second details what is created, and the third summarizes the outcome. Every sentence earns its place with no redundancy or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 6 parameters, the description covers the main purpose, markets, verticals, and baked-in components. However, it omits any indication of return values (e.g., an agent ID), potential overwriting behavior, or prerequisites. This is a notable gap for a deployment tool with moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (33%), so the description needs to compensate. It adds enumerated values for market (fr, us, sv) and vertical (elagueur, plombier, tree-service, etc.), and references keywords/voice. Yet it leaves name, company, and voiceIdOverride unexplained beyond what the schema barely provides, so the description only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Deploy') and clearly identifies the resource ('full production phone agent') with explicit market and vertical parameters. It is easily distinguished from sibling tools like list_agents, run_eval, or prompt_diff, which perform different functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: deploying a production agent for a specific market and vertical. It implicitly differentiates from sibling tools by naming the deployment action. However, it does not explicitly state when not to use it or mention alternatives, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsA

List the Vapi assistants on this account: name, id, model, voice, transcriber, creation date. Start here to find the assistantId for run_eval / prompt_diff / regression_gate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the scoped scope ('on this account') and fields returned, but doesn't explicitly state it's read-only or free of side effects. 'List' implies it, but a direct statement would make it fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and resource, with no wasted words. The field list is compact and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description fully covers what it returns and why to use it, including cross-references to sibling tools. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to explain. The description adds value by listing output fields, which is more than sufficient for a no-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Vapi assistants with specific attributes (name, id, model, voice, transcriber, creation date), distinct from sibling tools which perform actions like deploy, eval, or forensics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly positions this as the starting point to find assistantId for run_eval, prompt_diff, and regression_gate, providing clear when-to-use context. It doesn't mention exclusions or alternatives, but the directive is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prompt_diffA

Version and diff assistant prompts. snapshot = capture current prompt from Vapi into local history. diff = compare two versions. rollback = push an old prompt back.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
toVersionNo
assistantIdYes
fromVersionNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses basic behavior for each action (e.g., snapshot captures into local history, rollback pushes an old prompt back), but it does not mention side effects, reversibility, or permissions. This is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a single introductory phrase followed by three short, explanatory definitions for each action. Every sentence adds value and the format is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action list but omits essential context for the version parameters, output/return values, and potential side effects. Given 4 parameters, no annotations, and no output schema, the description leaves significant gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description only explains the 'action' enum values, which are already defined in the schema. The parameters 'assistantId', 'fromVersion', and 'toVersion' are not described at all, leaving the agent to infer their purpose and format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: version and diff assistant prompts, with explicit actions (snapshot, diff, rollback) and what each does. This distinguishes it from sibling tools that focus on listing agents, deploying, or running evals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the action semantics (e.g., snapshot to capture, diff to compare, rollback to revert), but it does not provide explicit guidance on when to choose this tool over alternatives or any exclusions. The context is clear but not fully directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regression_gateA

CI for prompts. Runs run_eval against the current assistant and blocks the update if the score regressed vs the stored baseline. Returns allow/deny.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
verticalYes
assistantIdYes
baselineScoreYesPrevious accepted grade /100

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and it does disclose the core behavior: it invokes run_eval, compares to a baseline, and returns allow/deny. It does not mention side effects, authorization requirements, or edge-case behavior such as equal scores, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and every sentence adds value. It uses two crisp sentences to convey the tool's domain, behavior, and return value without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides the essential high-level purpose and return value, but no output schema and sparse parameter guidance leave important gaps for correct invocation. It does not describe the exact response structure or clarify market/vertical semantics, so the overall context is only moderately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description must compensate, but it only hints at assistantId via "current assistant" and baselineScore via "stored baseline." It does not explain market or vertical, so an agent would not know their intended values or role in the evaluation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: it runs run_eval against the current assistant, compares against a baseline, and blocks the update on regression. It clearly distinguishes itself from the sibling run_eval by adding the gate/blocking behavior and the allow/deny outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"CI for prompts" immediately establishes the intended context, and the blocking behavior makes it clear this is a gate rather than a plain evaluation tool. However, it does not explicitly mention alternatives, such as using run_eval directly when a non-blocking evaluation is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_evalB

The agent tests itself. Simulates N scripted scenarios via the LLM (no audio cost), scores behavior (close speed, no price, spelled confirmation, urgency handling), returns a /100 report with PASS/WARN/FAIL.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
verticalYes
assistantIdYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses key behaviors: simulation via the LLM, no audio cost, scoring dimensions, and output format. It doesn't mention side effects or parameter-driven choices, but the main execution model is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is information-dense and front-loaded with the main action. Every clause adds value: simulation, cost, scoring dimensions, and report style.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains high-level behavior but omits parameter semantics and usage context. With no output schema and no annotations, the agent will struggle to know valid inputs or what N represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions none of the three parameters (assistantId, market, vertical). It doesn't explain what market or vertical mean for the evaluation, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it tests the agent via simulated scenarios, scores behavior on specific criteria, and returns a /100 report. This distinguishes it from sibling tools like list_agents or deploy_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool instead of alternatives like regression_gate or audio_forensics. The description implies evaluation use but doesn't state prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.3.0
    • First observedaudio_forensics
    • First observeddeploy_agent
    • First observedlist_agents
    • First observedprompt_diff
    • First observedregression_gate
    • First observedrun_eval

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct responsibility: listing, deploying, evaluating, analyzing audio, diffing prompts, and gating regressions. Even run_eval and regression_gate are clearly separated, with the former generating scores and the latter comparing against a baseline.

Naming Consistency2/5

The first three tools follow a verb_noun pattern (list_agents, deploy_agent, run_eval), while the last three are noun-centric (audio_forensics, prompt_diff, regression_gate). This split in grammatical structure makes the naming convention inconsistent and harder to predict.

Tool Count5/5

Six tools is well-scoped for a specialized server focused on voice agent lifecycle and evaluation. Every tool earns its place, and the count is neither too small nor bloated.

Completeness4/5

The set covers the core workflow: discover agents, deploy new ones, run tests, analyze call audio, version prompts, and gate updates. Minor gaps include no delete_agent or direct update_agent, but these are not critical for the server's apparent purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guillaumehussong/standard-vocal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server