Skip to content

REST API

Logan Besecker edited this page Oct 1, 2026 · 2 revisions

REST API

Base: https://ai.mcpharbor.dev/api/v0. Shaped like the official MCP Registry's API, so code written for one reads the other.

List and search

GET /api/v0/servers
Parameter Meaning
q (or search) Matches names, titles, descriptions, tags and tool names
transport stdio, streamable-http or sse
tag One tag. The website no longer browses by tag, but the API still filters by it.
limit Page size, default 30, at most 100
offset Where to start

One server

GET /api/v0/servers/<name>

<name> is the full reverse-DNS name, slash included — io.github.upstash/context7. Returns the listing's server.json and its review status.

Submit

POST /api/v0/servers
Content-Type: application/json

{ ...a server.json... }

Without a token the listing is created pending and waits for review. With Authorization: Bearer <REGISTRY_PUBLISH_TOKEN> it is published immediately. Each client may submit 10 per hour. See Publishing a Server.

Review (maintainers)

POST /api/v0/review
Authorization: Bearer <REGISTRY_PUBLISH_TOKEN>

{ "name": "io.github.acme/weather", "decision": "approve" }

decision is approve or reject. Locally, mix mcp.approve <name> does the same.

Errors

Unknown paths under /api answer 404 with a JSON body. They never redirect: an API client that follows a redirect into an HTML page gets a confusing parse error instead of a clear miss. Browser paths, by contrast, 301 to the home page.

Clone this wiki locally