דלג לתוכן הראשי

Install the MCP server

The server runs on your machine and uses your own token. There is no shared account and no bundled key.

Step 1: get an API token

  1. Sign in to app.cig.chat.
  2. Open the bot you want to connect.
  3. Go to Settings → API and copy the token.
One token controls exactly one bot. It can read your subscriber list and send messages on your behalf — treat it like a password, never share it and never commit it. If it leaks, issue a new one from the same screen.

Step 2: add the server

Claude Code

claude mcp add cigchat \
  --env CIGCHAT_API_TOKEN=your-token-here \
  -- npx -y @cig-chat/mcp

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cigchat": {
      "command": "npx",
      "args": ["-y", "@cig-chat/mcp"],
      "env": { "CIGCHAT_API_TOKEN": "your-token-here" }
    }
  }
}

Cursor

~/.cursor/mcp.json

Exactly the same shape as Claude Desktop.

Step 3: verify

Run in a terminal:

CIGCHAT_API_TOKEN=your-token-here npx -y @cig-chat/mcp --check

Then ask your assistant: "which cig.chat bot am I connected to?"

Configuration

VariableDefaultWhat it does
CIGCHAT_API_TOKENRequired. Your bot token.
CIGCHAT_TOOLSETSallall, dynamic, or a comma-separated list of toolsets.
CIGCHAT_ALLOWallWhich risk tiers to expose: read,write,send,broadcast,destructive.
CIGCHAT_DRY_RUNfalsetrue makes every write a no-op that echoes the request.
CIGCHAT_MAX_BROADCAST_RECIPIENTS0Refuse broadcasts above this audience size. 0 = no cap.
CIGCHAT_RPS5Client-side request rate limit.

Starting safely

For a first run, add CIGCHAT_DRY_RUN=true. Every write reports exactly what it would have sent without sending anything. Reads keep working normally.

Troubleshooting

SymptomCause
401 / token rejectedToken is wrong, revoked, or belongs to a different bot. Reissue under Settings → API.
A tool is missingIts toolset or risk tier is disabled. Run the cigchat_list_toolsets tool.
429 rate limitedLower CIGCHAT_RPS. Sends are never retried automatically — check whether the message went out before re-running.
422 field is requiredAn array parameter needs objects, not strings: [{"tag_ns":"f1t1"}].
Broadcast returns requires_confirmationWorking as designed. Show the audience estimate to a human, then re-call with the returned token.

Support and sales

בואו נתחיל