Back to Directory/Developer Tools

io.github.ictinnovations/ictcrm-mcp

Read CRM contact groups and manage contacts on ICTCRM (ICTContact backend).

Developer ToolsTypeScriptv0.1.0

ictcrm-mcp

A Model Context Protocol server for ICTCRM from ICT Innovations.

ictcrm.com runs on the ICTContact backend, so this server speaks that RPC surface. It lets an AI assistant read contact groups and — only when you turn writes on — create and delete contacts and add a contact to a campaign.

Install

npx -y ictcrm-mcp      # no install
npm install -g ictcrm-mcp

Requires Node.js 18 or newer.

Configure

VariableRequiredDefault
ICTCRM_BASE_URLyesServer base URL, without the /rest suffix, e.g. https://your-ictcrm
ICTCRM_USERNAMEyesAPI account username
ICTCRM_PASSWORDyesPassword for that account
ICTCRM_MCP_ALLOW_WRITEnofalseUnlock the contact write tools (see Safety)
ICTCRM_TIMEOUT_MSno30000Per-request timeout
ICTCRM_TLS_INSECUREnofalseSkip TLS verification — self-signed test servers only

Claude Desktop example

{
  "mcpServers": {
    "ictcrm": {
      "command": "npx",
      "args": ["-y", "ictcrm-mcp"],
      "env": {
        "ICTCRM_BASE_URL": "https://your-ictcrm",
        "ICTCRM_USERNAME": "admin",
        "ICTCRM_PASSWORD": "your-password"
      }
    }
  }
}

Tools

Read tools are always available:

ToolWhat it does
ictcrm_list_contact_groupsList contact groups (id, name, description)

Write tools appear only when ICTCRM_MCP_ALLOW_WRITE=true:

ToolWhat it does
ictcrm_create_contactCreate a contact in a group; returns the contact id
ictcrm_delete_contactDelete a contact by id
ictcrm_add_contact_to_campaignCreate a contact and attach it to a campaign

Safety

The server is read-only by default. Creating and deleting contacts only becomes possible when you set ICTCRM_MCP_ALLOW_WRITE=true.

A note on listing contacts

The ICTContact backend that ICTCRM runs on exposes contact groups and contact creation/deletion, but its "list contacts" method errors server-side, so this server does not offer a contact-listing tool. It manages contacts and reads contact groups; listing individual contacts is not available over the API today.

How it connects

Calls go to a form-encoded RPC API at {base}/rest/<Method>, each carrying the account username and password. There is no separate token to provision.

About

Built by Tahir Almas at ICT Innovations — the team behind ICTCRM, ICTContact, ICTDialer, ICTBroadcast, ICTFax and ICTPBX. Learn more at ictcrm.com.

MIT licensed. Issues and PRs welcome at github.com/ictinnovations/ictcrm-mcp.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y ictcrm-mcp

Set up in your AI client

Merge 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.

json
{
  "mcpServers": {
    "io-github-ictinnovations-ictcrm-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ictcrm-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 reference

Package

ictcrm-mcpnpm

Compatible MCP Clients

io.github.ictinnovations/ictcrm-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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More