# The Nodary MCP server

Nodary runs a remote MCP server, so an AI agent reads and writes your workspace the way a teammate does: same documents, same permissions, signed in your name.

## At a glance

- **Address**: https://nodary.ai/api/mcp
- **Transport**: Streamable HTTP (JSON-RPC over POST)
- **Sign-in**: OAuth 2.1 with dynamic client registration and PKCE, or an API key
- **Access**: Included in every plan; on Free, within the free plan's limits
- **Discovery**: https://nodary.ai/.well-known/oauth-protected-resource/api/mcp · https://nodary.ai/.well-known/mcp.json

Claude Code: Run this command in a terminal (add --scope user to use Nodary in every project):

```sh
claude mcp add --transport http nodary https://nodary.ai/api/mcp
```

## What it is

The Model Context Protocol (MCP) is the open standard AI clients use to work with outside tools. Nodary’s server gives an agent the same workspace your team uses: projects, documents and their links, spreadsheets, pictures, string tables, dialogues and boards.

An agent does not get a copy. It reads what is there now, writes where you ask it to, and every result carries the link a person can open to check its work.

## Signing in

Most clients sign in with OAuth: give them the server’s address and they open a Nodary sign-in and consent page in your browser. Nodary supports OAuth 2.1 with dynamic client registration and PKCE, so there is no client ID to create and nothing to copy. Access tokens last an hour and the client renews them.

One connection can reach several workspaces. When you belong to more than one, the consent page lists them all, ticked: the app then reaches the workspaces you leave ticked, and only those. The option to also reach the workspaces you join later stays off unless you tick it. In such a connection every tool takes workspace (its id, slug or name): a call that changes something must name it, a read without it runs only where its ids are, and every result starts with the workspace it ran in. An API key stays tied to one workspace.

A client that cannot sign in can use an API key instead: create one in your profile, under API keys & MCP (it starts with gdc_), and send it as the header Authorization: Bearer gdc_… A key can be limited to one project.

## Who can use it

The MCP server is included in every plan, Free, Pro, Studio and Enterprise, for every member and at no extra cost.

On Free, an agent reads and writes as on a paid plan while the workspace stays within the free plan: 1 project, 10 documents and folders, and 2 members. A write that would go past a limit is refused with the limit it hits and how to lift it: while the workspace can still have its trial, the link to the dashboard, where the owner or an admin starts the 14-day Studio trial (MCP included, no card); otherwise the link to the pricing page.

A workspace above the free plan after its trial, without a subscription, is locked until it subscribes: agents are cut off there, reads included. A connection to that one workspace gets quota_locked on every request, with what is over and where the owner subscribes; a connection to several workspaces gets quota_locked (or billing_locked after a failed payment) only on the calls into the locked one, as a tool error, and keeps working in the others.

