Pbx MCP Server
by ictinnovationsio.github.ictinnovations/pbx-mcpv0.1.2
Asterisk and FreeSWITCH PBX state over AMI and ESL: extensions, active channels, trunk and SIP peer status, dialplan and call history; read-only by default.
context tax
queued
security
queued
cold start
queued
freshness
Active2d ago
Install Pbx MCP server
Install in Claude Code
claude mcp add pbx -e ASTERISK_AMI_PASSWORD='<asterisk-ami-password>' -e FREESWITCH_ESL_PASSWORD='<freeswitch-esl-password>' -- npx -y pbx-mcpInstall in Cursor
{
"mcpServers": {
"pbx": {
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_PASSWORD": "<asterisk-ami-password>",
"FREESWITCH_ESL_PASSWORD": "<freeswitch-esl-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"pbx": {
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_PASSWORD": "<asterisk-ami-password>",
"FREESWITCH_ESL_PASSWORD": "<freeswitch-esl-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"pbx": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_PASSWORD": "<asterisk-ami-password>",
"FREESWITCH_ESL_PASSWORD": "<freeswitch-esl-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"pbx": {
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_PASSWORD": "<asterisk-ami-password>",
"FREESWITCH_ESL_PASSWORD": "<freeswitch-esl-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| ASTERISK_AMI_HOST | — | — | Hostname or IP of the Asterisk server. Set this to enable the Asterisk tools. |
| ASTERISK_AMI_PORT | — | — | Asterisk Manager Interface port. Defaults to 5038. |
| ASTERISK_AMI_USERNAME | — | — | AMI username from manager.conf. |
| ASTERISK_AMI_PASSWORD | — | yes | AMI secret from manager.conf. |
| ASTERISK_AMI_TLS | — | — | Connect to AMI over TLS. Set true if tlsenable=yes in manager.conf. |
| FREESWITCH_ESL_HOST | — | — | Hostname or IP of the FreeSWITCH server. Set this to enable the FreeSWITCH tools. |
| FREESWITCH_ESL_PORT | — | — | FreeSWITCH inbound event socket port. Defaults to 8021. |
| FREESWITCH_ESL_PASSWORD | — | yes | Event socket password from event_socket.conf.xml. Defaults to ClueCon, which you should change. |
| PBX_MCP_ALLOW_WRITE | — | — | Unlocks call control. When false the server is read-only and the originate and hangup tools are not registered at all. Placing a call on a live trunk costs real money, so leave this off unless you mean it. |
| PBX_MCP_TIMEOUT_MS | — | — | Per command timeout in milliseconds. Defaults to 10000. |
Freshness
Active — last maintenance signal 2d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-08 · 2d ago · GitHub
Latest release
2026-08-12 · 59d ago · GitHub · v0.1.2
Package published
no data · npm/PyPI
Registry entry updated
2026-08-12 · 59d ago · official registry · v0.1.2
FAQ
›How do I install the Pbx MCP server in Claude Code?
Run: claude mcp add pbx -e ASTERISK_AMI_PASSWORD='<asterisk-ami-password>' -e FREESWITCH_ESL_PASSWORD='<freeswitch-esl-password>' -- npx -y pbx-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Pbx require an API key?
Yes. It expects ASTERISK_AMI_PASSWORD, FREESWITCH_ESL_PASSWORD, of which 2 are secrets.
›Can I use Pbx as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Pbx in the official MCP registry?
Yes, as io.github.ictinnovations/pbx-mcp.
Alternatives to Pbx
Other communication MCP servers.