MCP integration

Call Brahmalabs
from any MCP client.

Claude Desktop, Claude Code, Cursor, Zed, or your own agent — any client that speaks the Model Context Protocol can read, manage, and trigger your agents, workflows, runs, schedules, and integrations directly from inside the conversation. Mutations require explicit human approval; every call is audit-logged.

Endpoint

Paste this into your client.

Two headers: your bearer token and your organisation UUID. One token works across every org you belong to.

URLhttps://api.brahmalabs.io/mcp
Transportstreamable HTTP
AuthBearer PAT
TenantX-Tenant-ID header
ProtocolMCP 2025-06-18
Discovery/.well-known/mcp-server-card
Setup

Three steps.

From zero to “your AI client can talk to your tenant” in about a minute.

01 · Create a personal access token

In the Brahmalabs dashboard, open Profile → API Keys and click New key. Name it after the client you’re connecting (claude-desktop, cursor) so you can revoke it individually later.

Copy the token immediately. The full value is shown once at creation. If you lose it, revoke and create a new one.

02 · Find your organisation UUID

On the same API Keys page, open the menu next to any key and choose Copy MCP config. The snippet you get has your current organisation’s UUID pre-filled as X-Tenant-ID.

One token works for every organisation you belong to — target a different org by changing that header alone.

03 · Paste it into your client

Any HTTP MCP client works. A couple of examples:

Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "brahmalabs": {
      "url": "https://api.brahmalabs.io/mcp",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer bk_<paste-your-token>",
        "X-Tenant-ID": "<your-organisation-uuid>"
      }
    }
  }
}
Claude Code CLI
claude mcp add brahmalabs https://api.brahmalabs.io/mcp \
  --transport http --scope user \
  --header "Authorization: Bearer bk_<paste-your-token>" \
  --header "X-Tenant-ID: <your-organisation-uuid>"

Cursor, Zed, and custom clients take the same two headers with their own config path. Restart the client; the tools appear.

Tool surface

What your client can do.

Eleven tool categories exposing the same operations the dashboard uses. Read tools return immediately; write tools are gated by an explicit human-approval step.

Agentsread · write*
Workflowsread · write*
Runsread · trigger*
Schedulesread · write*
Toolsread · write*
Integrationsread · write*
Knowledge basesread · write*
Skillsread · write*
Webhooksread
Audit logsread
Platformsummary

*  Write tools (create_*, update_*, delete_*, trigger_*) require a three-stage approval flow: preview → explicit human approval via the built-in askHuman tool → execute. The LLM cannot self-approve a mutation.

Governance

Built in, not bolted on.

The MCP surface inherits the platform’s tenant isolation, audit trail, and role enforcement. Nothing is relaxed because the caller is a language model.

Confirmation gate

No silent writes

Every mutation is a three-step flow: the LLM sees a preview and a confirmation token, must call askHuman to record approval, and only then executes.

Audit log

Every tool call recorded

Actor, tenant, IP, request id, tool name, sanitized arguments, and result summary — written to the tenant’s append-only log.

Role inheritance

Live permission bindings

The token carries no role of its own. On each request the caller’s current role in the target organisation is re-read. Demote someone; their MCP session loses the permission on the next call.

Tenant isolation

Scoped per session

Each MCP session has its own server instance. Tenant context is bound per request via isolated execution contexts — one session cannot read another’s data, even briefly.

Next

Sign in, grab a token, you’re done.

The MCP server is on every plan — free and paid. Pick up your personal access token from the dashboard and paste the snippet into your client.