- [Pricing](https://nodary.ai/pricing)

## What an agent can do

92 tools, grouped here by the job they do. Each one tells the client whether it only reads, and whether a write can overwrite something, so a client can ask you before it acts.

### Find and read

Projects, documents with their links and history, comments, knowledge notes, saved views and context briefs. Results carry links people can open.

`list_games`, `list_stars`, `search_documents`, `get_document`, `get_star`, `get_tree`, `list_templates`, `list_members`, `list_project_knowledge`, `get_project_knowledge`, `list_comments`, `get_canon`, `list_versions`, `get_version`, `diff_versions`, `list_deleted_stars`, `list_context_briefs`, `get_context_brief`, `list_saved_views`, `get_saved_view`, `list_favorites`, `get_workspace_usage`, `list_properties`, `get_file_url`, `describe_blocks`, `run_view`, `list_workspaces`

### Write and organise

Create and edit documents block by block, file them in folders, link them, tag them, comment, set properties and settle contradictions. A deleted document can be restored.

`create_game`, `update_game`, `rename_workspace`, `create_starter_constellation`, `create_from_template`, `create_star`, `create_stars`, `write_document`, `append_document`, `edit_document`, `update_star`, `update_stars`, `delete_star`, `restore_star`, `create_cluster`, `move_to_cluster`, `link_stars`, `unlink_stars`, `set_tags`, `save_project_knowledge`, `add_comment`, `add_comments`, `resolve_comment`, `list_contradictions`, `report_contradiction`, `resolve_contradiction`, `save_context_brief`, `save_saved_view`, `set_favorite`, `define_properties`, `set_properties`, `restore_version`, `edit_comment`, `delete_comment`, `delete_project_knowledge`, `remove_context_brief`, `remove_saved_view`, `open_daily_note`

### Art review and pictures

Bring pictures in, look at them with the notes people drew on them, decide, note and tag deliverables (each decision signed with who and when), turn a moodboard into a palette and check a picture against it, and prepare an outsourcer’s feedback sheet.

`add_image`, `start_upload`, `add_media`, `get_image`, `get_moodboard`, `render_board`, `edit_board`, `find_pictures`, `update_pictures`, `get_art_review`, `extract_palette`, `check_palette`, `feedback_sheet`, `restore_image_version`, `set_image_origin`

### Spreadsheets and balancing

Read a sheet as computed values with the formula behind each cell, write cells by address or by row, and read a loot table for what it means to players.

`get_sheet`, `set_cells`, `analyze_drops`

### Localization and dialogue

See each language’s progress in a string table, write translations by key, and check a branching dialogue, which exports as a Yarn Spinner script.

`get_localization`, `set_translations`, `check_dialogue`

### Production

Set due dates, request and submit reviews, see what changed recently and whether the milestone lands.

`get_progress`, `recent_changes`, `set_due_date`, `set_due_dates`, `request_review`, `submit_review`

## Prompts and resources

Ready-made requests a client can offer as commands:

- weekly-summary: What changed this week in the workspace or one project: written, decided, reviewed and still open.
- art-review: Where the art review stands: pictures waiting for a decision, those that stray from the palette, and what to decide next.
- playtest-to-tasks: Turns playtest notes into tasks, each linked to the design document it touches.
- balance-review: Reads a loot table or a progression curve and says what it means for players and what looks off.

Resources a client can attach without a tool call:

- nodary://star/{id}: a document, as Markdown
- nodary://project/{id}: a project’s outline

## Safety

- An agent acts as the person who connected it: it sees and changes only what that person can, and a key limited to a project stays in that project.
- In a connection to several workspaces, nothing resolves across them: ids and titles are looked up only in the workspace a call names, an id from another workspace is refused before anything runs, and every result names its workspace.
- Documents keep their version history, and a deleted document can be restored.
- Writing tools take an idempotency key: a call retried after a dropped connection returns the first result instead of writing twice.
- A connection makes at most 120 requests a minute; writing has no daily limit.
- Art review decisions are signed with the name of the person who made them and the time.
- Nodary tells every agent that the text of documents and comments is content to work with, not instructions to follow. How an agent acts on that is up to the agent.

## Connect your client

Use the address https://nodary.ai/api/mcp. Each client below was checked against its own documentation on 1 October 2026.

### Claude (claude.ai and Claude Desktop)

1. Open Customize, then Connectors, and choose Add custom connector.
2. Enter https://nodary.ai/api/mcp. When Claude asks how to register, choose Register automatically.
3. Connect, sign in to Nodary and approve the access.

Custom connectors are available on the Free, Pro, Max, Team and Enterprise plans; a Free account can add one. On Team and Enterprise, an owner adds the connector for the organisation first.

### ChatGPT

1. In Settings, under Security and login, turn on Developer mode.
2. Create an app for a remote MCP server with the address https://nodary.ai/api/mcp and OAuth sign-in.
3. Sign in to Nodary and approve the access. The tools then appear in the composer’s Developer mode.

Developer mode is available on the web for Plus, Pro, Business, Enterprise and Education accounts; on Business and Enterprise, an admin may need to allow it. ChatGPT connects with OAuth only, not with an API key.

### Claude Code

1. Run this command in a terminal (add --scope user to use Nodary in every project):

   ```
   claude mcp add --transport http nodary https://nodary.ai/api/mcp
   ```
2. In Claude Code, type /mcp, choose nodary and sign in from the browser.

With an API key instead

```sh
claude mcp add --transport http nodary https://nodary.ai/api/mcp \
  --header "Authorization: Bearer gdc_..."
```

### Cursor

1. Add Nodary to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):

   ```
   {
     "mcpServers": {
       "nodary": {
         "url": "https://nodary.ai/api/mcp"
       }
     }
   }
   ```
2. Cursor offers to sign in when the server first asks for it.

With an API key instead

```json
{
  "mcpServers": {
    "nodary": {
      "url": "https://nodary.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:NODARY_API_KEY}"
      }
    }
  }
}
```

### VS Code (GitHub Copilot)

1. Add Nodary to .vscode/mcp.json in your workspace, or run the MCP: Add Server command:

   ```
   {
     "servers": {
       "nodary": {
         "type": "http",
         "url": "https://nodary.ai/api/mcp"
       }
     }
   }
   ```
2. Start the server; VS Code opens the Nodary sign-in.

On Copilot Business and Enterprise, an admin must allow MCP servers first.

With an API key instead

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "nodary-key",
      "description": "Nodary API key",
      "password": true
    }
  ],
  "servers": {
    "nodary": {
      "type": "http",
      "url": "https://nodary.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:nodary-key}"
      }
    }
  }
}
```

### Devin Desktop (formerly Windsurf)

1. Add the server and sign in from a terminal:

   ```
   devin mcp add -s user nodary https://nodary.ai/api/mcp
   devin mcp login nodary
   ```
2. Or add it to ~/.config/devin/mcp_config.json (on Windows, %APPDATA%\devin\mcp_config.json):

   ```
   {
     "mcpServers": {
       "nodary": {
         "url": "https://nodary.ai/api/mcp",
         "transport": "http"
       }
     }
   }
   ```

## If something does not work

- A first request answered 401 with a resource_metadata address is expected: it tells the client where to sign in.
- A request refused with quota_locked means the workspace is above the free plan after its trial and is locked until it subscribes: once the owner subscribes, the agent works again at once. In a connection to several workspaces, only the calls into that workspace are refused.
- A call refused with workspace_required (or workspace_not_found) lists the workspaces the connection reaches: pass one of them as workspace. To reach a workspace that is not in the list, connect the app again and tick it.
- If a client cannot finish signing in, connect it with an API key instead.

https://nodary.ai/docs/mcp
