{
  "markdown": "# ictpbx-mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for\n**[ICTPBX](https://ictpbx.com)**, the multi-tenant, white-label IP-PBX built on the\nICTCore framework by [ICT Innovations](https://ictinnovations.com).\n\nIt lets an AI assistant read your PBX state — extensions, DID numbers, SIP trunk\nproviders, tenants and live statistics — over the ICTCore REST API. It is\n**read-only**: it never places a call or changes configuration.\n\n## Install\n\n```bash\nnpx -y ictpbx-mcp      # no install\nnpm install -g ictpbx-mcp\n```\n\nRequires Node.js 18 or newer.\n\n## Configure\n\n| Variable | Required | Default | |\n|----------|----------|---------|--|\n| `ICTPBX_BASE_URL` | yes | | ICTCore REST base, normally ending in `/api`, e.g. `https://your-ictpbx/api` |\n| `ICTPBX_USERNAME` | yes | | API account email (ICTCore logs in by email) |\n| `ICTPBX_PASSWORD` | yes | | Password for that account |\n| `ICTPBX_TIMEOUT_MS` | no | `30000` | Per-request timeout |\n| `ICTPBX_TLS_INSECURE` | no | `false` | Skip TLS verification — self-signed test servers only |\n\n### Claude Desktop example\n\n```json\n{\n  \"mcpServers\": {\n    \"ictpbx\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ictpbx-mcp\"],\n      \"env\": {\n        \"ICTPBX_BASE_URL\": \"https://your-ictpbx/api\",\n        \"ICTPBX_USERNAME\": \"admin@example.com\",\n        \"ICTPBX_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | What it does |\n|------|--------------|\n| `ictpbx_pbx_statistics` | Counts of extensions, devices, ring groups, queues, IVRs, voicemails, conferences, gateways |\n| `ictpbx_list_extensions` | SIP extensions with username, name, tenant |\n| `ictpbx_list_dids` | DID (inbound) numbers, active state and tenant |\n| `ictpbx_list_providers` | SIP trunk providers (upstream carriers) |\n| `ictpbx_list_tenants` | Tenants (customer organizations) on the PBX |\n\n## How it connects\n\nICTPBX runs on ICTCore, which authenticates with a JWT from `POST /authenticate`\n(login by email) and reads it back from the `Authorization: Bearer` header. The\nserver fetches the token on first use and refreshes it automatically.\n\n## About\n\nBuilt by Tahir Almas at [ICT Innovations](https://ictinnovations.com) — the team\nbehind ICTPBX, ICTContact, ICTDialer, ICTFax and the ICTCore framework these\nproducts share. Learn more at [ictpbx.com](https://ictpbx.com).\n\nMIT licensed. Issues and PRs welcome at\n[github.com/ictinnovations/ictpbx-mcp](https://github.com/ictinnovations/ictpbx-mcp).\n",
  "bytes": 2463,
  "sha": "24ecd0a7bba956aa6fe094d0e7960dece3239c34dac56949c92e16329211e802",
  "repo_slug": "ictinnovations/ictpbx-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ictinnovations_ictpbx_mcp_274f79f8/readme"
}