Skip to content
Documentation menu

Connect AI apps (MCP)

The Model Context Protocol (MCP) lets AI apps such as Claude Code, Cursor and VS Code read your conversations and, if you allow it, reply to them.

What it is

ZebChat runs an MCP server. Once an AI app is connected, you can ask it things like “who is waiting longest?” and it works through the same permissions as your account. Any MCP client that supports HTTP servers with a header works.

Create an MCP key

  1. Open Settings → API keys → Use with AI apps.
  2. Choose Create MCP key, name it after the app, and pick the scopes you want to allow.
  3. Copy the key (zck_…). It is shown once.

The server URL is https://api.zebchat.com/api/v1/mcp.

Connect your app

Claude Code

Shell
claude mcp add --transport http zebchat https://api.zebchat.com/api/v1/mcp \
  --header "Authorization: Bearer zck_…"

Cursor

JSON
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "zebchat": {
      "url": "https://api.zebchat.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer zck_…" }
    }
  }
}

VS Code

VS Code asks for the key when the server starts, so it never sits in the file.

JSON
// .vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "zebchat-api-key",
      "description": "ZebChat MCP key",
      "password": true
    }
  ],
  "servers": {
    "zebchat": {
      "type": "http",
      "url": "https://api.zebchat.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer ${input:zebchat-api-key}" }
    }
  }
}

Claude Desktop

Claude Desktop connects through mcp-remote. Add this to its configuration:

JSON
{
  "mcpServers": {
    "zebchat": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.zebchat.com/api/v1/mcp", "--header", "Authorization:${ZEBCHAT_AUTH}"],
      "env": { "ZEBCHAT_AUTH": "Bearer zck_…" }
    }
  }
}

Tools

The app only sees the tools allowed by the key’s scopes and your role. Results are compact and paged, and never include signed file links or secrets.

ScopeToolWhat it does
conversations:readlist_conversationsList conversations, filtered by status, assignee, team, tag, visitor or date
get_conversationA conversation’s details and its latest messages
search_messagesFull-text search across messages, internal notes included
list_agentsMembers who answer chats, with status and open chats
list_tagsYour tags
conversations:replysend_replyReply to a visitor, or add an internal note
set_statusOpen, resolve or close a conversation, or set its priority
assign_conversationAssign a conversation to yourself, someone else, or nobody
tag_conversationAdd or remove existing tags
list_saved_repliesYour saved replies
visitors:readlist_visitors_onlineVisitors online now and the busiest pages
get_visitorA visitor’s profile, latest visit, stats and recent conversations
contacts:readsearch_contactsFind contacts by name, email, phone or company
get_contactA contact’s details, notes, tags, lists and conversations
knowledge:readsearch_knowledgeSearch your knowledge base for passages that answer a question
reports:readget_report_summaryTotals for a period, optionally day by day, and live counts

Example prompts

  • “Summarize my open chats and tell me which to answer first.”
  • “Search our knowledge base and draft a reply to the refund question in conv_…”
  • “Which pages are visitors on right now?”
  • “How many chats did we resolve each day this week?”

Safety

  • A key acts as the member who created it, with your role and the key’s scopes: the smaller of the two applies. Give read-only keys to apps that only need to look.
  • Revoke a key in Settings → API keys at any time. It stops working at once.
  • Actions are labelled “via MCP · key name” in the audit log and next to sent messages, so your team can see what the AI did.
  • Text written by visitors is passed to the AI app as untrusted data, and the server asks the app to confirm before replying, closing or reassigning.