About ictpbx-mcp
ictpbx-mcp is a read-only MCP server for ICTPBX, intended for assistants that need visibility into PBX configuration and live statistics. It retrieves data through the ICTCore REST API and does not place calls or change settings.
Key features
- 01PBX statistics
- 02List SIP extensions
- 03List inbound DID numbers
- 04List SIP trunk providers
- 05List PBX tenants
Use cases
- 01Review extension and device counts
- 02Check inbound numbers by tenant
- 03Inspect SIP trunk providers
- 04View customer organizations on the PBX
MCP support
Exposes ICTPBX state to MCP clients through five read-only tools. It authenticates with the ICTCore REST API and refreshes its JWT automatically.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y ictpbx-mcpICTPBX_BASE_URLICTCore REST base URL of your ICTPBX server, normally ending in /api, e.g. https://your-ictpbx/api.ICTPBX_USERNAMEAPI account email (ICTCore logs in by email).ICTPBX_PASSWORDSecretPassword for the account.ICTPBX_TIMEOUT_MSPer request timeout in milliseconds. Defaults to 30000.ICTPBX_TLS_INSECURESkip TLS certificate verification. Only for a self-signed test server.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
5Saved tool list · updated 2d ago
This tool takes no parameters.
Details
From the project READMEictpbx-mcp
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.
Install
npx -y ictpbx-mcp # no install
npm install -g ictpbx-mcp
Requires Node.js 18 or newer.
Configure
| 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 |
Claude Desktop example
{
"mcpServers": {
"ictpbx": {
"command": "npx",
"args": ["-y", "ictpbx-mcp"],
"env": {
"ICTPBX_BASE_URL": "https://your-ictpbx/api",
"ICTPBX_USERNAME": "[email protected]",
"ICTPBX_PASSWORD": "your-password"
}
}
}
}
Tools
| 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 |
How it connects
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.
About
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.