EvoHub DocsEvoHub Docs Sign in

Catalog API

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"
    }
  }
}

Version 1.0 OpenAPI 3.1.0

Read and describe EvoHub Catalog from scripts and CI: declare services with their owner, tier and links, read what agents and cloud accounts found running, decide the match queue, read drift, the service map and each service's SLA report, manage tiers, environments and cloud accounts, and export the inventory for an audit.

Authentication. Every endpoint takes an EvoHub API key, sent as Authorization: Bearer evohub_… or as X-API-Key: evohub_…. Each operation names the scopes the key needs in its description and in x-evohub-permission; where two are listed, the key needs both. A missing or invalid key gets 401; a valid key without the scope gets 403, never 401. A key is held to its scopes even when it was created by an administrator. See the API overview, API keys and scopes and Errors.

Responses. A successful answer carries its result in data. A list that pages also carries pagination: next_cursor (null on the last page), has_more and, on some lists' first page, total. Pass next_cursor back as cursor for the next page; limit is 20 by default and at most 100. Errors carry an error object with a machine-readable code. Timestamps are RFC 3339 in UTC. Request bodies are strict: a field the endpoint does not know is refused with INVALID_BODY rather than ignored.

Declared and observed. Services, tiers, responsibilities and environments are what people declare. Resources, applications, images, changes and the map are what agents and cloud accounts observed; they are read-only here, except deciding which service a resource or application belongs to.

Agents. The routes under /api/v1/catalog/ingest/ are called by the EvoHub agent only, signed with the agent's own key. API keys cannot call them, and they are not part of this reference.

Servers

  • https://evohub.io

Authentication

  • bearerKey HTTP Bearer
    An EvoHub API key (evohub_…) as a bearer token.
  • headerKey API key in the header X-API-Key
    An EvoHub API key (evohub_…).

Services

What your teams declared, its responsibilities and its SLA report.

Matches

Which service a resource or an application belongs to.

GET/api/v1/catalog/matchesList match proposals
POST/api/v1/catalog/matches/{id}/acceptAccept a proposal
POST/api/v1/catalog/matches/{id}/rejectReject a proposal
POST/api/v1/catalog/resources/{id}/componentPut a resource in a service
POST/api/v1/catalog/applications/{id}/componentPut an application in a service

Resources

What agents and cloud accounts observed, its history and its changes.

GET/api/v1/catalog/resourcesList resources
GET/api/v1/catalog/resources/{id}Get a resource
GET/api/v1/catalog/resources/{id}/changesList a resource's changes
GET/api/v1/catalog/resources/{id}/changes/{change}/diffGet what a change changed
GET/api/v1/catalog/changesList recent changes
GET/api/v1/catalog/imagesList container images

Applications

Resources grouped the way they run together, the namespaces and the service map.

GET/api/v1/catalog/applicationsList applications
GET/api/v1/catalog/applications/{id}Get an application
GET/api/v1/catalog/applications/{id}/graphGet an application's graph
GET/api/v1/catalog/namespacesList namespaces
GET/api/v1/catalog/mapGet the service map

Drift

Where what was declared and what runs disagree.

Tiers

The organization's tiers and the SLA targets they promise.

Environments

The places things run, declared by people.

GET/api/v1/catalog/environmentsList environments
POST/api/v1/catalog/environmentsCreate an environment
GET/api/v1/catalog/environments/{id}Get an environment
DELETE/api/v1/catalog/environments/{id}Delete an environment
PATCH/api/v1/catalog/environments/{id}Change an environment

Sources

Where observations come from — agents and cloud accounts.

GET/api/v1/catalog/sourcesList sources
GET/api/v1/catalog/sources/{id}Get a source
PATCH/api/v1/catalog/sources/{id}Rename, pause or resume a source

Cloud accounts

AWS, Azure, GCP and portvMind accounts the catalog reads itself.

GET/api/v1/catalog/connections/setupGet what a connection needs
GET/api/v1/catalog/connectionsList cloud accounts
POST/api/v1/catalog/connectionsConnect a cloud account
GET/api/v1/catalog/connections/{id}Get a cloud account
DELETE/api/v1/catalog/connections/{id}Disconnect a cloud account
PATCH/api/v1/catalog/connections/{id}Change a cloud account
POST/api/v1/catalog/connections/{id}/pausePause a cloud account
POST/api/v1/catalog/connections/{id}/resumeResume a cloud account
POST/api/v1/catalog/connections/{id}/checkCheck a cloud account
GET/api/v1/catalog/connections/{id}/templateDownload the AWS role template
GET/api/v1/catalog/connections/{id}/architectureGet an account's architecture

Export

The inventory, for an audit.

GET/api/v1/catalog/exports/inventoryExport the inventory