About ictcrm-mcp
ictcrm-mcp is an MCP server for accessing ICTCRM contact groups and managing contacts through the ICTContact RPC API. It is read-only by default; contact changes require an explicit write setting.
Key features
- 01List contact groups
- 02Create and delete contacts with writes enabled
- 03Add contacts to campaigns
- 04Read-only by default
Use cases
- 01Inspect contact groups in ICTCRM
- 02Create or remove contacts when writes are enabled
- 03Create a contact and attach it to a campaign
MCP support
Exposes ICTCRM contact-group lookup and, when `ICTCRM_MCP_ALLOW_WRITE=true`, contact creation, deletion, and campaign assignment as tools for MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y ictcrm-mcpICTCRM_BASE_URLBase URL of your ICTCRM server, without the /rest suffix, e.g. https://your-ictcontact.ICTCRM_USERNAMEAPI account username.ICTCRM_PASSWORDSecretPassword for the account.ICTCRM_MCP_ALLOW_WRITEUnlocks starting and stopping campaigns, which begins live outbound calling and can cost money. When false those tools are not registered at all. Leave off unless you mean it.ICTCRM_TIMEOUT_MSPer request timeout in milliseconds. Defaults to 30000.ICTCRM_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
1Saved tool list · updated 3d ago
This tool takes no parameters.
Details
From the project READMEictcrm-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
| Variable | Required | Default | |
|---|---|---|---|
ICTCRM_BASE_URL | yes | Server base URL, without the /rest suffix, e.g. https://your-ictcrm | |
ICTCRM_USERNAME | yes | API account username | |
ICTCRM_PASSWORD | yes | Password for that account | |
ICTCRM_MCP_ALLOW_WRITE | no | false | Unlock the contact write tools (see Safety) |
ICTCRM_TIMEOUT_MS | no | 30000 | Per-request timeout |
ICTCRM_TLS_INSECURE | no | false | Skip 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:
| Tool | What it does |
|---|---|
ictcrm_list_contact_groups | List contact groups (id, name, description) |
Write tools appear only when ICTCRM_MCP_ALLOW_WRITE=true:
| Tool | What it does |
|---|---|
ictcrm_create_contact | Create a contact in a group; returns the contact id |
ictcrm_delete_contact | Delete a contact by id |
ictcrm_add_contact_to_campaign | Create 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.
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.