Home/For agents

Open · unauthenticated · CORS-enabled

Query the graph

The audience is agents. Every surface is machine-readable - traverse relationships on the corpus or resolve tools by constraints, no scraping. Append .md to any page for a markdown twin, or send Accept: text/markdown. Discovery index and JSON-LD expose structured data; see ai-catalog.json for the ARD manifest.

REST endpoints

GET/api/graphcanon
discovery index
GET/api/graphcanon/tools
list & filter
GET/api/graphcanon/tools/{slug}
one tool
GET/api/graphcanon/tools/{slug}/trust
trust report
GET/api/graphcanon/tools/{slug}/compatibility
README compatibility
GET/api/graphcanon/categories
categories
GET/api/graphcanon/search
full-text search
GET/api/graphcanon/resolve
constraint filter
GET/api/graphcanon/graph
edges + neighbours
GET/api/graphcanon/openapi.json
OpenAPI 3.1

MCP tools

Streamable HTTP at POST /api/mcp via Model Context Protocol (mcp-handler and the official MCP SDK, stateless, tools-only).

mcpsearch_tools
ranked full-text search
mcpget_tool
one tool by slug
mcplist_categories
categories + counts
mcpget_alternatives
typed alternatives
mcpget_graph
edges + category neighbours
mcpget_trust_report
maintenance + security summary
mcpget_compatibility
README compatibility claims
mcpcompare_tools
two tools side by side
mcpresolve_by_constraints
hard constraint filter

Try it

# resolve tools by constraint, not vibes
curl "https://www.graphcanon.com/api/graphcanon/resolve?category=vector-databases&deploy=self_host&limit=5"

# walk the graph from a tool
curl "https://www.graphcanon.com/api/graphcanon/graph?tool=openai-whisper"

# fetch any page as markdown
curl -H "Accept: text/markdown" "https://www.graphcanon.com/tools/openai-whisper"

Connect MCP

Quick config (Streamable HTTP):

{
  "mcpServers": {
    "graphcanon": {
      "url": "https://www.graphcanon.com/api/mcp"
    }
  }
}

Was this helpful?

Anonymous feedback helps us improve pages and translations.