{
  "markdown": "# ictcrm-mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for\n**[ICTCRM](https://ictcrm.com)** from [ICT Innovations](https://ictinnovations.com).\n\n`ictcrm.com` runs on the ICTContact backend, so this server speaks that RPC surface.\nIt lets an AI assistant read contact groups and — only when you turn writes on —\ncreate and delete contacts and add a contact to a campaign.\n\n## Install\n\n```bash\nnpx -y ictcrm-mcp      # no install\nnpm install -g ictcrm-mcp\n```\n\nRequires Node.js 18 or newer.\n\n## Configure\n\n| Variable | Required | Default | |\n|----------|----------|---------|--|\n| `ICTCRM_BASE_URL` | yes | | Server base URL, without the `/rest` suffix, e.g. `https://your-ictcrm` |\n| `ICTCRM_USERNAME` | yes | | API account username |\n| `ICTCRM_PASSWORD` | yes | | Password for that account |\n| `ICTCRM_MCP_ALLOW_WRITE` | no | `false` | Unlock the contact write tools (see Safety) |\n| `ICTCRM_TIMEOUT_MS` | no | `30000` | Per-request timeout |\n| `ICTCRM_TLS_INSECURE` | no | `false` | Skip TLS verification — self-signed test servers only |\n\n### Claude Desktop example\n\n```json\n{\n  \"mcpServers\": {\n    \"ictcrm\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ictcrm-mcp\"],\n      \"env\": {\n        \"ICTCRM_BASE_URL\": \"https://your-ictcrm\",\n        \"ICTCRM_USERNAME\": \"admin\",\n        \"ICTCRM_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\nRead tools are always available:\n\n| Tool | What it does |\n|------|--------------|\n| `ictcrm_list_contact_groups` | List contact groups (id, name, description) |\n\nWrite tools appear only when `ICTCRM_MCP_ALLOW_WRITE=true`:\n\n| Tool | What it does |\n|------|--------------|\n| `ictcrm_create_contact` | Create a contact in a group; returns the contact id |\n| `ictcrm_delete_contact` | Delete a contact by id |\n| `ictcrm_add_contact_to_campaign` | Create a contact and attach it to a campaign |\n\n## Safety\n\nThe server is **read-only by default**. Creating and deleting contacts only becomes\npossible when you set `ICTCRM_MCP_ALLOW_WRITE=true`.\n\n## A note on listing contacts\n\nThe ICTContact backend that ICTCRM runs on exposes contact groups and contact\ncreation/deletion, but its \"list contacts\" method errors server-side, so this server\ndoes not offer a contact-listing tool. It manages contacts and reads contact groups;\nlisting individual contacts is not available over the API today.\n\n## How it connects\n\nCalls go to a form-encoded RPC API at `{base}/rest/<Method>`, each carrying the\naccount username and password. There is no separate token to provision.\n\n## About\n\nBuilt by Tahir Almas at [ICT Innovations](https://ictinnovations.com) — the team\nbehind ICTCRM, ICTContact, ICTDialer, ICTBroadcast, ICTFax and ICTPBX. Learn more at\n[ictcrm.com](https://ictcrm.com).\n\nMIT licensed. Issues and PRs welcome at\n[github.com/ictinnovations/ictcrm-mcp](https://github.com/ictinnovations/ictcrm-mcp).\n",
  "bytes": 2873,
  "sha": "f61ac92fbb98cde694806e0ebc01a543d7179d18d28fc5b62ab1cb38f3ac6ff5",
  "repo_slug": "ictinnovations/ictcrm-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ictinnovations_ictcrm_mcp_34f09656/readme"
}