HTTP API

Static JSON endpoints with open CORS. Two-step discovery: load the index, then fetch individual tool details.

Endpoints

All endpoints serve Access-Control-Allow-Origin: * and return JSON with Cache-Control: public, s-maxage=3600.

/api/catalog-index.jsonFull catalog index with all tools
/api/tools/{slug}.jsonIndividual tool detail

Discovery pattern

1.

Load the catalog index

Lightweight index with all tools, descriptions, categories, and capabilities. Small enough for a single context window (~7,500 tokens).

GET /api/catalog-index.json
2.

Fetch tool detail

Full metadata including help output, auth configuration, flags, and agent notes.

GET /api/tools/{slug}.json

Catalog index schema

Each entry in the tools array has the following fields.

slugstringURL-safe identifier
namestringHuman-readable name
binarystringExecutable command
descriptionstringOne-line description
companystringCompany name
categoriesstring[]Category tags
capabilitiesstring[]Controlled vocabulary
supports_jsonbooleanJSON output support

Tool detail schema

Key fields in the full tool JSON. See the data model page for the complete reference.

help_outputRaw help text (root + groups)
authAuth methods, env vars, setup command
output_formatsJSON support flag and default format
global_flagsFlags available on all commands
installInstallation methods (brew, npm, pip, etc.)
capabilitiesCapability vocabulary tags

Example

Discovering tools for container orchestration:

// Load the catalog index const index = await fetch("/api/catalog-index.json").then(r => r.json()); // Find tools for container orchestration const matches = index.tools.filter(t => t.capabilities.includes("container-orchestration") ); // -> [{ slug: "kubectl", ... }, { slug: "docker", ... }]