Back to the catalog

io.github.ictinnovations/ictcrm-mcp

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

Open source Open in the app JSON README (API)

About

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

Details

Kind
MCP servers
Topic
Productivity
Publisher
ictinnovations
Origin
official
Category
ferramentas
Transport
local
Version
0.1.0
Stars
1
Forks
2
Last push
2026-09-07T19:34:21Z
Repository state
ativo
Language
TypeScript
License
MIT
Added
2026-09-01 11:00:06
Updated
2026-09-01 11:00:06
Origin id
io.github.ictinnovations/ictcrm-mcp

README

# ictcrm-mcp

A [Model Context Protocol](https://modelcontextprotocol.io) server for
**[ICTCRM](https://ictcrm.com)** from [ICT Innovations](https://ictinnovations.com).

`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

```bash
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

```json
{
  "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](https://ictinnovations.com) — the team
behind ICTCRM, ICTContact, ICTDialer, ICTBroadcast, ICTFax and ICTPBX. Learn more at
[ictcrm.com](https://ictcrm.com).

MIT licensed. Issues and PRs welcome at
[github.com/ictinnovations/ictcrm-mcp](https://github.com/ictinnovations/ictcrm-mcp).

More