MCP server
Connect ExtraOrbital to Claude, ChatGPT, Cursor or any MCP client, remotely with OAuth or locally over stdio.
AI/LLM: this page is available in plain markdown at /docs/mcp.md
ExtraOrbital is an MCP server two ways. Pick by where the agent runs:
| Where the agent runs | Use | Signs in with |
|---|---|---|
| On your machine (Claude Code, Codex, Cursor, Windsurf, Gemini CLI, VS Code…) | npx -y extraorbital mcp over stdio | This machine's identity, like the CLI: nothing to sign in to |
| In a chat app (Claude, ChatGPT, Le Chat, Perplexity, Grok…) | https://extraorbital.dev/mcp | OAuth: you sign in once and choose what it may do |
| Your own code or CI | https://extraorbital.dev/mcp | An eo_live_ API key as a bearer token |
Tools
The tools are the same capabilities the Agent Auth protocol and the REST API expose, from one implementation:
| Tool | What it does |
|---|---|
list_services | What can be provisioned, its options, allowances and prices |
whoami · list_teams · list_projects | Who you are, your teams, their projects and spend |
create_project | A project inside a team |
provision_resource | A database, cache, bucket, queue, index or key. Idempotent: the same service and slug return the same resource |
list_resources · get_resource · verify_resource | What exists, its metadata and spend, and whether it still answers |
read_credentials | A resource's environment variables |
deprovision_resource | Remove a resource |
read_ledger · summarize_ledger | Charges, grouped any way you like |
search · fetch | These docs, from inside the conversation |
The local server adds two that need your project folder:
| Tool | What it does |
|---|---|
provision_project | What provision does: scan the folder, provision what is missing, write .env. Credential values go to the file, never into the conversation |
generate_secret | What add SESSION_SECRET does: a secret generated offline, written to .env |
Every tool is annotated (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), so a
client can run read-only ones without asking and confirm the rest.
Local: coding agents
claude mcp add --transport stdio extraorbital -- npx -y extraorbital mcpcodex mcp add extraorbital -- npx -y extraorbital mcp{
"mcpServers": {
"extraorbital": { "command": "npx", "args": ["-y", "extraorbital", "mcp"] }
}
}VS Code's .vscode/mcp.json names the key servers rather than mcpServers. A machine that has
never run ExtraOrbital registers itself on first use and works in a sandbox of its own until a
human links it.
Remote: chat apps
Add https://extraorbital.dev/mcp as a custom connector. The app sends you to sign in, then to a
consent screen where you can untick provisioning or credentials; reading is always granted.
| App | Where |
|---|---|
| Claude, Claude Desktop | Settings → Connectors → Add custom connector (Team and Enterprise: an owner adds it under Organization settings → Connectors) |
| Claude Code (remote) | claude mcp add --transport http extraorbital https://extraorbital.dev/mcp, then /mcp to sign in |
| ChatGPT | Developer mode, then add a custom MCP server. Write tools need a plan that allows them; elsewhere ChatGPT uses search and fetch |
| Codex (remote) | codex mcp add extraorbital --url https://extraorbital.dev/mcp, then codex mcp login extraorbital |
| Le Chat (Mistral) | Connectors → Add connector → Custom MCP connector |
| Perplexity | Settings → Connectors → Custom connector → Remote |
| Grok | grok.com/connectors → New connector → Custom |
| Manus | Settings → Integrations → Custom MCP servers, with an API key as a bearer header |
| OpenAI, xAI and Z.ai APIs | The mcp tool type with server_url https://extraorbital.dev/mcp and an eo_live_ key as the authorization |
Menus move; if one has, look for "custom connector" or "MCP server" in the app's settings.
With a key instead of OAuth
Any client that can set a header can skip sign-in:
claude mcp add --transport http extraorbital https://extraorbital.dev/mcp \
--header "Authorization: Bearer $EXTRAORBITAL_API_KEY"A key scoped to one team or project limits the connection to it.
How sign-in works
For client authors: an unauthenticated request gets 401 with
WWW-Authenticate: Bearer resource_metadata="https://extraorbital.dev/.well-known/oauth-protected-resource/mcp".
From there:
- Protected resource metadata (RFC 9728) names the authorization server and the scopes
eo:read,eo:provisionandeo:credentials. - Authorization server metadata (RFC 8414) is at
/.well-known/oauth-authorization-server/api/auth. - Clients register with a Client ID Metadata Document
or dynamically (RFC 7591); PKCE
S256is required. - Tokens are issued for the
https://extraorbital.dev/mcpresource only (RFC 8707), and every other endpoint refuses them. Loopback redirects match any port.
Listed in
The server is described for the MCP Registry as
dev.extraorbital/extraorbital, with both the remote and the npm package.
Next
- Agent skills — teach an agent to reach for ExtraOrbital on its own
- Quickstart — the same thing from a terminal