- A documentation surface that your agent can read directly (no HTML scraping).
- An MCP server that it can call as a tool.
- A CLI (
clutchcall) that scaffolds projects with agent-readyAGENTS.mdfiles included.
MCP server
The docs MCP server is available at:Wiring into Claude Code, Cursor, etc.
list_pages, search_docs, and
get_page as callable tools next to its built-in toolbox.
Smoke test
Platform MCP server (control plane)
The docs server above is a read-only reference. A second MCP server runs on the control plane. It lets an agent operate your workspace: list calls, originate, manage agents, and pull analytics. The agent can do anything that your role in the organization allows. See Platform MCP Server for the full usage guide:read scope allows queries. write scope allows
mutations.
Instead of one tool per API operation (~540), the server exposes four
meta-tools:
An agent follows this workflow:
whoami → list_operations →
describe_operation → call_operation. For org-scoped operations, the
server pins the organization id to the key’s org. An agent cannot be
steered into another tenant.
Smoke test
Plain-text documentation
Some agents do not speak MCP. For them, and for use as a static prompt-context drop-in, every page is also published as plain Markdown:
The format follows the llms.txt convention. Put
the URL into an LLM’s context window, and the LLM knows how to use it.
CLI: clutch
The clutch CLI does what the MCP server does. After clutch auth login, it also runs telephony operations against the live control-plane
API.
Docs (no auth):
ExecuteDialplan server-side):
CLUTCH_BASE_URL (portal), CLUTCH_DOCS_BASE (docs site).
Scaffolding agent-ready projects
clutchcall init <lang> <name> creates a working starter in your
working directory:
- A working dial / event-handling sample (
main.clutchcall/main.py/src/index.ts) that compiles against the ClutchCall SDK. - An
AGENTS.mdfile tuned for that language. Agents read this file first when they enter the project. It captures the language-specific traps that an agent will otherwise re-discover the hard way (e.g. “Emscripten corrupts byte arrays passed asstd::string; usetyped_memory_viewinstead”). - A
.clutchcall.jsonproject manifest with a pinned schema version forclutchcall migrate.
Best practices for AI-assisted development
These practices apply to any SDK that changes quickly. We list them because the ClutchCall wire format and method-ID table change between minor releases.- Browse before you search. Tell your agent to fetch
/llms.txtfirst, so that it knows what exists. Search excerpts are noisier than full pages. - Fetch full pages, not excerpts. Use
get_page(MCP) orget-page(CLI) when you need authoritative answers. The grouped index is for navigation. The page itself is for code. - Never hand-edit serde structs. The Python, TypeScript, Go, Rust, Java, and .NET bindings are auto-generated from the schema. To add an RPC field, your agent should update the upstream schema and regenerate. It should not patch the binding by hand.
- Run
clutchcall migrateafter you bump the SDK. This shows schema drift before runtime does.
Agent Skills
The ClutchCall Agent Skills repository ships end-to-end recipes. A recipe loads into your coding agent’s context when your intent matches. The agent then builds the feature the correct way the first time. Put the repo into.claude/skills/ (Claude Code) or .cursor/skills/ (Cursor). Your
agent then gains task-specific knowledge for these workflows:
Generic recipes
clutchcall-pstn-dial— outbound PSTN dialing (auth, originate, audio frames, hangup).clutchcall-ai-bridge— wire a live call to OpenAI Realtime / Anthropic / Gemini Live with barge-in.clutchcall-call-events—CallEventstream consumption, reconnection, Q.850 cause handling.clutchcall-inbound-routing—SetInboundRouting→AnswerIncomingCall, IVR menus, queueing.clutchcall-sip-trunk— register a carrier (Twilio, Telnyx, Bandwidth, Plivo), caller-ID rules, codecs.clutchcall-bulk-campaign—OriginateBulkwith CSV input, pacing, abort + resume.clutchcall-recording— per-call recording, stereo, retrieval, transcription.clutchcall-tool-calling— LLM tool / function calling: the built-in implicit telephony toolset (transfer / hold / DTMF / disconnect / supervisor), custom server-side tools, and client-side tool calls via OpenAI Realtime.clutchcall-rag-integration— pgvector / Pinecone / Weaviate retrieval as a tool call with latency budgets and barge-in safety.clutchcall-crm-enrichment— pre-call enrichment (Salesforce / HubSpot lookup → system prompt overrides) vs. in-call tool lookup.
clutchcall-vendor-browser-webrtc— capture mic in the browser, send PCMU over WebTransport.clutchcall-vendor-livekit— bridge PSTN into a LiveKit room.clutchcall-vendor-daily— bridge PSTN into a Daily room (Pipecat-friendly).clutchcall-vendor-chime— Amazon Chime SDK Meetings or Voice Connector.clutchcall-vendor-twilio— bridge from existing Twilio Media Streams (TwiML<Stream>) into ClutchCall.clutchcall-vendor-vapi— bridge a Vapi.ai voice agent over Vapi’s WebSocket transport.

