MCP
MCP Overview
Monad hosts a Model Context Protocol (MCP) server, so an AI assistant can build and operate your data pipelines directly. Instead of clicking through the UI, you describe what you want — "pull our Okta system logs into S3" — and the assistant discovers the connector types, creates the components, and wires the pipeline.
MCP is an open standard for connecting AI assistants to external systems. Monad's server is a remote, OAuth-authenticated endpoint: there is nothing to install, no API key to copy, and no local process to run.
Code
This section covers connecting a client and troubleshooting the connection. For what to actually do once connected - what the assistant can build, example requests, and the habits that get good results - see Using the MCP.
How It Works
The assistant does not get its own access to Monad. It acts as you, through a credential you approve in your browser.
- You point your client at the endpoint. Any MCP-compatible client — see the setup guides in this section.
- The client requests access. Your browser opens Monad's consent screen.
- You approve, and choose the organizations. The consent screen shows which client is asking, what it wants to do, and which of your organizations it may act on.
- The client receives a credential scoped to exactly that.
There is no separate identity provider login. The consent screen authenticates you using your existing Monad session — if you are already signed in, approving is a single click.
What the Assistant Can Do
It works across the full pipeline lifecycle - discovering connector types, building and wiring pipelines, sampling live data, checking status and logs, and managing alert rules.
For the detail, example requests and best practices, see Using the MCP.
Permissions
Two permissions are involved, and they are a ceiling, not a grant:
| Permission | Allows |
|---|---|
mcp:read | List and inspect organizations, pipelines, components, secrets metadata and alerts. Sample data and read logs. |
mcp:write | Create, update and delete those resources, and trigger pipelines. |
Both are intersected with your actual role in each organization, checked on every request. An assistant holding mcp:write still cannot modify an organization where you only have read access. See Organization RBAC for how roles map to permissions.
Losing membership in an organization revokes the assistant's access to it immediately — no action needed on your part.
Organizations
During authorization you choose which of your organizations the assistant may act on. That choice is stamped into the credential.
To change it later, revoke the client under Settings → Connected Applications and reconnect, selecting the organizations you want.
Tip: authorize against a dev or test organization first. Scoping the credential to somewhere you are willing to break lets you use an assistant freely without a mistake reaching production. See Start in a Sandbox Organization.
Managing Connected Applications
Every client you authorize appears under Settings → Connected Applications. Each row is one authorized client.
Revoking takes effect immediately. Monad's MCP server holds no signing keys of its own — it revalidates every credential against the Monad API on each request, so there is no window where a revoked client keeps working until something expires. Its next request fails, and the client will prompt you to reconnect if you use it again.
Revoke when a laptop is lost, when you stop using a client, or any time you suspect a credential is exposed. Re-authorizing later is a fresh approval, and the credentials revoked earlier stay dead permanently.
Credentials Are Never Handled in Chat
The assistant is instructed never to ask you for a password, API key, or token.
When a connector needs a credential, it creates a placeholder secret and tells you to set the real value yourself in the Monad UI under Settings → Secrets. Secret values are never sent to the assistant and never echoed back.
If an assistant ever asks you to paste a live credential into a chat, stop and set it in the UI instead.
Access
Access to the MCP server is enabled per user during rollout. If authorization fails or every request is refused, contact your Monad representative to have your account enabled.
Setting Up a Client
Setup is a few steps and differs slightly per client:
- Claude Code
- Claude Desktop
- Cursor
- VS Code
- ChatGPT
- Other clients - any client supporting remote MCP over HTTP with OAuth
These are the clients we have verified. The endpoint is a standard remote MCP server, so others work too.
Troubleshooting
Authorization fails, or every request is refused. Access is enabled per user during rollout. Contact your Monad representative.
The consent screen cannot identify you.
Sign in to https://app.monad.com once in the same browser, then retry.
The assistant cannot see an organization you expect. Organizations were chosen at authorization time. Revoke under Settings → Connected Applications, reconnect, and select the additional organizations.
Writes are refused but reads work. Either the client requested read-only access, or your role in that organization does not include write permissions. Check your role against Organization RBAC.
It worked yesterday and now asks you to authenticate. Credentials expire, and are invalidated when a client is revoked. Re-running the authentication step reconnects.
Security
- The MCP server holds no signing keys. It validates every credential against the Monad API on each request, which is what makes revocation immediate.
- Organization membership is enforced by the API on every request, against your current role.
- The server is stateless and holds no conversation history or pipeline data.
For broader detail on how Monad handles your data, see Security & Data Handling.