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 detailDiscovery 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.
| slug | string | URL-safe identifier |
| name | string | Human-readable name |
| binary | string | Executable command |
| description | string | One-line description |
| company | string | Company name |
| categories | string[] | Category tags |
| capabilities | string[] | Controlled vocabulary |
| supports_json | boolean | JSON output support |
Tool detail schema
Key fields in the full tool JSON. See the data model page for the complete reference.
| help_output | Raw help text (root + groups) |
| auth | Auth methods, env vars, setup command |
| output_formats | JSON support flag and default format |
| global_flags | Flags available on all commands |
| install | Installation methods (brew, npm, pip, etc.) |
| capabilities | Capability 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", ... }]