Dooor Os
FreeNot checkedExposes Dooor OS workspace capabilities to MCP-compatible AI clients, enabling natural language querying of data sources, app and deployment inspection, agent a
About
Exposes Dooor OS workspace capabilities to MCP-compatible AI clients, enabling natural language querying of data sources, app and deployment inspection, agent and database management, and governance trace reading.
README
Model Context Protocol (MCP) server for the Dooor OS platform. Exposes the workspace's apps, deploys, git, databases, agents, monitoring and connected business data as MCP tools so an MCP client (Claude Code, Claude Desktop, etc.) can operate the platform on your behalf.
Every tool is scoped to a single workspace, resolved from the API key you
provide. All data_* and lake_* tools are read-only.
Tool families
Start with capabilities when connecting a new client. It returns the active
workspace, API key scopes, tool families and optional read-only probes for the
connected data sources.
capabilities: workspace whoami, scopes, family map and source probes.- Platform tools: apps, deploys, git repos, env vars, databases, agents and monitoring.
data_products: discover which data products and capabilities are enabled for the active workspace.data_*: business questions over connected operational sources such as field service, finance, issues and client records. Usedata_askfirst for most natural-language questions.data_connections,data_connection_capabilitiesanddata_connection_read: discover and read allowlisted entities from live operational connections through the Dooor read-only proxy.lake_*: telemetry or high-volume analytical data through curated tools, raw browse, catalog discovery and read-only SQL.lake_code_*: search or page through indexed legacy business-rule source code.
Two ways to connect
| Mode | Transport | Where the API key comes from |
|---|---|---|
| Local (default) | stdio | DOOOR_API_KEY environment variable |
| Remote (hosted) | Streamable HTTP | X-Api-Key: dor_sk_... header, per request |
You only need one. Most users run the local stdio server; the hosted server is for clients that prefer not to clone and build anything.
Local (stdio)
Clone, install, build:
git clone https://github.com/Dooor-AI/dooor-os-mcp.git
cd dooor-os-mcp
npm install
npm run build
Then register it with your MCP client, passing your workspace API key via the
DOOOR_API_KEY environment variable. Example MCP client config:
{
"mcpServers": {
"dooor-os": {
"command": "node",
"args": ["/absolute/path/to/dooor-os-mcp/dist/index.js"],
"env": {
"DOOOR_API_KEY": "dor_sk_your_key_here"
}
}
}
}
Optional env:
DOOOR_BASE_URL- override the API base URL (defaulthttps://api.os.dooor.ai/v1).
Remote (hosted) server
Instead of cloning and building, you can point your MCP client at the hosted
Dooor OS MCP endpoint and pass your workspace API key in the X-Api-Key
header. The hosted server speaks the MCP Streamable HTTP transport in
stateless mode: it reads the key from each request, so your data stays scoped
to your own workspace even though one instance serves many clients.
The key travels in
X-Api-Key(notAuthorization) because the hosted endpoint runs behind a front end that reserves theAuthorizationheader for its own auth.Authorization: Bearer dor_sk_...is also accepted by the server itself, for setups that forward that header untouched.
Claude Code:
claude mcp add --transport http dooor-os https://mcp.dooor.ai/mcp \
--header "X-Api-Key: dor_sk_your_key_here"
Claude Desktop / .mcp.json (HTTP transport):
{
"mcpServers": {
"dooor-os": {
"type": "http",
"url": "https://mcp.dooor.ai/mcp",
"headers": {
"X-Api-Key": "dor_sk_your_key_here"
}
}
}
}
Replace dor_sk_your_key_here with your workspace API key. Requests without a
valid key are rejected with 401. No cloning, building or updating: you always
get the latest tools.
Running the HTTP server yourself
npm install
npm run build
npm run start:http
The server listens on 0.0.0.0:$PORT (default 8080):
POST /mcp- one JSON-RPC request per call; key read fromX-Api-Key(orAuthorization: Bearer).GET /health- returns200 {"status":"ok"}for health checks.
GET/DELETE /mcp return 405 because the server runs in stateless mode
(no long-lived session or server-initiated SSE stream). A Dockerfile is
included for container deploys (e.g. Cloud Run); it builds and runs
dist/http.js.
Building an app with connected data
Use MCP while developing to discover what the workspace exposes. A running app
does not embed an MCP client and does not call connected systems directly. Its
backend calls the Dooor REST API with Authorization: Bearer <DOOOR_API_KEY>.
For replicated or curated data, use /data/* and /data/lake/*. For a live
operational connection, use this sequence:
GET /workspaces/{ws}/data-sourcesGET /workspaces/{ws}/data-sources/{sourceId}/capabilitiesPOST /workspaces/{ws}/data-sources/{sourceId}/operation
The operation body contains an advertised entity, operation (list or
get) and optional id, filter, cursor and maxRows. Dooor keeps source
credentials in its secret store, enforces configured fixed filters and returns
only allowlisted read data. The response is an envelope with records as the
data array, plus rowCount, truncated, optional nextCursor, columns,
queryId and durationMs. Read rows from response.records; do not assume the
top-level response is an array or use items, data or results.
Omie finance entities
Always inspect the connection capabilities first because they are the source of truth for the entities, filters and fields enabled for that connection. The finance entities have distinct purposes:
| Entity | Use it for |
|---|---|
movimento_financeiro |
Actual settlements. Use data_pagamento as the cash date and join codigo_titulo to titulo_receber.codigo_lancamento_omie or titulo_pagar.codigo_lancamento_omie. natureza is R for receivables and P for payables. |
conta_corrente |
Registered bank, cash and application accounts, including their Omie account code and metadata. |
extrato_conta_corrente |
Account statement and ready-made cash balances. Pass nCodCC, dPeriodoInicial and dPeriodoFinal; dates use DD/MM/YYYY. Its response can include current, forecast, reconciled, provisional and available balances. |
resumo_financeiro |
Omie's ready-made financial position, including account balance, accounts payable, accounts receivable and fluxoCaixa. Prefer this over deriving the current position from titles when the business question asks for Omie's own number. |
orcamento_caixa |
Omie's monthly cash budget. Filter with nAno and nMes. |
Example live statement read after discovering sourceId and its capabilities:
{
"entity": "extrato_conta_corrente",
"operation": "list",
"filter": {
"nCodCC": 123456789,
"dPeriodoInicial": "01/07/2026",
"dPeriodoFinal": "31/07/2026"
},
"maxRows": 100
}
Do not substitute due dates for data_pagamento, and do not calculate a bank
position from titles when extrato_conta_corrente or resumo_financeiro
answers the question directly.
Create a dedicated key for each deployed app with only
data-sources:read and data-sources:query, restricted to the required
dataSourceIds. Store it only in the app backend's environment. Never reuse a
person's MCP key or expose the key to browser code. Call integration_guide for
a complete TypeScript client.
Development
npm run dev # tsc --watch
Install Dooor Os in Claude Desktop, Claude Code & Cursor
unyly install dooor-os-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add dooor-os-mcp -- npx -y github:Dooor-AI/dooor-os-mcpFAQ
Is Dooor Os MCP free?
Yes, Dooor Os MCP is free — one-click install via Unyly at no cost.
Does Dooor Os need an API key?
No, Dooor Os runs without API keys or environment variables.
Is Dooor Os hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Dooor Os in Claude Desktop, Claude Code or Cursor?
Open Dooor Os on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
by wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
by madhurprashPostgres
Query your database in natural language
by AnthropicPostgreSQL
Read-only database access with schema inspection.
by modelcontextprotocolCompare Dooor Os with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
