> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP — coding agents

> Drive Nora from Claude Desktop, Cursor, or any MCP-capable coding agent.

Nora ships an **MCP server** so a coding agent (Claude Desktop, Cursor, Codex, and other MCP hosts) can manage your workspace: create Flows, add Blocks, run and inspect Traces, and publish — all from natural-language instructions.

The same commands are available as the `nora` CLI. MCP is just the coding-agent-friendly way in.

## What you can do from a coding agent

* Create or edit a Flow: *"Add a Slack Action to the support flow that pings #cx-alerts on refunds."*
* Connect a data source: *"Attach the /policies folder in Drive to the support agent."*
* Debug: *"Pull the last 5 failed traces from `support-flow` and summarize."*
* Publish: *"Snapshot the draft and publish with note 'refund tool cleanup'."*
* Explore: *"List all Flows in this workspace and tell me which ones have unpublished changes."*

## Setup — Claude Desktop

1. In Nora, go to **Settings → Security → API tokens** and click **New token**. Copy it.
2. Open Claude Desktop's MCP settings file:
   * macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   * Windows: `%APPDATA%\Claude\claude_desktop_config.json`
3. Add the Nora server:

```json theme={null}
{
  "mcpServers": {
    "nora": {
      "command": "npx",
      "args": ["-y", "@nora-ai/mcp-server"],
      "env": {
        "NORA_TOKEN": "your-token-here"
      }
    }
  }
}
```

4. Restart Claude Desktop. In a new chat, you'll see "nora" appear under available tools.

## Setup — Cursor

Cursor supports MCP through the same config surface. In Cursor Settings → MCP, add:

```json theme={null}
{
  "nora": {
    "command": "npx",
    "args": ["-y", "@nora-ai/mcp-server"],
    "env": {
      "NORA_TOKEN": "your-token-here"
    }
  }
}
```

Reload Cursor. Nora tools appear in your chat sidebar.

## Setup — other MCP hosts

Any MCP-capable client works. Point it at `@nora-ai/mcp-server` via `npx` and pass `NORA_TOKEN` in the environment. Full command list matches the [CLI reference](/cli/reference).

## What tools MCP exposes

The MCP server surfaces roughly the same operations as the CLI, plus a few MCP-native conveniences:

* Flow management (list, get, apply, publish, rollback).
* Block CRUD (agents, tools, actions, triggers, edges).
* Data (documents, memory, retrieval, causal, pipelines).
* Reliability (traces, feedback, approvals).
* Workspace (providers, connectors, billing).

Each tool has typed inputs the coding agent auto-discovers.

## Scoping tokens

Tokens issued from **Personal API tokens** are account-scoped — they can act on any workspace you belong to. For automation, prefer a workspace-scoped token: **Settings → Security → API tokens → Workspace tokens**.

Workspace tokens can further be scope-restricted to specific operations (read-only, no-publish, etc.). Set at token creation.

## What the coding agent can *not* do

MCP mirrors your permissions. If you're a **Viewer** in a workspace, the agent can only read. Approval-gated actions still go through the approval flow — the coding agent cannot bypass them.

Workspace policies (see [Access](/settings/workspace/access)) also apply. If publishing is restricted to CI, an interactive MCP session can't publish either.

## Rotating a token

<Note>
  Treat MCP tokens like passwords. Rotate them from the Nora settings page anytime; the old token stops working immediately.
</Note>

To rotate:

1. Issue a new token in Nora Settings.
2. Update the `NORA_TOKEN` env in your MCP host's config.
3. Restart the MCP host.
4. Revoke the old token.

## Multiple workspaces

Configure one MCP server per workspace with distinct tokens:

```json theme={null}
{
  "mcpServers": {
    "nora-prod":    { "command": "npx", "args": ["-y", "@nora-ai/mcp-server"], "env": { "NORA_TOKEN": "prod-token" } },
    "nora-staging": { "command": "npx", "args": ["-y", "@nora-ai/mcp-server"], "env": { "NORA_TOKEN": "staging-token" } }
  }
}
```

The coding agent sees both, prefixes tool names by server, and can operate on either.

## Troubleshooting

**"nora not appearing in tool list"** — check Claude Desktop / Cursor logs. Usually `npx` failing to fetch the package, or `NORA_TOKEN` unset.

**"401 unauthorized"** — token revoked or expired. Re-issue.

**"Permission denied"** — role or workspace policy issue. See [Access](/settings/workspace/access).

## Related

* [`nora` CLI reference](/cli/reference) — same operations, terminal instead of coding agent.
* [API tokens](/settings/security/api-tokens) — issue and rotate tokens.
* [Access](/settings/workspace/access) — what tokens can and can't do.
