# ictcontact-mcp

This MCP server lets Claude Code inspect ICTContact and ICTDialer campaigns, with optional controls for starting and stopping outbound calling.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 16
- Author: ictinnovations
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/ictinnovations/ictcontact-mcp
- Updated: 2026-09-07
- HTML: https://affpapa.org/en/nevibecode/mcp/ictcontact-mcp

## What it does

ictcontact-mcp connects an AI assistant to outbound campaigns in ICTContact and ICTDialer. It can enumerate campaigns, read whether one is running, show totals for answered and failed calls, and inspect individual call results such as contact, response, AMD, and DNC data.

Read access is available by default. Start and stop tools are exposed only when `ICTCONTACT_MCP_ALLOW_WRITE=true`; starting a campaign triggers live outbound calls and may incur real charges. Setup requires Node.js 18 or newer, the server URL without the `/rest` suffix, an API username, and its password. Requests use the service’s form-encoded RPC API, so no separate token is provisioned.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `ICTCONTACT_BASE_URL`, `ICTCONTACT_USERNAME`, `ICTCONTACT_PASSWORD`, `ICTCONTACT_MCP_ALLOW_WRITE`, `ICTCONTACT_TIMEOUT_MS`, `ICTCONTACT_TLS_INSECURE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env ICTCONTACT_BASE_URL=<ICTCONTACT_BASE_URL> --env ICTCONTACT_USERNAME=<ICTCONTACT_USERNAME> --env ICTCONTACT_PASSWORD=<ICTCONTACT_PASSWORD> --env ICTCONTACT_MCP_ALLOW_WRITE=<ICTCONTACT_MCP_ALLOW_WRITE> --env ICTCONTACT_TIMEOUT_MS=<ICTCONTACT_TIMEOUT_MS> --transport stdio ictcontact-mcp -- npx -y ictcontact-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Codex

**Platform CLI**
```bash
codex mcp add ictcontact-mcp --env ICTCONTACT_BASE_URL=<ICTCONTACT_BASE_URL> --env ICTCONTACT_USERNAME=<ICTCONTACT_USERNAME> --env ICTCONTACT_PASSWORD=<ICTCONTACT_PASSWORD> --env ICTCONTACT_MCP_ALLOW_WRITE=<ICTCONTACT_MCP_ALLOW_WRITE> --env ICTCONTACT_TIMEOUT_MS=<ICTCONTACT_TIMEOUT_MS> -- npx -y ictcontact-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ictcontact-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "ictcontact-mcp"
            ],
            "env": {
                "ICTCONTACT_BASE_URL": "<ICTCONTACT_BASE_URL>",
                "ICTCONTACT_USERNAME": "<ICTCONTACT_USERNAME>",
                "ICTCONTACT_PASSWORD": "<ICTCONTACT_PASSWORD>",
                "ICTCONTACT_MCP_ALLOW_WRITE": "<ICTCONTACT_MCP_ALLOW_WRITE>",
                "ICTCONTACT_TIMEOUT_MS": "<ICTCONTACT_TIMEOUT_MS>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "ictcontact-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "ictcontact-mcp"
            ],
            "env": {
                "ICTCONTACT_BASE_URL": "<ICTCONTACT_BASE_URL>",
                "ICTCONTACT_USERNAME": "<ICTCONTACT_USERNAME>",
                "ICTCONTACT_PASSWORD": "<ICTCONTACT_PASSWORD>",
                "ICTCONTACT_MCP_ALLOW_WRITE": "<ICTCONTACT_MCP_ALLOW_WRITE>",
                "ICTCONTACT_TIMEOUT_MS": "<ICTCONTACT_TIMEOUT_MS>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ICTCONTACT_BASE_URL=<ICTCONTACT_BASE_URL> -e ICTCONTACT_USERNAME=<ICTCONTACT_USERNAME> -e ICTCONTACT_PASSWORD=<ICTCONTACT_PASSWORD> -e ICTCONTACT_MCP_ALLOW_WRITE=<ICTCONTACT_MCP_ALLOW_WRITE> -e ICTCONTACT_TIMEOUT_MS=<ICTCONTACT_TIMEOUT_MS> ictcontact-mcp npx -y ictcontact-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- list outbound campaigns
- check whether a campaign is running
- review answered and failed call totals
- inspect per-call outcomes
- stop an active campaign

## Example prompts
- List the ICTContact campaigns and show their current status.
- Summarize this campaign’s answered, failed, human, and machine results.
- After checking the status, start campaign `<campaign_id>`.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
