EvoHub DocsEvoHub Docs Sign in

List match proposals

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"
    }
  }
}
GET/api/v1/catalog/matches

The match queue: proposals that a resource or an application belongs to a service, strongest first. Each names its resource or application, and either an existing service (component) or a slug nobody declared yet (proposed_slug). confidence orders the queue and never accepts anything on its own.

Requires the catalog:component:read and catalog:resource:read scopes.

Authorization

Any one of:

Parameters

Query parameters

  • status string
    proposed (the default), accepted or rejected.
    One of: proposed accepted rejected
  • component_id string
    Only proposals for this service.
  • limit integer
    Page size, 20 by default, at most 100.
    Minimum: 1 · Maximum: 100
  • cursor string
    The previous page's pagination.next_cursor.

Responses

200

A page of proposals.

Content type: application/json

Type: object

  • data array of Match
    Show Match properties
    • id string
    • resource_id string | null
    • application_id string | null
    • component_id string | null
      The service proposed, when it exists.
    • proposed_slug string | null
      A slug nobody declared yet; accepting creates that service.
    • reason string
      Which rule proposed it.
    • confidence number
    • status string
      One of: proposed accepted rejected
    • decided_by string | null
    • decided_at string (date-time) | null
    • created_at string (date-time)
    • resource object | null
      • environment_id string
      • provider string
      • kind string
      • name string
      • namespace string
      • status string
    • application object | null
      • environment_id string
      • namespace string
      • name string
      • key_source string
      • owner_hint string | null
    • component object | null
      • slug string
      • display_name string
  • pagination Pagination
    Show Pagination properties
    • next_cursor string | null
    • has_more boolean
    • total integer
      How many match, on the first page of the resource and application lists.

400

The request is not valid: a field or filter value is wrong (VALIDATION_ERROR, with a sentence saying what), the body is not the expected JSON or carries an unknown field (INVALID_BODY), the cursor is not one this list gave (INVALID_CURSOR), a binding names a service that does not exist (UNKNOWN_COMPONENT), or a PATCH tries to change a slug (SLUG_IMMUTABLE).

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 a 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

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 GET 'https://evohub.io/api/v1/catalog/matches' \
  -H 'Authorization: Bearer <TOKEN>'