EvoHub DocsEvoHub Docs Sign in

Link a card to something

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
POST/api/v1/board/cards/{cardID}/links

Links the card to a thing in another product, such as an incident or a monitor. service and entity_type are lowercase identifiers (letters, digits, and single -, _ or . between them, at most 100 characters); entity_id is required (at most 100); url must be http:// or https:// (at most 2,048); title is optional (at most 200).

A card holds one link per service, entity_type and entity_id: linking the same thing again updates its url and title.

Requires the board:card:write scope.

Authorization

Any one of:

Parameters

Path parameters

  • cardID string required
    The card's ID.
    Example: crd_9f2e4d6c8b0a1e3f5d7c9b1a3e5f7d90

Request body required

Content type: application/json

Type: object

  • service string required
    Max length: 100
  • entity_type string required
    Max length: 100
  • entity_id string required
    Max length: 100
  • url string (uri) required
    Max length: 2048
  • title string
    Max length: 200

Responses

201

The card is linked.

Content type: application/json

Type: object

  • data object
    • link Link
      Show Link properties
      • id string
      • card_id string
      • service string
        Example: oncall
      • entity_type string
        Example: incident
      • entity_id string
      • url string
      • title string
      • created_by string
      • created_at string (date-time)

400

The body is not JSON for this endpoint, or carries a field it does not know (INVALID_BODY), or a field breaks a rule (VALIDATION_ERROR; the message says which).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

404

It does not exist, or it is on a board the caller cannot see (NOT_FOUND).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

Example request

curl -X POST 'https://evohub.io/api/v1/board/cards/crd_9f2e4d6c8b0a1e3f5d7c9b1a3e5f7d90/links' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "url": "https://evohub.io/uptime/monitors/mon_8c1d0b52-6f3e-4a7d-9b21-0e5c4f7a3d19",
  "title": "Checkout API",
  "service": "uptime",
  "entity_id": "mon_8c1d0b52-6f3e-4a7d-9b21-0e5c4f7a3d19",
  "entity_type": "monitor"
}'