Read ICTPBX state: extensions, DID numbers, SIP trunks, tenants and live PBX statistics.
A Model Context Protocol server for ICTPBX, the multi-tenant, white-label IP-PBX built on the ICTCore framework by ICT Innovations.
It lets an AI assistant read your PBX state — extensions, DID numbers, SIP trunk providers, tenants and live statistics — over the ICTCore REST API. It is read-only: it never places a call or changes configuration.
npx -y ictpbx-mcp # no install
npm install -g ictpbx-mcp
Requires Node.js 18 or newer.
| Variable | Required | Default | |
|---|---|---|---|
ICTPBX_BASE_URL | yes | ICTCore REST base, normally ending in /api, e.g. https://your-ictpbx/api | |
ICTPBX_USERNAME | yes | API account email (ICTCore logs in by email) | |
ICTPBX_PASSWORD | yes | Password for that account | |
ICTPBX_TIMEOUT_MS | no | 30000 | Per-request timeout |
ICTPBX_TLS_INSECURE | no | false | Skip TLS verification — self-signed test servers only |
{
"mcpServers": {
"ictpbx": {
"command": "npx",
"args": ["-y", "ictpbx-mcp"],
"env": {
"ICTPBX_BASE_URL": "https://your-ictpbx/api",
"ICTPBX_USERNAME": "admin@example.com",
"ICTPBX_PASSWORD": "your-password"
}
}
}
}
| Tool | What it does |
|---|---|
ictpbx_pbx_statistics | Counts of extensions, devices, ring groups, queues, IVRs, voicemails, conferences, gateways |
ictpbx_list_extensions | SIP extensions with username, name, tenant |
ictpbx_list_dids | DID (inbound) numbers, active state and tenant |
ictpbx_list_providers | SIP trunk providers (upstream carriers) |
ictpbx_list_tenants | Tenants (customer organizations) on the PBX |
ICTPBX runs on ICTCore, which authenticates with a JWT from POST /authenticate
(login by email) and reads it back from the Authorization: Bearer header. The
server fetches the token on first use and refreshes it automatically.
Built by Tahir Almas at ICT Innovations — the team behind ICTPBX, ICTContact, ICTDialer, ICTFax and the ICTCore framework these products share. Learn more at ictpbx.com.
MIT licensed. Issues and PRs welcome at github.com/ictinnovations/ictpbx-mcp.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y ictpbx-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ictinnovations-ictpbx-mcp": {
"command": "npx",
"args": [
"-y",
"ictpbx-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceictpbx-mcpnpmio.github.ictinnovations/ictpbx-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.