MCP Server

MCP Server

Tindra ships a built-in Model Context Protocol server. Connect any MCP-compatible AI client — Claude Desktop, Cursor, Windsurf, and others — and query issues, transactions, monitors, logs, and releases, or make changes, without leaving the tool you're already in.

Endpoint

POST https://your-hostname.tindra.sh/mcp

The server uses Streamable HTTP transport with JSON-RPC 2.0 framing.

Authentication

Pass an API token as a Bearer header:

Authorization: Bearer tindra_your_token_here

Bearer tokens are project-scoped. All read queries return data for that project only.

You can also authenticate with a session cookie if you're building a browser-based integration, but tokens are the right choice for AI clients.

See API Tokens for how to create one.

Read vs write access

Most MCP tools are read-only and work with any valid token.

Three tools perform mutations: update_issue, bulk_update_issues, and create_alert_rule. These require a writable token. When creating a token, check Allow write access to enable mutations. Read-only tokens get a 403 from any write tool.

Connecting Claude Desktop

Add an entry to your Claude Desktop config file. On macOS it lives at ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tindra": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-hostname.tindra.sh/mcp",
        "--header",
        "Authorization:Bearer tindra_your_token_here"
      ]
    }
  }
}

Replace your-hostname.tindra.sh with your instance URL. For Tindra Managed, your hostname is yourname.tindra.sh.

Connecting Claude Code

Add the same entry to ~/.claude/settings.json under mcpServers:

{
  "mcpServers": {
    "tindra": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-hostname.tindra.sh/mcp",
        "--header",
        "Authorization:Bearer tindra_your_token_here"
      ]
    }
  }
}

Restart Claude Code after saving for the server to register.

Connecting Cursor

In Cursor, go to Settings > MCP and add a new server:

  • Name: Tindra
  • Transport: HTTP
  • URL: https://your-hostname.tindra.sh/mcp
  • Auth header: Authorization: Bearer tindra_your_token_here

Available tools

Read tools

Tool What it returns
get_overview Health summary: open issue count, error rate, monitor states, recent alert activity
list_issues Issues with event counts, filterable by status, level, and search text
get_issue Full issue detail with top stack frames
list_transactions Transaction summaries sorted by P95 latency
get_transaction Full span waterfall for a single transaction
list_span_summaries Aggregated span data (DB, cache, job spans) across all transactions
list_monitors Cron monitors with current state (ok, missed, error)
get_monitor Single monitor with check-in history
list_releases Releases with new and regressed issue counts
list_alerts Alert rules with channels and last-fired time
list_issue_events Recent occurrences (events) for a specific issue
get_logs Structured log search, filterable by level, environment, and trace ID

Write tools

Write tools require a writable token.

Tool What it does
update_issue Change an issue's status (resolve, ignore, re-open) or assignee
bulk_update_issues Apply a status change to multiple issues at once
create_alert_rule Create a new alert rule with conditions and notification channel

Listing available tools via curl

curl -X POST https://your-hostname.tindra.sh/mcp \
  -H "Authorization: Bearer tindra_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Self-hosted instances

The MCP server is built into the Tindra binary and enabled by default. No extra configuration is needed. The endpoint is available at POST /mcp on whatever port Tindra is listening on.