Docs

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

ToolParamsDescription
list_collectionsList accessible collections with entry counts
get_entriescollection, status?, locale?, limit?, offset?List entries in a collection
get_entrycollection, slug, locale?Fetch a single entry with full body
search_contentcollection?, 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

VariableDescription
ORBITER_PODPath to the .pod file (auto-detected if a single *.pod file sits in the current directory)
PORTHTTP port (default 4500, only used with --http)
ORBITER_NO_TELEMETRY=1Disable the anonymous startup ping