Skip to content

MCP Server

Control Rymi with natural language. The @rymi/mcp package connects your AI assistant directly to your Rymi account — create agents, inspect calls, validate configs, and go live without touching the dashboard or writing a single HTTP request.

Works with Claude Desktop, Claude Code, Cursor, Windsurf, or any MCP-compatible client.

How it works

You (natural language)

AI client (Claude, Cursor, etc.)
    ↓  MCP tool calls
mcp.rymi.live  ←  your API key

Rymi API

The MCP server translates your plain-English instructions into typed Rymi API calls. The AI figures out which tools to chain — you just describe what you want.

Quickstart

No install needed. Point your client at https://mcp.rymi.live and pass your API key as a Bearer token.

json
{
  "mcpServers": {
    "rymi": {
      "type": "http",
      "url": "https://mcp.rymi.live/",
      "headers": {
        "Authorization": "Bearer rymi_your_secret_key"
      }
    }
  }
}
json
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "rymi": {
      "type": "http",
      "url": "https://mcp.rymi.live/",
      "headers": {
        "Authorization": "Bearer rymi_your_secret_key"
      }
    }
  }
}

Get your API key from the Rymi dashboard → Settings → API Keys.

Run it locally (npm)

Prefer to run the server on your own machine instead of the hosted endpoint? The @rymi/mcp package is a standalone MCP server you can launch with npx — no clone, no build. It talks to the Rymi REST API directly and speaks stdio by default, which is what Claude Desktop, Claude Code, and Cursor expect for a local server.

json
{
  "mcpServers": {
    "rymi": {
      "command": "npx",
      "args": ["-y", "@rymi/mcp"],
      "env": {
        "RYMI_API_KEY": "rymi_your_secret_key"
      }
    }
  }
}
json
{
  "mcpServers": {
    "rymi": {
      "command": "npx",
      "args": ["-y", "@rymi/mcp"],
      "env": {
        "RYMI_API_KEY": "rymi_your_secret_key"
      }
    }
  }
}

