PluginBench
MCP Server
Active
MIT

io.github.ictinnovations/pbx-mcp MCP Server

io.github.ictinnovations/pbx-mcp

What is the io.github.ictinnovations/pbx-mcp MCP server?

Inspect and control Asterisk (AMI) and FreeSWITCH (ESL) PBX servers from your AI assistant.

How to install io.github.ictinnovations/pbx-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • 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
    secret

    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
    secret

    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.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pbx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pbx-mcp"
      ],
      "env": {
        "ASTERISK_AMI_HOST": "<YOUR_ASTERISK_AMI_HOST>",
        "ASTERISK_AMI_PORT": "<YOUR_ASTERISK_AMI_PORT>",
        "ASTERISK_AMI_USERNAME": "<YOUR_ASTERISK_AMI_USERNAME>",
        "ASTERISK_AMI_PASSWORD": "<YOUR_ASTERISK_AMI_PASSWORD>",
        "ASTERISK_AMI_TLS": "<YOUR_ASTERISK_AMI_TLS>",
        "FREESWITCH_ESL_HOST": "<YOUR_FREESWITCH_ESL_HOST>",
        "FREESWITCH_ESL_PORT": "<YOUR_FREESWITCH_ESL_PORT>",
        "FREESWITCH_ESL_PASSWORD": "<YOUR_FREESWITCH_ESL_PASSWORD>",
        "PBX_MCP_ALLOW_WRITE": "<YOUR_PBX_MCP_ALLOW_WRITE>",
        "PBX_MCP_TIMEOUT_MS": "<YOUR_PBX_MCP_TIMEOUT_MS>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "pbx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pbx-mcp"
      ],
      "env": {
        "ASTERISK_AMI_HOST": "<YOUR_ASTERISK_AMI_HOST>",
        "ASTERISK_AMI_PORT": "<YOUR_ASTERISK_AMI_PORT>",
        "ASTERISK_AMI_USERNAME": "<YOUR_ASTERISK_AMI_USERNAME>",
        "ASTERISK_AMI_PASSWORD": "<YOUR_ASTERISK_AMI_PASSWORD>",
        "ASTERISK_AMI_TLS": "<YOUR_ASTERISK_AMI_TLS>",
        "FREESWITCH_ESL_HOST": "<YOUR_FREESWITCH_ESL_HOST>",
        "FREESWITCH_ESL_PORT": "<YOUR_FREESWITCH_ESL_PORT>",
        "FREESWITCH_ESL_PASSWORD": "<YOUR_FREESWITCH_ESL_PASSWORD>",
        "PBX_MCP_ALLOW_WRITE": "<YOUR_PBX_MCP_ALLOW_WRITE>",
        "PBX_MCP_TIMEOUT_MS": "<YOUR_PBX_MCP_TIMEOUT_MS>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pbx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pbx-mcp"
      ],
      "env": {
        "ASTERISK_AMI_HOST": "<YOUR_ASTERISK_AMI_HOST>",
        "ASTERISK_AMI_PORT": "<YOUR_ASTERISK_AMI_PORT>",
        "ASTERISK_AMI_USERNAME": "<YOUR_ASTERISK_AMI_USERNAME>",
        "ASTERISK_AMI_PASSWORD": "<YOUR_ASTERISK_AMI_PASSWORD>",
        "ASTERISK_AMI_TLS": "<YOUR_ASTERISK_AMI_TLS>",
        "FREESWITCH_ESL_HOST": "<YOUR_FREESWITCH_ESL_HOST>",
        "FREESWITCH_ESL_PORT": "<YOUR_FREESWITCH_ESL_PORT>",
        "FREESWITCH_ESL_PASSWORD": "<YOUR_FREESWITCH_ESL_PASSWORD>",
        "PBX_MCP_ALLOW_WRITE": "<YOUR_PBX_MCP_ALLOW_WRITE>",
        "PBX_MCP_TIMEOUT_MS": "<YOUR_PBX_MCP_TIMEOUT_MS>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "pbx-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "pbx-mcp"
      ],
      "env": {
        "ASTERISK_AMI_HOST": "<YOUR_ASTERISK_AMI_HOST>",
        "ASTERISK_AMI_PORT": "<YOUR_ASTERISK_AMI_PORT>",
        "ASTERISK_AMI_USERNAME": "<YOUR_ASTERISK_AMI_USERNAME>",
        "ASTERISK_AMI_PASSWORD": "<YOUR_ASTERISK_AMI_PASSWORD>",
        "ASTERISK_AMI_TLS": "<YOUR_ASTERISK_AMI_TLS>",
        "FREESWITCH_ESL_HOST": "<YOUR_FREESWITCH_ESL_HOST>",
        "FREESWITCH_ESL_PORT": "<YOUR_FREESWITCH_ESL_PORT>",
        "FREESWITCH_ESL_PASSWORD": "<YOUR_FREESWITCH_ESL_PASSWORD>",
        "PBX_MCP_ALLOW_WRITE": "<YOUR_PBX_MCP_ALLOW_WRITE>",
        "PBX_MCP_TIMEOUT_MS": "<YOUR_PBX_MCP_TIMEOUT_MS>"
      }
    }
  }
}
Claude Code
claude mcp add pbx-mcp --env ASTERISK_AMI_HOST=<YOUR_ASTERISK_AMI_HOST> --env ASTERISK_AMI_PORT=<YOUR_ASTERISK_AMI_PORT> --env ASTERISK_AMI_USERNAME=<YOUR_ASTERISK_AMI_USERNAME> --env ASTERISK_AMI_PASSWORD=<YOUR_ASTERISK_AMI_PASSWORD> --env ASTERISK_AMI_TLS=<YOUR_ASTERISK_AMI_TLS> --env FREESWITCH_ESL_HOST=<YOUR_FREESWITCH_ESL_HOST> --env FREESWITCH_ESL_PORT=<YOUR_FREESWITCH_ESL_PORT> --env FREESWITCH_ESL_PASSWORD=<YOUR_FREESWITCH_ESL_PASSWORD> --env PBX_MCP_ALLOW_WRITE=<YOUR_PBX_MCP_ALLOW_WRITE> --env PBX_MCP_TIMEOUT_MS=<YOUR_PBX_MCP_TIMEOUT_MS> -- npx -y pbx-mcp

Related MCP servers

Control a real Chrome browser to complete any task: fill forms, extract data, book flights.

110k
Python
MIT
View repository →

Live global intelligence: real-time markets, conflicts, country risk, chokepoints, energy. 39 tools.

83k
TypeScript
AGPL-3.0
View repository →

Netdata

Active

Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.

80k
Go
GPL-3.0
View repository →

Trending hip-hop artist momentum scores across four cultural dimensions.

79k
TypeScript
MIT
View repository →

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

68k
TypeScript
MIT
View repository →

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →