Skip to content

mcp/

Me keeps this legacy host configuration outside Realm execution. Use the captured handler migration for Me Realms.

MCP server configurations — each file lists Model Context Protocol servers to connect.

Prefer apis/ (a vendored OpenAPI spec) over an MCP server whenever the integration is API-backed. A vendored spec gives the LLM full typed request/response shapes instead of MCP’s flat tool descriptions, needs no Docker, starts instantly, and is testable without a container. Every realm the product ships has migrated this way (Maps, arXiv, Wikipedia, Brave, YouTube). Reach for mcp/ only when there is no API to vendor — e.g. a server that wraps a local binary or a stateful protocol — or when the user explicitly brings their own MCP server.

mcp/example.yml
- name: example-server
description: "What the server's tools do, written for the LLM"
command: docker
args: ["run", "-i", "--rm", "example/example-mcp:latest"]
env:
EXAMPLE_API_KEY: "${EXAMPLE_API_KEY}"

MCP servers are lazy-loaded — the Docker container starts on first tool use, not on world init. A mutable or credential-bearing MCP instance is keyed by (worldId, contextId, realmDigest, principalId, access-policy revision, grant/credential revision) and is never shared across contexts, principals, or worlds. A worldEpoch change destroys the instance or fences it from all later calls. Only an immutable, credential-free server proven to hold no caller-derived state may use a deployment-wide cache. Existing credential-fingerprint or config-only sharing is not a shared-tenancy boundary.