cucm-emulator-mcp
Provides tools for interacting with Cisco Unified Communications Manager (CUCM) Emulator, enabling simulation and management of cluster nodes, phone registration, call legs, CURRI/ECC policy routing, and CDR/CMR buffers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cucm-emulator-mcpCan you list the phones in the emulator and show their status?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@calltelemetry/cucm-emulator-mcp
OpenAPI-driven Model Context Protocol (MCP) server for Cisco Unified Communications Manager (CUCM) Emulator.
Overview
@calltelemetry/cucm-emulator-mcp is an OpenAPI-driven MCP server that connects AI coding assistants and automation agents directly to Cisco CUCM Emulator instances. It parses the emulator's OpenAPI 3.1.0 contract specification to dynamically generate strongly-typed discrete MCP tools across all 6 core telephony domains:
Fixtures & Topology:
emu_seed_fixtures,emu_reset_store,emu_inspect_fixturesNodes & Cluster Health:
emu_list_nodes,emu_set_node_status(ADR 0120/0122 failover)Phones & Registration:
emu_list_phones,emu_set_phone_status,emu_get_phone_webCall Simulation & Legs:
emu_simulate_call,emu_call_action,emu_list_active_callsCURRI / ECC Policy Routing:
emu_evaluate_curri,emu_get_curri_historyCDR / CMR Buffers:
emu_generate_cdrs,emu_get_cdr_historyDynamic OpenAPI Operations: 46+ auto-compiled operations (
emu_get_summary,emu_get_topology,emu_query_sql,emu_list_inventory,emu_upsert_inventory, etc.)
Related MCP server: packet-tracer-mcp
Architecture
┌─────────────────────────────────────────────────────────────┐
│ AI Agents / MCP Clients │
│ (Claude Code, Cursor, Windsurf) │
└──────────────────────────────┬──────────────────────────────┘
│ JSON-RPC 2.0 (Stdio / SSE)
┌──────────────────────────────▼──────────────────────────────┐
│ CucmEmulatorMcpServer │
│ │
│ ┌───────────────────────┐ ┌────────────────────────┐ │
│ │ Tool Registry │ │ OpenAPI Spec Parser │ │
│ │ (15 Domain + Dynamic) │◄─────┤ (Dereferencer/Build) │ │
│ └───────────┬───────────┘ └────────────────────────┘ │
│ │ │
│ ┌───────────▼───────────────────────────────────────────┐ │
│ │ ICucmEmulatorClient Abstraction │ │
│ └───────────┬───────────────────────────┬───────────────┘ │
└──────────────┼───────────────────────────┼──────────────────┘
│ │
┌──────────────▼────────────┐ ┌────────────▼──────────────────┐
│ HttpCucmClient │ │ DirectStoreCucmClient │
│ Live In-Guest / Container│ │ In-Memory Mock Store State │
│ (http://127.0.0.1:8443) │ │ (100% Offline Zero-Config) │
└───────────────────────────┘ └───────────────────────────────┘Installation & Quick Start
Global CLI
npm install -g @calltelemetry/cucm-emulator-mcpRun Stdio Server (for AI Agents / Claude Desktop)
cucm-emulator-mcp --transport stdioRun SSE Server
cucm-emulator-mcp --transport sse --port 3000 --host 127.0.0.1Configuration Options
Option | Flag | Environment Variable | Default | Description |
Transport |
|
|
| Transport type: |
Port |
|
|
| Port for SSE HTTP server |
Host |
|
|
| Bind host for SSE transport |
Target URL |
|
|
| Target live emulator URL |
Spec Path |
|
| Bundled | Path or URL to OpenAPI 3.1.0 spec |
Mock Mode |
|
|
| Force in-process in-memory mock store |
Seed Profile |
|
|
|
|
Auth Token |
|
|
| Bearer auth token for live emulator |
Redact Secrets |
|
|
| Redact sensitive strings in logs |
MCP Client Configuration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"cucm-emulator": {
"command": "cucm-emulator-mcp",
"args": ["--transport", "stdio", "--mock", "--seed-profile", "lab-small"]
}
}
}SSE Integration
{
"mcpServers": {
"cucm-emulator-sse": {
"url": "http://127.0.0.1:3000/sse"
}
}
}Available Tool Reference
Fixtures & Topology
emu_seed_fixtures: Seeds deterministic cluster topology, nodes, phones, dial plan partitions, CSS, and CURRI policies.emu_reset_store: Resets or wipes emulator state and re-seeds with a specified topology profile.emu_inspect_fixtures: Inspects and returns a comprehensive summary of active CUCM cluster state.
Nodes & Failover
emu_list_nodes: Lists all CUCM cluster nodes (Publisher, Subscribers, TFTP) with roles and RIS return codes.emu_set_node_status: Sets node status (Online,Offline,NotFound,SearchLimitExceeded) for ADR 0120/0122 failover testing.
Phones & Registration
emu_list_phones: Lists configured and registered Cisco IP phone endpoints with directory numbers and MACs.emu_set_phone_status: Updates phone registration status (Registered,UnRegistered,Rejected,Unknown).emu_get_phone_web: Fetches phone XML, HTML, or JSON serviceability / status web responses.
Call Simulation
emu_simulate_call: Simulates an end-to-end telephone call through CUCM dial plan routing with RTP media metrics.emu_call_action: Executes mid-call actions (answer,hold,resume,drop).emu_list_active_calls: Lists active in-progress call sessions in the emulator.
CURRI / ECC Policy Routing
emu_evaluate_curri: Evaluates external call routing policies via CURRI / ECC, returning permit, deny, or divert verdicts.emu_get_curri_history: Retrieves the log of past CURRI routing evaluation decisions.
CDR / CMR Buffers
emu_generate_cdrs: Generates batches of synthetic CDR records (normal, abandoned, curri-blocked, burst).emu_get_cdr_history: Retrieves recent CDR records in structured JSON or raw Cisco CSV export format.
Development & Verification
# Typecheck
npm run typecheck
# Build TypeScript
npm run build
# Run Full Test Suite (155 Tests)
npm test
# Run with Coverage
npm run test:coverage
# Verify Packaging
npm pack --dry-runLicense
MIT © Call Telemetry
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to make real-world phone calls with AI voice technology and provides tools to track call status, transcripts, and summaries. It supports automated communication with both live numbers and simulated businesses for testing and demonstration purposes.
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Cisco Packet Tracer in real time, allowing natural language-driven creation and configuration of network topologies.4MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants to manage Cisco Unified Communications Manager (CUCM) via AXL SOAP API, supporting provisioning, configuration, and database queries through natural language.117MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Cisco Modeling Labs (CML) using natural language, allowing creation, management, and automation of network labs.69BSD 2-Clause "Simplified"
Related MCP Connectors
Simulation, evaluation and monitoring for voice agents.
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/calltelemetry/cucm-emulator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server