Skip to main content
Glama
danielsuguimoto

crisp-mcp-server

crisp-mcp-server

An Model Context Protocol server for the Crisp REST API, deployed on Cloudflare Workers.

It exposes Crisp websites, operators, and conversations as MCP tools so an MCP-compatible AI agent can query them, post private notes, and manage conversation segments.

Tools

Tool

Tier

Description

get_website

both

Get a single website (workspace).

list_connect_websites

plugin

List all websites connected to the plugin token.

get_connect_account

plugin

Get the authenticated plugin account.

list_website_operators

both

List operators of a website.

list_last_active_website_operators

both

List last active operators of a website.

get_website_operator

both

Get a single operator of a website.

list_conversations

both

List conversations of a website (paginated, filterable).

get_conversation

both

Get a single conversation.

get_conversation_messages

both

Get messages of a conversation.

send_conversation_note

both

Post a private note (operator-only, not visible to visitor).

set_conversation_segments

both

Replace the segments assigned to a conversation.

Related MCP server: neon-mcp

Authentication

The server is stateless and credential-free: it does not store any Crisp token. Each MCP client passes the Crisp token directly to the endpoint.

The Crisp REST API uses Basic auth with a keypair token_id:token_key. Base64-encode the string token_id:token_key and pass it as a Bearer token to the MCP endpoint:

Authorization: Bearer <base64(token_id:token_key)>

The worker forwards that value as Authorization: Basic <base64(...)> to the Crisp API.

Tier

Crisp tokens are either website (single workspace) or plugin (multi-workspace). Select the tier with the tier query parameter:

  • ?tier=website (default) — sets X-Crisp-Tier: website

  • ?tier=plugin — sets X-Crisp-Tier: plugin

Generate tokens from the Crisp app: Settings → Workspace Settings → Advanced configuration → API Token (website), or the Crisp Marketplace (plugin).

Develop

npm install
npm run dev      # local dev at http://localhost:8787
npm run typecheck

Deploy

npm run deploy

Then point an MCP client at https://<your-worker>.workers.dev/mcp?tier=website with the Authorization: Bearer <base64(...)> header.

Claude Desktop / Claude Code example

{
  "mcpServers": {
    "crisp": {
      "url": "https://<your-worker>.workers.dev/mcp?tier=website",
      "headers": {
        "Authorization": "Bearer <base64(token_id:token_key)>"
      }
    }
  }
}

How it works

  • src/index.ts — Worker entry. Extracts the Bearer token and tier from the request, builds a fresh MCP server per request, and hands it to createMcpHandler (stateless Streamable HTTP transport).

  • src/crisp.ts — Thin read-only Crisp REST client (https://api.crisp.chat/v1).

  • src/tools.ts — Registers the MCP tools above.

Notes

  • Read-mostly: only private notes and conversation segments are writable; all other tools are read-only.

  • Stateless: no Durable Objects, no sessions, no stored credentials.

  • The Crisp token is sent by the client on every connection; rotate it from the Crisp app if leaked.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Lightweight MCP server that allows agents to interface with the Neon REST API, deployed on Cloudflare Workers.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to read, write, and search security findings, engagement memory, and semantic triage via MCP tools on Cloudflare Workers.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI tools to interact with a Firefly III personal finance instance via MCP protocol, deployed on Cloudflare Workers for low-latency global access.
    6 npm
    ISC