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

# MCP

> 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.

## 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."

## Getting a token

Sign in with the CLI:

```bash theme={null}
nora auth login
```

The token is written to your OS config location (see [`nora auth`](/cli/auth)); use it as `NORA_TOKEN` in the MCP configs below.

## Setup

<Tabs>
  <Tab title="Claude Desktop">
    1. Open Claude Desktop's MCP settings file:
       * macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
       * Windows: `%APPDATA%\Claude\claude_desktop_config.json`
    2. Add the Nora server:

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

    3. Restart Claude Desktop. In a new chat, you'll see "nora" appear under available tools.
  </Tab>

  <Tab title="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"
        }
      }
    }
    ```

    Restart Cursor, and Nora tools appear in your chat sidebar.
  </Tab>

  <Tab title="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).
  </Tab>
</Tabs>

## 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.

## What the coding agent can not do

MCP mirrors your permissions. A **Guest**'s agent can only read, and actions your role is denied (see [Permissions](/settings/workspace/permissions)) stay denied over MCP.

Approval-gated actions still go through the approval flow.

## Rotating a token

<Note>
  Treat MCP tokens like passwords. If a token leaks, re-issue and update your configs; `nora auth logout` deletes the local credentials file.
</Note>

1. Sign in again with `nora auth login` to get a fresh token.
2. Update the `NORA_TOKEN` env in your MCP host's config.
3. Restart the MCP host.

## 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 permission issue. See [Permissions](/settings/workspace/permissions).
