Skip to main content
The gateway serves an MCP endpoint at /v1/mcp. Its tools read your factory’s sessions, costs, pull request outcomes, work items, runners and findings. One tool, stop_build, asks a runner to stop a build. The others change nothing.

Tools

The default Agent key lacks metrics.read, so the cost and trend tools refuse it with 403. Use a key with the Reader preset, or add metrics.read to yours. See API keys. Without sessions.read_team, list_sessions hides who ran each session and refuses a filter by person. Dates are UTC calendar dates. The server’s one resource, a data model guide, explains the fields. A session with no stored price adds nothing to cost or totalCost. It is counted in unpricedSessions instead, so a total with a nonzero count is a lower bound.

Install into a repository

outerlayer init adds the entry for you. Its entry runs npx -y @outerlayer/cli mcp serve, so it works for everyone who clones the repository, with no global install. See where init puts it. To add it yourself, run:
This writes an outerlayer entry into .mcp.json in the current directory, or into .outerlayer/mcp.json when that file exists. The entry runs outerlayer mcp serve, which reads your saved credential on each connect: a factory key, or your login once a factory is chosen. The key is never written into the file. The entry needs outerlayer on your PATH, so install the CLI with npm install -g @outerlayer/cli. For a client that cannot spawn a process:
This writes a direct entry that references ${OUTERLAYER_API_KEY}. The client resolves it from its own environment. For the server name, a CLI that is not on PATH, or a self-hosted gateway, see every mcp install flag.

Chat clients

claude.ai and ChatGPT custom connectors take a URL and sign in over OAuth. Use the factory’s own MCP address, with the Factory Id from Settings → General:
Add the connector in the client and sign in to the dashboard when prompted. The connector acts with your own permissions. To see the connectors you approved, or to revoke one, open Profile → Connections → Connected apps in the dashboard and choose Disconnect. The connector can no longer get new access. Also remove it in the client. A token the connector already holds keeps working for up to an hour after you revoke it.