MCP Server
@a83/orbiter-mcp exposes a pod's content as tools for AI agents — Claude Desktop, Claude Code, or any MCP (Model Context Protocol) client — over stdio or HTTP.
Install
npm install -g @a83/orbiter-mcp
Tools
| Tool | Params | Description |
|---|---|---|
list_collections | — | List accessible collections with entry counts |
get_entries | collection, status?, locale?, limit?, offset? | List entries in a collection |
get_entry | collection, slug, locale? | Fetch a single entry with full body |
search_content | collection?, query, limit? | Substring search over title/excerpt/body |
stdio — local (Claude Desktop)
Full access to all collections and statuses. No authentication — same trust level as running orbiter-admin on your own machine.
{
"mcpServers": {
"orbiter": {
"command": "orbiter-mcp",
"env": { "ORBITER_POD": "/absolute/path/to/content.pod" }
}
}
} Add this to Claude Desktop's config file, or run directly:
ORBITER_POD=/path/to/content.pod orbiter-mcp
If exactly one .pod file exists in the current directory, ORBITER_POD can be omitted — it's auto-detected.
HTTP — remote
orbiter-mcp --http --port 4500
Carries the same restrictions as the Public Content API: requires a Bearer API key when Require API key is enabled in Settings, only exposes collections listed in Public API collections, and only ever returns status: 'published' entries. Remote MCP access is deliberately "the Public Content API as tools" — no elevated privileges over the REST endpoints.
Endpoint: POST http://host:4500/mcp. Health check: GET /health.
Why two trust levels?
stdio access assumes the caller already has filesystem access to your pod — the same assumption orbiter-admin makes when run locally. HTTP access assumes an untrusted network caller, so it's scoped exactly like the Public Content API rather than granting broader access just because it's speaking MCP instead of REST.
Env vars
| Variable | Description |
|---|---|
ORBITER_POD | Path to the .pod file (auto-detected if a single *.pod file sits in the current directory) |
PORT | HTTP port (default 4500, only used with --http) |
ORBITER_NO_TELEMETRY=1 | Disable the anonymous startup ping |