# ictcrm-mcp [Health: Active]

**Category:** 👤 Customer Data Platforms  
**Repository:** https://github.com/ictinnovations/ictcrm-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 298  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ictcrm-mcp

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

## Tools
Capabilities this server exposes over MCP:

- **ictcrm_list_contact_groups** — List contact groups (id, name, description)
- **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

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "ictcrm-mcp": {
    "command": "npx",
    "args": ["-y","ictcrm-mcp"],
    "env": {
      "ICTCRM_BASE_URL": "",
      "ICTCRM_USERNAME": "",
      "ICTCRM_PASSWORD": ""
    }
  }
}
```

**Requires environment variables:** `ICTCRM_BASE_URL`, `ICTCRM_USERNAME`, `ICTCRM_PASSWORD` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What ictcrm-mcp does

ictcrm-mcp exposes selected ICTCRM operations through the Model Context Protocol. Because ICTCRM runs on the ICTContact backend, requests use that platform's RPC interface rather than a separate ICTCRM-specific API surface.

The server always provides `ictcrm_list_contact_groups`, which returns contact-group IDs, names, and descriptions. It can also expose three write operations: creating a contact in a group, deleting a contact by ID, and creating a contact while attaching it to a campaign.

Individual contact listing is not available. The backend's contact-list method returns a server-side error, so the MCP toolset focuses on group lookup and contact management instead of contact search or browsing.

## How it works

Requests are sent to `{base}/rest/<Method>` as form-encoded RPC calls. Each call includes the configured ICTCRM account username and password. Authentication therefore uses the account credentials directly; there is no separate token-provisioning step.

The server is read-only by default. `ictcrm_list_contact_groups` remains available without enabling writes, while the create, delete, and campaign tools are only registered when `ICTCRM_MCP_ALLOW_WRITE=true`. This provides a configuration-level safeguard against accidental contact changes.

## Setup and configuration

Node.js 18 or newer is required. The package can be run without a local installation through `npx -y ictcrm-mcp`, or installed globally with `npm install -g ictcrm-mcp`.

Set these required variables before starting the server:

- `ICTCRM_BASE_URL`: ICTCRM server address without the `/rest` suffix, such as `https://your-ictcrm`.
- `ICTCRM_USERNAME`: API account username.
- `ICTCRM_PASSWORD`: Password for the account.

Optional settings control write access and request behavior:

- `ICTCRM_MCP_ALLOW_WRITE`: Set to `true` to expose contact-writing tools; defaults to `false`.
- `ICTCRM_TIMEOUT_MS`: Per-request timeout in milliseconds; defaults to `30000`.
- `ICTCRM_TLS_INSECURE`: Set to `true` to bypass TLS certificate verification. This is intended for self-signed test servers.

For Claude Desktop, add an MCP server entry that runs `npx` with `-y ictcrm-mcp`, then provide the ICTCRM variables in the entry's `env` object. Leave write access unset or false when the assistant should only read contact groups.

## Tools and capabilities

- `ictcrm_list_contact_groups` reads available contact groups and returns each group's ID, name, and description.
- `ictcrm_create_contact` creates a contact within a selected group and returns the new contact ID. It is available only with writes enabled.
- `ictcrm_delete_contact` removes a contact by ID. It is available only with writes enabled.
- `ictcrm_add_contact_to_campaign` creates a contact and associates it with a campaign. It is available only with writes enabled.

## Limitations and notes

The toolset cannot list individual contacts because the underlying ICTContact method fails server-side. Contact creation and deletion are potentially destructive operations and remain disabled unless `ICTCRM_MCP_ALLOW_WRITE=true` is configured. TLS verification should only be bypassed for suitable self-signed test environments. The server uses the permissions and access available to the configured ICTCRM account.

_Full upstream README: https://allmcps.com/mcp/ictcrm-mcp/readme_

