Skip to main content
Glama

@calltelemetry/cucm-emulator-mcp

Servidor de Protocolo de Contexto de Modelo (MCP) impulsado por OpenAPI para el Emulador de Cisco Unified Communications Manager (CUCM).

Descripción general

@calltelemetry/cucm-emulator-mcp es un servidor MCP impulsado por OpenAPI que conecta asistentes de codificación de IA y agentes de automatización directamente a instancias del Emulador de Cisco CUCM. Analiza la especificación de contrato OpenAPI 3.1.0 del emulador para generar dinámicamente herramientas MCP discretas fuertemente tipadas en los 6 dominios principales de telefonía:

  1. Fixtures y Topología: emu_seed_fixtures, emu_reset_store, emu_inspect_fixtures

  2. Nodos y Salud del Clúster: emu_list_nodes, emu_set_node_status (conmutación por error ADR 0120/0122)

  3. Teléfonos y Registro: emu_list_phones, emu_set_phone_status, emu_get_phone_web

  4. Simulación de Llamadas y Patas: emu_simulate_call, emu_call_action, emu_list_active_calls

  5. Enrutamiento de Políticas CURRI / ECC: emu_evaluate_curri, emu_get_curri_history

  6. Buffers CDR / CMR: emu_generate_cdrs, emu_get_cdr_history

  7. Operaciones Dinámicas OpenAPI: 46+ operaciones compiladas automáticamente (emu_get_summary, emu_get_topology, emu_query_sql, emu_list_inventory, emu_upsert_inventory, etc.)

Related MCP server: packet-tracer-mcp

Arquitectura

┌─────────────────────────────────────────────────────────────┐
│                    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)   │
└───────────────────────────┘ └───────────────────────────────┘

Instalación e Inicio Rápido

CLI Global

npm install -g @calltelemetry/cucm-emulator-mcp

Ejecutar Servidor Stdio (para Agentes de IA / Claude Desktop)

cucm-emulator-mcp --transport stdio

Ejecutar Servidor SSE

cucm-emulator-mcp --transport sse --port 3000 --host 127.0.0.1

Opciones de Configuración

Opción

Bandera

Variable de Entorno

Predeterminado

Descripción

Transporte

-t, --transport

MCP_TRANSPORT

stdio

Tipo de transporte: stdio o sse

Puerto

-p, --port

PORT / MCP_PORT

3000

Puerto para el servidor HTTP SSE

Host

-h, --host

HOST / MCP_HOST

127.0.0.1

Host de enlace para el transporte SSE

URL de Destino

-u, --target-url

CUCM_EMULATOR_URL

undefined

URL del emulador en vivo de destino

Ruta de Espec

-s, --spec-path

CUCM_OPENAPI_SPEC

Incluida

Ruta o URL a la especificación OpenAPI 3.1.0

Modo Simulado

-m, --mock

CUCM_MOCK

false

Forzar almacén simulado en memoria en el proceso

Perfil de Semilla

--seed-profile

CUCM_SEED_PROFILE

lab-small

lab-small, standard-enterprise, empty

Token de Autenticación

--auth-token

CUCM_EMULATOR_AUTH_TOKEN

undefined

Token de autenticación Bearer para el emulador en vivo

Redactar Secretos

--redact-secrets

REDACT_SECRETS

false

Redactar cadenas sensibles en los registros

Configuración del Cliente MCP

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "cucm-emulator": {
      "command": "cucm-emulator-mcp",
      "args": ["--transport", "stdio", "--mock", "--seed-profile", "lab-small"]
    }
  }
}

Integración SSE

{
  "mcpServers": {
    "cucm-emulator-sse": {
      "url": "http://127.0.0.1:3000/sse"
    }
  }
}

Referencia de Herramientas Disponibles

Fixtures y Topología

  • emu_seed_fixtures: Siembra topología de clúster determinista, nodos, teléfonos, particiones de plan de marcado, CSS y políticas CURRI.

  • emu_reset_store: Restablece o borra el estado del emulador y vuelve a sembrar con un perfil de topología especificado.

  • emu_inspect_fixtures: Inspecciona y devuelve un resumen completo del estado activo del clúster CUCM.

Nodos y Conmutación por Error

  • emu_list_nodes: Lista todos los nodos del clúster CUCM (Publisher, Subscribers, TFTP) con roles y códigos de retorno RIS.

  • emu_set_node_status: Establece el estado del nodo (Online, Offline, NotFound, SearchLimitExceeded) para pruebas de conmutación por error ADR 0120/0122.

Teléfonos y Registro

  • emu_list_phones: Lista los endpoints de teléfonos IP Cisco configurados y registrados con números de directorio y MACs.

  • emu_set_phone_status: Actualiza el estado de registro del teléfono (Registered, UnRegistered, Rejected, Unknown).

  • emu_get_phone_web: Obtiene respuestas web de servicio/estado del teléfono en XML, HTML o JSON.

Simulación de Llamadas

  • emu_simulate_call: Simula una llamada telefónica de extremo a extremo a través del enrutamiento del plan de marcado CUCM con métricas de medios RTP.

  • emu_call_action: Ejecuta acciones durante la llamada (answer, hold, resume, drop).

  • emu_list_active_calls: Lista las sesiones de llamadas activas en curso en el emulador.

Enrutamiento de Políticas CURRI / ECC

  • emu_evaluate_curri: Evalúa políticas de enrutamiento de llamadas externas a través de CURRI / ECC, devolviendo veredictos de permitir, denegar o desviar.

  • emu_get_curri_history: Recupera el registro de decisiones de evaluación de enrutamiento CURRI pasadas.

Buffers CDR / CMR

  • emu_generate_cdrs: Genera lotes de registros CDR sintéticos (normal, abandonado, bloqueado por curri, ráfaga).

  • emu_get_cdr_history: Recupera registros CDR recientes en JSON estructurado o formato de exportación CSV crudo de Cisco.

Desarrollo y Verificación

# 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-run

Licencia

MIT © Call Telemetry

Install Server
A
license - permissive license
C
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with Cisco Modeling Labs (CML) using natural language, allowing creation, management, and automation of network labs.
    69
    BSD 2-Clause "Simplified"

View all related MCP servers

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.

View all MCP Connectors

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/calltelemetry/cucm-emulator-mcp'

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