Automation

MCP server

CatchLoop speaks the Model Context Protocol, so an AI agent can read your board and act on it from the editor you already work in. The server is hosted: there is nothing to install.

Connecting

The workspace key is on the Integration page of your dashboard, under MCP server. Export it as CATCHLOOP_API_KEY, then add the server to your client. VS Code asks for the key instead and keeps it in its own secret storage.

Claude Codeshell
claude mcp add --transport http catchloop https://mcp.catchloop.co \
  --header "Authorization: Bearer $CATCHLOOP_API_KEY"
Cursor · .cursor/mcp.jsonjson
{
  "mcpServers": {
    "catchloop": {
      "url": "https://mcp.catchloop.co",
      "headers": {
        "Authorization": "Bearer ${env:CATCHLOOP_API_KEY}"
      }
    }
  }
}
VS Code · .vscode/mcp.jsonjson
{
  "inputs": [
    {
      "type": "promptString",
      "id": "catchloop-api-key",
      "description": "CatchLoop workspace API key",
      "password": true
    }
  ],
  "servers": {
    "catchloop": {
      "type": "http",
      "url": "https://mcp.catchloop.co",
      "headers": {
        "Authorization": "Bearer ${input:catchloop-api-key}"
      }
    }
  }
}
Devin Desktop (Windsurf) · ~/.config/devin/mcp_config.jsonjson
{
  "mcpServers": {
    "catchloop": {
      "serverUrl": "https://mcp.catchloop.co",
      "headers": {
        "Authorization": "Bearer ${env:CATCHLOOP_API_KEY}"
      }
    }
  }
}
claude.ai and Claude Desktop

Their custom connectors sign in with OAuth, which CatchLoop does not offer yet. If your organization has Anthropic's request headers beta, add a custom connector with the server URL, choose No sign-in, and add an authorization header whose value is Bearer, a space, then your key.

Security

Read the key from the environment, never inline it in a file you commit. It is a workspace credential: anything an agent can do with it, anyone holding it can do.

Tools

ToolWhat it does
list_requestsfreeThe most-wanted requests, ranked by account votes. This is the one that answers "what should we build next". status narrows it to one or several of the five statuses (the tool lists their values), and limit sets how many come back, 1 to 100, 20 by default.
create_requestfreeOne request onto your board, from a support ticket or a sales call.
import_requestsfreeUp to fifty requests in one call, with their past votes, date and status. See import.
set_request_statusfreeMoves a request to another status. Emails nobody: the people who asked hear once, when a changelog entry linking it is published.

Every call is scoped to the workspace the key belongs to, so an agent cannot reach another team's data. The connection carries no session cookie.

Reading the numbers

Each request comes back with its votes in two parts: the votes of your customers' accounts, and the votes you imported from another tool. Your portal shows their sum. list_requests ranks by account votes, because only an account is a person who can be emailed when the request ships. See customer accounts for how an account is made.