The server reads your key from the RYMI_API_KEY environment variable (it exits immediately if it's missing).

Local server options

Variable / flagEffect
RYMI_API_KEYRequired. Your Rymi secret key.
RYMI_MCP_READONLY=1Restrict to read-only tools — hides every mutating tool, including create_call, batch_call, and publish_agent.
--transport httpServe over HTTP instead of stdio (to self-host a mcp.rymi.live-style endpoint).
RYMI_MCP_PORTPort to bind when running with --transport http.

Local gating differs from the hosted server

The hosted mcp.rymi.live keeps publish_agent, create_call, and batch_call gated per API key (see Opt-in tools). The local @rymi/mcp server exposes the full write surface by default — those billable and irreversible tools are available unless you start it with RYMI_MCP_READONLY=1. In shared or automated environments, use a read-only key or set that flag.

Available tools

These are the tools your AI can invoke once connected. They cover the full lifecycle: discover → preview → build → attach a number → reach → observe → feed knowledge → audit → measure.

Agents

ToolWhat it does
list_agentsList all your voice agents
get_agentFetch a single agent's full config
create_agentCreate a new voice agent. Supports supported_languages (multi-language), STT/LLM/TTS model selection, per-channel fallbacks, and custom endpoints
update_agentModify an existing agent's config (same fields as create)
clone_agentDuplicate an agent (great for A/B variants)
delete_agentPermanently remove an agent
apply_agent_changesDry-run a change-set — validates without saving
validate_agent_publishCheck if an agent passes all publish requirements
preview_stackResolve the per-language model stack (STT/LLM/TTS) + blockers/warnings before saving (operator/specialist/executive; not concierge)
enrich_companyAuto-generate a company description from a URL
generate_agent_draftGenerate a full agent config from a plain-English prompt
publish_agentMake an agent live (opt-in, see below)

Discovery

ToolWhat it does
list_llm_optionsFull catalog of available LLMs and voices
list_voicesJust the voices, filterable by provider or model_id — far smaller payload than list_llm_options

Calls (read-only)

ToolWhat it does
list_callsBrowse all calls across the account
list_active_callsCalls currently in progress
get_callDetails, participants, duration, and cost for one call
get_call_summaryPost-call summary
get_call_transcriptFull transcript
get_call_recordingRecording metadata / playback URL
get_call_queue_statsOutbound queue statistics
reprocess_callRe-run post-call intelligence for a call
list_calls_for_agentCall history scoped to one agent

Call control (write)

ToolWhat it does
end_callHang up an in-progress call
add_call_participantAdd a participant to a live call (warm transfer / conference)

Numbers, telephony & keys

ToolWhat it does
list_numbersAll numbers on the account and their attached agent
register_numberRegister a number, optionally attaching it to an agent
attach_numberRoute an existing number to an agent
remove_numberRemove a number from the account
telephony_statusWhether a carrier is connected, and which
list_telephony_numbersNumbers available on the connected carrier
list_publishable_keysBrowser-safe keys (prefixes only, never full secrets)

Compliance — Do-Not-Call

ToolWhat it does
list_dncList numbers on the Do-Not-Call registry
check_dncCheck whether numbers are blocked, without adding them (read-only)
add_dncAdd a single number to the registry (write)
add_dnc_batchAdd up to 1000 numbers at once (write)
remove_dncRemove a number, re-enabling outbound to it (write)

Webhooks

ToolWhat it does
list_webhooksList registered webhook endpoints
create_webhookRegister an endpoint for event delivery (write)
update_webhookChange an endpoint's URL, events, or secret (write)
delete_webhookRemove a webhook endpoint (write)

Knowledge & history

ToolWhat it does
list_knowledge_sourcesRAG sources attached to an agent
add_knowledge_sourceAdd a source from raw text or a URL
delete_knowledge_sourceRemove a source
list_agent_changesRecorded config-change history
undo_agent_changeRevert a single change to its previous value

Insight

ToolWhat it does
get_usage_summaryRemaining voice minutes, Studio AI usage, post-call usage
list_agent_templatesPublished template catalog — use a template's defaults to seed create_agent
run_evalsRun the evaluation suite (synthetic or live)
list_eval_runsPast evaluation runs for an agent
get_eval_runA single run with per-scenario scores

Billing & cost

ToolWhat it does
estimate_call_costEstimate a call's cost for a role/duration before dialing (read-only)
set_auto_rechargeConfigure automatic balance top-ups (write)
set_spend_alertsConfigure spend-threshold and low-balance alerts (write)

Multi-language agents

To build a bilingual agent, pass supported_languages (e.g. ["hi-IN", "en-US"]) to create_agent. Call preview_stack first to confirm the language set resolves to a valid model stack — some languages require a higher agent_role.

Example prompts

Once connected, just talk to your AI client:

Build an agent from scratch

"Create a receptionist agent for BrightSmile Dental. Warm and professional tone. Grab the company info from brightsmile.example.com."

The AI will chain: list_llm_optionsenrich_companygenerate_agent_draftcreate_agent


Tweak an existing agent

"Switch my Support agent to the Charon voice and update it to GPT-4o."

The AI will chain: list_agentsapply_agent_changesupdate_agent


Validate before going live

"Is my agent abc-123 ready to publish?"

The AI calls: validate_agent_publish → surfaces any missing fields or config issues


Voice agents creating voice agents

A deployed Rymi agent with this MCP wired in can respond to a caller in real time: "Set up a new booking agent for my dental clinic" → the agent calls create_agent directly. No human in the loop required.

Capability discovery

Before mutating an agent, ask the server what is allowed. Each of these is a read-only call — safe to chain from any prompt:

ToolDiscovers
list_llm_optionsLLM, STT, TTS, and voice options the current tenant can use
list_agentsExisting agents the connected key can see
get_agentThe full config + runtime-affecting fields for one agent
apply_agent_changesWhether a proposed change-set would validate (dry-run, no save)
validate_agent_publishWhether an agent passes every publish requirement, with reason codes for any blockers
list_calls_for_agentRecent call history, including statuses and reason codes

The AI should resolve "what can this agent do" by calling get_agent + validate_agent_publish rather than guessing from the prompt. Errors carry machine-readable codes you can branch on; treat the human-readable message as display copy and the code as the routing key.

Opt-in tools (off by default)

On the hosted mcp.rymi.live server, two classes of tool are disabled by default so an AI can't take an irreversible or billable action without you explicitly opting in. To enable either, contact support@rymi.live or toggle it in your dashboard API key settings.

Tool(s)Why it's gated
publish_agentMakes an agent immediately callable by end users
create_call, batch_callPlace real, billable outbound phone calls

Local server is the inverse

The local @rymi/mcp package exposes these tools by default (it trusts whoever can read the RYMI_API_KEY on the machine). Start it with RYMI_MCP_READONLY=1 — or connect a read-only key — to hide every mutating tool at once.

WARNING

Once enabled, these tools have real-world effects — publish_agent goes live to end users, and create_call / batch_call dial real numbers and incur per-minute charges. Only use them in supervised workflows.

Carrier connect/disconnect and publishable-key creation/revocation are intentionally not available over MCP — they enter credentials and change standing configuration, so do them from the dashboard.