MCP registry
Coding agents connect to whichever MCP server they are told to. The MCP registry lets a project publish MCP server manifests as versioned artifacts and approve only the servers, versions and tools it wants agents to see.
Publish a manifest
Create a repository with format mcp, then POST a JSON manifest:
bash
curl -u any:orbr_TOKEN -X POST \
-H 'Content-Type: application/json' \
https://registry.example.com/mcp/PROJECT/REPO/ -d '{
"name": "fs.server", "version": "1.0.0",
"transport": "stdio", "command": "npx", "args": ["-y", "fs.server"],
"tools": [{"name": "read_file", "description": "Read a file"}]
}'transport is stdio (needs command) or http/sse (needs an http(s) url). image and package are optional references.
Read paths
| Path | Returns |
|---|---|
GET /mcp/PROJECT/REPO/ | servers with their newest approved version |
GET /mcp/PROJECT/REPO/{name} | approved versions |
GET /mcp/PROJECT/REPO/{name}/{version} | manifest with the allowed tools only |
GET /mcp/PROJECT/REPO/{name}/{version}/download | the manifest file (filtered if a tool policy applies) |
Approval and per-tool rights
Approval is opt-in per project. Turn enforcement on with the admin API (org admin only); from then on nothing is visible until approved:
bash
P=/api/admin/mcp-policy/PROJECT_ID
curl -H 'Authorization: Bearer orbr_ADMIN' -X PUT $P -d '{"enforce":true}'
curl -H 'Authorization: Bearer orbr_ADMIN' -X PUT $P/servers -d '{
"name":"fs.server","version":"1.0.0","decision":"approved",
"denied_tools":["delete_file"]}'- An empty
versionapplies to every version of the server; a version-specific row wins over it. allowed_toolsrestricts to a list (omit for all tools);denied_toolsalways wins overallowed_tools.- A server or version that is not approved is hidden from listings and answers
403on direct access, including download. - Every change writes an audit event (
mcp.policy.*).
For agents
The orbital MCP server exposes list_mcp_servers and get_mcp_server, which show only approved servers with their filtered tool lists. The project UI page /repos/:id/mcp shows the same status.