crisp-mcp-server
v1.0.0
Published
MCP server for Crisp live chat — search conversations, read messages, look up contacts
Downloads
13
Maintainers
Readme
Crisp MCP Server
An MCP (Model Context Protocol) server that exposes Crisp live chat data as tools for Claude and other MCP clients. Search conversations, read chat transcripts, look up contacts — all from your AI assistant.
Prerequisites
You need a Crisp Plugin token to authenticate with the Crisp API.
- Go to Crisp Marketplace → New Plugin (or use an existing one)
- Copy the Plugin Identifier and Plugin Key
- Required token scopes:
website:conversation:read,website:people:read
You also need your Website ID — find it in your Crisp dashboard URL: app.crisp.chat/website/<website_id>/
Installation
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"crisp": {
"command": "npx",
"args": ["-y", "crisp-mcp-server"],
"env": {
"CRISP_IDENTIFIER": "your-plugin-identifier",
"CRISP_KEY": "your-plugin-key",
"CRISP_WEBSITE_ID": "your-website-id"
}
}
}
}Claude Code
claude mcp add crisp -- npx -y crisp-mcp-serverThen set the environment variables CRISP_IDENTIFIER, CRISP_KEY, and CRISP_WEBSITE_ID.
Available Tools
| Tool | Description |
|------|-------------|
| search_conversations | Search conversations by query (merchant name, topic, error message). Supports status and date filters. |
| list_conversations | List recent conversations with optional filters (resolved/unresolved, unread, date range). |
| get_conversation | Get full details of a conversation — visitor info, tags, assignment, status. |
| get_messages | Read the chat transcript for a conversation. Supports pagination for long histories. |
| get_conversation_routing | See which operator is assigned to a conversation. |
| get_conversation_meta | Get visitor metadata — nickname, email, device, location, segments. |
| list_people | List or search contact profiles — email, name, company info. |
| list_websites | List configured websites with IDs and labels (only when multiple websites are configured). |
Multiple Websites
If you have more than one Crisp website, pass them comma-separated with optional labels:
{
"CRISP_WEBSITE_ID": "abc123:App One,def456:App Two"
}When multiple websites are configured:
- A
list_websitestool becomes available so the LLM can see which websites exist - Every tool accepts an optional
website_idparameter - If
website_idis omitted, the first website is used as the default
Labels are shown to the LLM in tool descriptions, so use recognizable names.
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| CRISP_IDENTIFIER | Yes | Plugin token identifier |
| CRISP_KEY | Yes | Plugin token key |
| CRISP_WEBSITE_ID | Yes | Website ID(s) — single ID, or comma-separated id:label pairs for multiple websites |
Development
npm install
npm run build # Compile TypeScript
npm run dev # Watch mode
npm start # Run the serverTest with the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsLicense
MIT
