Developers

MCP server

Point an AI agent at your project. Sign in as yourself, or use a project API key for automations.

Overview

The Glimpze MCP server lets an AI agent work with your project the way a teammate would: read what visitors said, look someone up, check who is online, pull the week's numbers, and, if you allow it, reply and mark conversations handled. It works with Claude, Claude Code, Cursor, and any other client that speaks the Model Context Protocol over HTTP.

Endpoint: https://api.glimpze.io/functions/v1/mcp

There are two ways to connect. Most people should sign in. Automations and shared connectors use an API key.

Connect by signing in

Give your agent the endpoint and nothing else. When it first connects, Glimpze opens a sign-in page that shows which app is asking, and you approve or deny. The agent then acts as you, on the projects you belong to.

claude.ai. Open Settings, then Connectors, and add a custom connector. Paste the endpoint, leave the authentication fields empty, and click Connect. Approve on the Glimpze page that opens.

Claude Code. Register the server, then run /mcp to sign in.

claude mcp add --transport http glimpze https://api.glimpze.io/functions/v1/mcp

Cursor. Add this to ~/.cursor/mcp.json and click Connect.

{
  "mcpServers": {
    "glimpze": { "url": "https://api.glimpze.io/functions/v1/mcp" }
  }
}

You can see which apps are connected as you, and disconnect them, under Integrations > AI agents (MCP) in the Glimpze app.

Connect with an API key

Use a key for automations, or for one connector shared by a whole team. A key is tied to one project and its scopes, and everyone using it gets the same access. Create one under Settings > API keys (account owner only). Start with the read-only preset.

claude mcp add --transport http glimpze https://api.glimpze.io/functions/v1/mcp \
  --header "Authorization: Bearer glz_live_..."
{
  "mcpServers": {
    "glimpze": {
      "url": "https://api.glimpze.io/functions/v1/mcp",
      "headers": { "Authorization": "Bearer glz_live_..." }
    }
  }
}

In claude.ai, add the endpoint as a custom connector with the header Authorization: Bearer glz_live_.... An admin enters the key once and every member uses it.

From your own code, over plain HTTP. The Accept header is required:

curl https://api.glimpze.io/functions/v1/mcp \
  -H "Authorization: Bearer glz_live_..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

What an agent can do

Each tool takes a request object whose first field picks the action:

{
  "name": "conversations",
  "arguments": {
    "request": { "query": "list", "handled": "false", "limit": 20 }
  }
}
ToolAccessWhat it does
conversationsreadList conversations, read one, read its messages.
conversations_writewritesSend a message the visitor sees, mark a conversation handled or reopen it.
visitorsreadList visitors, read a profile with UTM and custom fields, read a visitor's activity timeline.
visitors_writewritesUpdate a visitor's name and email, add an internal note the visitor never sees.
callsreadCall history for a window, one call with its duration and agent, recording metadata.
analyticsreadThe same rollup the Analytics page shows, for any window up to 92 days.
availabilityreadWhether a human is online right now.
projectsreadThe projects you belong to, with their ids. Signed-in sessions only.
glimpze_inforeadHow to get started, what the scopes mean, what the limits are. Needs no scope.

With an API key, a tool appears only if the key has a scope for it. When signed in, every tool takes a projectId; use projects to find the ids.

Things the agent needs to know

The server tells the agent these too. They are here so you know what to expect.

Writes are immediate. A message reaches the visitor the moment the tool is called, and there is no undo. Use a read-only key if you do not want that.

Only some messages are speech. Every message has a kind, and only utterance is something a person or the AI said. The rest are system events.

Handled, not resolved. A conversation's status is always open. Whether the work is done is handledAt, and that is what mark_handled sets.

Limits. 600 requests per minute per key, 120 of them writes. Lists stop at 200 items. Results over about 64 KB come back flagged as truncated.

Disconnecting

For a signed-in connection, open Integrations > AI agents (MCP) and revoke the app. For an API key, revoke the key under Settings > API keys, which stops it on the MCP server and the REST API.