API — Endpoints#
Base URL defaults to http://localhost:7300
.
GET /health
#
Query params
- check_db
(bool, optional): also checks DB connectivity.
Response
{ "status": "ok", "db": "ok" }
GET /catalog/search
#
Hybrid search with filters.
Params
q
(required): text querytype
:agent
|tool
|mcp_server
capabilities
,frameworks
,providers
(CSV)mode
:keyword
|semantic
|hybrid
limit
: default20
with_rag
:true
to include a short fit explanation
200 Response (truncated)
{
"items": [
{
"id": "agent:pdf-summarizer@1.4.2",
"type": "agent",
"name": "PDF Summarizer",
"version": "1.4.2",
"summary": "...",
"capabilities": ["pdf", "summarize"],
"frameworks": ["langgraph"],
"providers": ["watsonx"],
"score_lexical": 0.8,
"score_semantic": 0.7,
"score_final": 0.79,
"fit_reason": "Matches 'summarize pdfs'..."
}
],
"total": 1
}
GET /catalog/entities/{id}
#
Return full metadata for an entity (resolved from the ingested manifests).
Example
GET /catalog/entities/agent:pdf-summarizer@1.4.2
POST /catalog/install
#
Execute an install plan.
Body
{
"id": "agent:pdf-summarizer@1.4.2",
"target": "./apps/pdf-bot"
}
200 Response (truncated)
{
"plan": { "artifacts": [...], "adapters": [...], "mcp_registration": {...} },
"results": [
{"step":"pypi","ok":true, "elapsed_secs": 5.9},
{"step":"adapters.write","ok":true,"extra":{"count":1}},
{"step":"gateway.register","ok":true,"extra":{"tool":{"id":"..."}}}
],
"files_written": ["apps/pdf-bot/src/flows/pdf_summarizer_node.py","apps/pdf-bot/matrix.lock.json"],
"lockfile": { "version": 1, "entities": [ ... ] }
}
GET /catalog/remotes
/ POST /catalog/remotes
#
List or add remote catalogs (index.json
URLs).
Admin-only if API_TOKEN
is set.
POST /catalog/ingest?remote=<name>
#
Manually trigger ingestion for a configured remote.
Admin-only if API_TOKEN
is set.
Optional: GET /gateway/{kind}
#
Convenience read-only view into the MCP Gateway registrations (if enabled in your build).