pbx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ASTERISK_AMI_TLS | No | Set 'true' if tlsenable=yes. | false |
| ASTERISK_AMI_HOST | No | Hostname or IP of the Asterisk box. Required to enable Asterisk tools. | |
| ASTERISK_AMI_PORT | No | AMI port from manager.conf. | 5038 |
| PBX_MCP_TIMEOUT_MS | No | Per command timeout. | 10000 |
| FREESWITCH_ESL_HOST | No | Hostname or IP of the switch. Required to enable FreeSWITCH tools. | |
| FREESWITCH_ESL_PORT | No | Inbound ESL port. | 8021 |
| PBX_MCP_ALLOW_WRITE | No | Unlocks call control. Read the safety section first. | false |
| ASTERISK_AMI_PASSWORD | No | AMI secret. | |
| ASTERISK_AMI_USERNAME | No | AMI user. | |
| FREESWITCH_ESL_PASSWORD | No | From event_socket.conf.xml. | ClueCon |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| asterisk_statusA | Core status of the Asterisk server: version, uptime, active calls and calls processed. Use this first to confirm the PBX is reachable before running other Asterisk tools. |
| asterisk_channelsA | Every channel currently up on the PBX, with caller ID, state, bridge, duration and the dialplan location it is sitting in. This is the tool for 'what calls are live right now'. |
| asterisk_endpointsA | PJSIP endpoints with their device state and how many contacts are registered. Use this to answer 'is extension 1001 registered' or 'which phones are offline'. Falls back to chan_sip peers on older installations. |
| asterisk_dialplanA | Dump the dialplan for a context, or for one extension within a context. Useful for tracing where a call would go before placing it. |
| asterisk_cliA | Run a command through the Asterisk CLI and return its raw output. In the default read-only mode only inspection commands such as 'core show', 'pjsip show' and 'queue show' are permitted. Set PBX_MCP_ALLOW_WRITE=true to lift that restriction. |
| freeswitch_statusA | Core status of the FreeSWITCH server: version, uptime, current and maximum sessions. Use this first to confirm the switch is reachable before running other FreeSWITCH tools. |
| freeswitch_channelsA | Every call leg currently up on the switch, as returned by 'show channels'. This is the tool for 'what calls are live right now' on FreeSWITCH. |
| freeswitch_registrationsA | Registered SIP users on a Sofia profile, with contact URI, user agent and expiry. Use this to answer 'is this extension registered' or 'which devices dropped off'. |
| freeswitch_sofia_statusA | State of every Sofia SIP profile and gateway, including whether trunks are registered upstream. This is where to look when outbound calls fail but the switch itself is healthy. |
| freeswitch_apiA | Run a command through the FreeSWITCH event socket and return its raw output. In the default read-only mode only inspection commands such as 'status', 'show' and 'sofia status' are permitted. Set PBX_MCP_ALLOW_WRITE=true to lift that restriction. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ictinnovations/pbx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server