MCP Server
Dooor OS ships an official Model Context Protocol (MCP) server that exposes the entire platform API as tools. This lets AI assistants like Claude Code deploy apps, manage databases, configure agents, and monitor infrastructure through natural language.
Build the server
The MCP server lives in the Dooor OS monorepo. Clone it, build it once, then point your AI client at the resulting dist/index.js.
git clone https://github.com/Dooor-AI/dooor-os.git
cd dooor-os/dooor-os-mcp
npm install
npm run buildTake note of the absolute path to dooor-os/dooor-os-mcp/dist/index.js. You will paste it into your AI client config below.
Claude Code setup
Use the claude mcp add CLI:
claude mcp add dooor-os \
-e DOOOR_API_KEY=dor_sk_your_key_here \
-- node /absolute/path/to/dooor-os/dooor-os-mcp/dist/index.jsOr add it to .mcp.json at the root of your project:
{
"mcpServers": {
"dooor-os": {
"command": "node",
"args": ["/absolute/path/to/dooor-os/dooor-os-mcp/dist/index.js"],
"env": {
"DOOOR_API_KEY": "dor_sk_your_key_here"
}
}
}
}Restart Claude Code and run /mcp - dooor-os should appear in the list.
Codex CLI setup
Codex reads MCP servers from ~/.codex/config.toml. Add a server block pointing at the same dist/index.js:
# ~/.codex/config.toml
[mcp_servers.dooor-os]
command = "node"
args = ["/absolute/path/to/dooor-os/dooor-os-mcp/dist/index.js"]
env = { DOOOR_API_KEY = "dor_sk_your_key_here" }Reopen Codex - the Dooor OS tools will be available alongside any other MCP servers you already use.
DOOOR_WORKSPACE_ID is not required. For self-hosted Dooor OS, also set DOOOR_BASE_URL in env.Environment Variables
| Variable | Required | Description |
|---|---|---|
| DOOOR_API_KEY | required | Your workspace API key (dor_sk_...) |
| DOOOR_BASE_URL | optional | API base URL (default: https://os-develop.dooor.ai/api/v1). Set for self-hosted instances. |
Recommended Scopes
For a deploy automation agent that creates apps, reads Git metadata, sets env vars, triggers deploys, and checks health/logs, start with:
apps:read
apps:write
deploy:read
deploy:write
env-vars:read
env-vars:write
git:read
monitoring:readAdd databases:read and databases:write only if the agent also provisions managed databases. Add agent scopes only for agent lifecycle or chat operations.
Available Tools
The MCP server exposes 42 tools covering the entire Dooor OS API. Here are the main categories:
Apps
list_apps- List apps with filterscreate_app- Create app from Git repoget_app- Get app detailsupdate_app- Update app configdelete_app- Delete an appget_app_stats- Workspace app statisticsget_pipeline_state- Full pipeline status
Deploy
deploy_app- Trigger deploymentlist_deployments- Deployment historyget_build_logs- Build outputget_runtime_status- K8s pod statusscale_app- Scale replicas (0=stop)rollback_deploy- Rollback to versionset_traffic- Traffic split or promote, depending on runtime
Git
list_git_installations- Connected GitHub orgslist_repos- Available repositorieslist_branches- Branch list
Env Vars
list_env_vars- List variablesset_env_vars- Bulk set variablessync_env_vars- Push to runtime
Databases
create_database- Provision PostgreSQL/MySQL/Redisget_database_connection- Get credentialsget_database_status- Runtime status
Agents
create_agent- Create AI agentdeploy_agent- Deploy to K8schat_with_agent- Send messagestop_agent / restart_agent- Lifecycle
Monitoring
get_app_health- Health statusget_app_metrics- CPU/memory/latencyget_app_logs- Application logsget_workspace_overview- Dashboard statslist_alerts- Active alerts
Usage Examples
Once configured, you can interact with Dooor OS naturally in Claude Code:
> "Deploy my-api from the staging branch"
Claude Code calls deploy_app with appId and gitBranch, then monitors the build with get_build_logs.
> "Create a PostgreSQL database for the auth service"
Creates the database with create_database, then retrieves connection info with get_database_connection and sets it as an env var with set_env_vars.
> "What's the health of all my apps?"
Calls get_workspace_overview for a summary, then get_app_health for any degraded apps, and shows the results.
> "Scale the web-frontend to 3 replicas and promote the previous revision back to 100%"
Uses scale_app and set_traffic. Weighted splits are supported on Cloud Run; the current K8s runtime only supports one active 100% revision.
> "Create a support agent using the support template and deploy it"
Calls list_agent_templates to find the template, then create_agent and deploy_agent in sequence.