# ictdialer-mcp

Connects your AI agent to the ICTDialer auto-dialer platform. Lets you monitor active outbound calling campaigns, inspect call summaries, and trigger runs.

- 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/ictdialer-mcp
- Updated: 2026-09-07
- HTML: https://affpapa.org/en/nevibecode/mcp/ictdialer-mcp

## What it does

This server hooks an AI client into the form-encoded RPC API behind ICTDialer and ICTContact. Once connected, your assistant inspects outbound lists, checks whether a campaign is running or paused, and inspects per-contact outcomes like machine detection and do-not-call flags.

Setup requires Node.js 18 or higher, plus the dialer endpoint, username, and password. The integration stays read-only out of the box. Mutating actions will not register until you explicitly toggle `ICTDIALER_MCP_ALLOW_WRITE=true`, preventing unexpected telecom charges during testing.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `ICTDIALER_BASE_URL`, `ICTDIALER_USERNAME`, `ICTDIALER_PASSWORD`, `ICTDIALER_MCP_ALLOW_WRITE`, `ICTDIALER_TIMEOUT_MS`, `ICTDIALER_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 ICTDIALER_BASE_URL=<ICTDIALER_BASE_URL> --env ICTDIALER_USERNAME=<ICTDIALER_USERNAME> --env ICTDIALER_PASSWORD=<ICTDIALER_PASSWORD> --env ICTDIALER_MCP_ALLOW_WRITE=<ICTDIALER_MCP_ALLOW_WRITE> --env ICTDIALER_TIMEOUT_MS=<ICTDIALER_TIMEOUT_MS> --transport stdio ictdialer-mcp -- npx -y ictdialer-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Codex

**Platform CLI**
```bash
codex mcp add ictdialer-mcp --env ICTDIALER_BASE_URL=<ICTDIALER_BASE_URL> --env ICTDIALER_USERNAME=<ICTDIALER_USERNAME> --env ICTDIALER_PASSWORD=<ICTDIALER_PASSWORD> --env ICTDIALER_MCP_ALLOW_WRITE=<ICTDIALER_MCP_ALLOW_WRITE> --env ICTDIALER_TIMEOUT_MS=<ICTDIALER_TIMEOUT_MS> -- npx -y ictdialer-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ictdialer-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "ictdialer-mcp"
            ],
            "env": {
                "ICTDIALER_BASE_URL": "<ICTDIALER_BASE_URL>",
                "ICTDIALER_USERNAME": "<ICTDIALER_USERNAME>",
                "ICTDIALER_PASSWORD": "<ICTDIALER_PASSWORD>",
                "ICTDIALER_MCP_ALLOW_WRITE": "<ICTDIALER_MCP_ALLOW_WRITE>",
                "ICTDIALER_TIMEOUT_MS": "<ICTDIALER_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": {
        "ictdialer-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "ictdialer-mcp"
            ],
            "env": {
                "ICTDIALER_BASE_URL": "<ICTDIALER_BASE_URL>",
                "ICTDIALER_USERNAME": "<ICTDIALER_USERNAME>",
                "ICTDIALER_PASSWORD": "<ICTDIALER_PASSWORD>",
                "ICTDIALER_MCP_ALLOW_WRITE": "<ICTDIALER_MCP_ALLOW_WRITE>",
                "ICTDIALER_TIMEOUT_MS": "<ICTDIALER_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 ICTDIALER_BASE_URL=<ICTDIALER_BASE_URL> -e ICTDIALER_USERNAME=<ICTDIALER_USERNAME> -e ICTDIALER_PASSWORD=<ICTDIALER_PASSWORD> -e ICTDIALER_MCP_ALLOW_WRITE=<ICTDIALER_MCP_ALLOW_WRITE> -e ICTDIALER_TIMEOUT_MS=<ICTDIALER_TIMEOUT_MS> ictdialer-mcp npx -y ictdialer-mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- inspect live progress and status of active phone campaigns
- break down call statistics between answered lines and answering machines
- start or cancel outbound calling jobs directly from the editor
- verify per-contact responses against do-not-call entries

## Example prompts
- Check the current status of campaign 104 and summarize connection rates.
- Retrieve per-call logs for campaign 42, showing answering machine detections.
- Start campaign 12 once the write permission flag is confirmed.

## Similar
- [JustCall MCP Server](https://affpapa.org/en/nevibecode/mcp/justcall-mcp-server.md) — MCP server · ★ 25
- [phone-calls](https://affpapa.org/en/nevibecode/skills/phone-calls.md) — skill · 380 installs
- [create-call](https://affpapa.org/en/nevibecode/skills/create-call.md) — skill · 1000 installs
- [create-phone-number](https://affpapa.org/en/nevibecode/skills/create-phone-number.md) — skill · 941 installs
- [AgentPhone](https://affpapa.org/en/nevibecode/mcp/agentphone.md) — MCP server · ★ 124
- [apple-ads](https://affpapa.org/en/nevibecode/mcp/apple-ads.md) — MCP server · ★ 7

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