CTM VoiceAI MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ctm_voiceai_configuredA | Shows configured CTM VoiceAI settings: OAuth client id, login state, the report renderer path, and where analysis runs are written. Never reveals secrets. |
| ctm_voiceai_auth_loginA | Logs in to CTM with OAuth2 device flow. First call returns a user_code and verification_uri; the user visits the URL and enters the code. Call again (or pass wait_seconds) to finish and store tokens. No API key needed. |
| ctm_voiceai_auth_statusA | Reports whether CTM OAuth tokens are stored, their expiry, scope, and account id. |
| ctm_voiceai_auth_logoutA | Deletes stored CTM OAuth tokens and any pending device-flow session. |
| ctm_voiceai_auth_urlA | Builds the OAuth2 authorization URL for the web flow. Open it in a browser; CTM redirects to your redirect_uri with a ?code=. Then call ctm_voiceai_auth_exchange with that code. |
| ctm_voiceai_auth_exchangeB | Exchanges a web-flow authorization code for CTM OAuth tokens and stores them. |
| ctm_voiceai_get_voice_botsA | Step 2 of the review flow: returns the account's VoiceAI agents and their full current instructions. Optionally filter to one agent by id or name substring. The assistant compares these instructions against the transcripts from ctm_voiceai_get_calls. |
| ctm_voiceai_get_callsA | Step 3 of the review flow: one GET against the CTM calls endpoint returning a page of answered calls with transcriptions. The response includes a |
| ctm_voiceai_write_reportA | Step 6 of the review flow: takes the analysis the assistant produced, writes it to files, renders the self-contained HTML report, and opens it in the browser. Pass the canonical topics, an optional per-call table, the reviewed agents with their current instructions, the recommendations Markdown, and the suggested fully rewritten prompt. |
| ctm_voiceai_run_statusB | Returns the status of an analysis run (running/complete/error), its output file paths, and the tail of the log when still running or failed. When complete, read recommended_prompt_updates to see the recommendations. |
| ctm_voiceai_list_runsC | Lists recent VoiceAI analysis runs, newest first. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
The read/fetch tools (get_calls, get_voice_bots, list_runs, run_status, write_report) each map to a distinct step of the review flow, and step numbering in descriptions helps. The weak spot is the six auth tools: ctm_voiceai_configured vs ctm_voiceai_auth_status both report storage/state, and auth_login (device flow) vs auth_url+auth_exchange (web flow) are two paths to the same goal, which invites misselection.
All names share the ctm_voiceai_ prefix and snake_case, but the internal ordering mixes conventions: verb-first (list_runs, get_calls, write_report) alongside resource-first (auth_status, auth_exchange, auth_url, run_status). ctm_voiceai_configured breaks the pattern further by using a past-tense adjective with no verb.
11 tools is a sensible size for an OAuth plus review-and-report workflow, and each tool does earn a slot. It is slightly top-heavy, though, with 6 of 11 tools devoted to authentication while the actual analysis flow gets 5.
The surface covers the full auth lifecycle (url/exchange/login/logout/status/configured) plus run listing, run status, agent and call retrieval, and report writing, so an agent can complete the review loop end to end. Minor gaps: no explicit run-start trigger or date-range filtering on get_calls, but these are workable around via the batch plan.