centralita-vpbx-mcp
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., "@centralita-vpbx-mcpshow me calls from the last hour"
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.
centralita-vpbx-mcp
MCP (Model Context Protocol) para la centralita virtual vpbx.me (plataforma de PBX en la nube basada en Java/JAX-RS sobre FreeSWITCH). Da a un asistente compatible con MCP (Claude Code, Claude Desktop, etc.) acceso a la telefonía: historial, grabaciones, llamadas en tiempo real, click-to-call, control de llamadas, extensiones, colas, agentes, contactos y buzones.
Arquitectura TypeScript/Node sobre el SDK oficial de MCP. La API está documentada en API_REFERENCE.md.
⚠️ Proyecto comunitario, no oficial de la plataforma. Úsalo solo con centralitas para las que tengas autorización.
Qué puede hacer (52 herramientas)
🟢 Solo lectura (siempre disponibles)
Tiempo real:
pbx_live_status(llamadas en curso + estado de extensiones).Historial (CDR):
pbx_list_calls,pbx_get_call,pbx_count_calls.Grabaciones:
pbx_get_recording_url,pbx_download_recording(guarda el MP3 a disco),pbx_download_voicemail_audio.Extensiones:
pbx_list_extensions,pbx_get_extension,pbx_find_extension_by_username.Colas:
pbx_list_queues,pbx_get_queue,pbx_queue_callers,pbx_queue_state,pbx_queue_waittime.Agentes:
pbx_list_agents,pbx_get_agent,pbx_agent_breaktypes,pbx_agent_status,pbx_agent_statuscount.Contactos:
pbx_list_contacts,pbx_get_contact.Locuciones / buzones:
pbx_list_announcements,pbx_get_announcement,pbx_list_voicemails,pbx_get_voicemail.Encuestas:
pbx_list_surveys.
🔵 Atajos / informes (solo lectura, alto valor)
pbx_calls_in_range— todas las llamadas de un día/rango (pagina solo y deduplica) + resumen.pbx_calls_report— informe por extensión: salientes/entrantes/atendidas/minutos, resolviendo el número de extensión a su nombre.pbx_extension_directory— directorio número → nombre → email.pbx_recordings_in_range— llamadas grabadas de un periodo, listas para descargar y transcribir.
🟠 Acciones de llamada — candado CENTRALITA_ENABLE_CALLS
pbx_originate_call, pbx_click_to_call_external, pbx_click_to_call_queue, pbx_click_to_call_inverse_queue, pbx_hangup, pbx_schedule_hangup, pbx_blind_transfer, pbx_attended_transfer_start/complete/cancel, pbx_start_recording, pbx_stop_recording, pbx_broadcast_audio.
🔴 Escritura de configuración — candado CENTRALITA_ENABLE_WRITES
pbx_update_extension, pbx_reset_sip_password, pbx_update_contact, pbx_set_agent_status, pbx_update_cdr_vars, pbx_mark_voicemail_read/unread, pbx_delete_voicemail.
Related MCP server: bubblyphone-agents
Seguridad por capas
Tres candados independientes, todos OFF por defecto (arranca en solo lectura):
Variable | Por defecto | Desbloquea |
|
| Originar/colgar/transferir/grabar llamadas reales |
|
| Editar extensiones/contactos/agentes, borrar buzones… |
|
| Devolver contraseñas SIP/web en claro (si no, se redactan) |
Las tools llevan anotaciones MCP (readOnlyHint / destructiveHint) para que el cliente agrupe lectura vs. acciones en su panel de permisos.
Nota:
GET /api/extensionde la plataforma puede devolver contraseñas SIP en claro. Este MCP las redacta por defecto. Trata tuCENTRALITA_API_KEYcomo un secreto sensible.
Instalación
git clone <este-repo> centralita-vpbx-mcp
cd centralita-vpbx-mcp
npm install
npm run buildCopia .env.example a .env y pon tu CENTRALITA_API_KEY.
Uso
Local (Claude Code / Claude Desktop · stdio)
npm start # solo lecturaRegistro en claude_desktop_config.json (o .mcp.json de Claude Code):
{
"mcpServers": {
"centralita": {
"command": "node",
"args": ["/ruta/a/centralita-vpbx-mcp/dist/index.js"],
"env": {
"CENTRALITA_API_KEY": "TU_API_KEY",
"CENTRALITA_ENABLE_CALLS": "false",
"CENTRALITA_ENABLE_WRITES": "false"
}
}
}
}Para permitir click-to-call, pon CENTRALITA_ENABLE_CALLS a "true".
Remoto (HTTP)
npm run start:http # escucha en http://0.0.0.0:8788/mcpProtégelo con CENTRALITA_MCP_AUTH_TOKEN (cabecera Authorization: Bearer <token>) y ponlo tras HTTPS. Endpoint de salud: GET /health.
Validación
node test-mcp.mjsComprueba el handshake MCP, lista las 52 tools, hace una lectura real (pbx_count_calls) y verifica que el candado de acciones bloquea pbx_hangup.
Arquitectura
src/
config.ts Carga .env + candados de seguridad
client.ts Cliente HTTP (X-Api-Key) + descarga binaria
util.ts jsonResult, ensureCalls/ensureWrites, fechas, redacción de secretos
server.ts Monta el McpServer y registra los 4 módulos
index.ts Arranque stdio (local) o HTTP (remoto)
tools/
read.ts Lectura (CDR, grabaciones, extensiones, colas, agentes, contactos, buzones)
workflow.ts Atajos/informes (paginado de CDR, informe por extensión, directorio)
actions.ts Acciones de llamada (candado CENTRALITA_ENABLE_CALLS)
write.ts Escritura de configuración (candado CENTRALITA_ENABLE_WRITES)Licencia
MIT — ver LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/DerechoVirtual/centralita-vpbx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server