Inspect and control Asterisk (AMI) and FreeSWITCH (ESL) PBX servers from your AI assistant.
Connect Runs on your machine
claude mcp add pbx-mcp -e ASTERISK_AMI_HOST=<ASTERISK_AMI_HOST> -e ASTERISK_AMI_PORT=<ASTERISK_AMI_PORT> -e ASTERISK_AMI_USERNAME=<ASTERISK_AMI_USERNAME> -e ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> -e ASTERISK_AMI_TLS=<ASTERISK_AMI_TLS> -e FREESWITCH_ESL_HOST=<FREESWITCH_ESL_HOST> -e FREESWITCH_ESL_PORT=<FREESWITCH_ESL_PORT> -e FREESWITCH_ESL_PASSWORD=<FREESWITCH_ESL_PASSWORD> -e PBX_MCP_ALLOW_WRITE=<PBX_MCP_ALLOW_WRITE> -e PBX_MCP_TIMEOUT_MS=<PBX_MCP_TIMEOUT_MS> -- npx -y [email protected]
{
"mcpServers": {
"pbx-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ASTERISK_AMI_HOST": "<ASTERISK_AMI_HOST>",
"ASTERISK_AMI_PORT": "<ASTERISK_AMI_PORT>",
"ASTERISK_AMI_USERNAME": "<ASTERISK_AMI_USERNAME>",
"ASTERISK_AMI_PASSWORD": "<ASTERISK_AMI_PASSWORD>",
"ASTERISK_AMI_TLS": "<ASTERISK_AMI_TLS>",
"FREESWITCH_ESL_HOST": "<FREESWITCH_ESL_HOST>",
"FREESWITCH_ESL_PORT": "<FREESWITCH_ESL_PORT>",
"FREESWITCH_ESL_PASSWORD": "<FREESWITCH_ESL_PASSWORD>",
"PBX_MCP_ALLOW_WRITE": "<PBX_MCP_ALLOW_WRITE>",
"PBX_MCP_TIMEOUT_MS": "<PBX_MCP_TIMEOUT_MS>"
}
}
}
}
{
"mcpServers": {
"pbx-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ASTERISK_AMI_HOST": "<ASTERISK_AMI_HOST>",
"ASTERISK_AMI_PORT": "<ASTERISK_AMI_PORT>",
"ASTERISK_AMI_USERNAME": "<ASTERISK_AMI_USERNAME>",
"ASTERISK_AMI_PASSWORD": "<ASTERISK_AMI_PASSWORD>",
"ASTERISK_AMI_TLS": "<ASTERISK_AMI_TLS>",
"FREESWITCH_ESL_HOST": "<FREESWITCH_ESL_HOST>",
"FREESWITCH_ESL_PORT": "<FREESWITCH_ESL_PORT>",
"FREESWITCH_ESL_PASSWORD": "<FREESWITCH_ESL_PASSWORD>",
"PBX_MCP_ALLOW_WRITE": "<PBX_MCP_ALLOW_WRITE>",
"PBX_MCP_TIMEOUT_MS": "<PBX_MCP_TIMEOUT_MS>"
}
}
}
}
{
"servers": {
"pbx-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ASTERISK_AMI_HOST": "<ASTERISK_AMI_HOST>",
"ASTERISK_AMI_PORT": "<ASTERISK_AMI_PORT>",
"ASTERISK_AMI_USERNAME": "<ASTERISK_AMI_USERNAME>",
"ASTERISK_AMI_PASSWORD": "<ASTERISK_AMI_PASSWORD>",
"ASTERISK_AMI_TLS": "<ASTERISK_AMI_TLS>",
"FREESWITCH_ESL_HOST": "<FREESWITCH_ESL_HOST>",
"FREESWITCH_ESL_PORT": "<FREESWITCH_ESL_PORT>",
"FREESWITCH_ESL_PASSWORD": "<FREESWITCH_ESL_PASSWORD>",
"PBX_MCP_ALLOW_WRITE": "<PBX_MCP_ALLOW_WRITE>",
"PBX_MCP_TIMEOUT_MS": "<PBX_MCP_TIMEOUT_MS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
ASTERISK_AMI_HOSTOptional | Hostname or IP of the Asterisk server. Set this to enable the Asterisk tools. |
ASTERISK_AMI_PORTOptional | Asterisk Manager Interface port. Defaults to 5038. |
ASTERISK_AMI_USERNAMEOptional | AMI username from manager.conf. |
ASTERISK_AMI_PASSWORDOptional, secret | AMI secret from manager.conf. |
ASTERISK_AMI_TLSOptional | Connect to AMI over TLS. Set true if tlsenable=yes in manager.conf. |
FREESWITCH_ESL_HOSTOptional | Hostname or IP of the FreeSWITCH server. Set this to enable the FreeSWITCH tools. |
FREESWITCH_ESL_PORTOptional | FreeSWITCH inbound event socket port. Defaults to 8021. |
FREESWITCH_ESL_PASSWORDOptional, secret | Event socket password from event_socket.conf.xml. Defaults to ClueCon, which you should change. |
PBX_MCP_ALLOW_WRITEOptional | 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_MSOptional | Per command timeout in milliseconds. Defaults to 10000. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 26 Oct 2026 |
| Last updated | 26 Oct 2026 |
| Registry name | io.github.ictinnovations/pbx-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
