# MCP server

Connect an AI assistant such as Claude Code, Cursor or VS Code to one of your prioritization tables or retrospective boards, then ask it in plain words: summarize the results, write the decision report, add a list of initiatives, or invite the voters. DecideNext runs a Model Context Protocol (MCP) server for this, and the assistant uses the same API token as the [API](https://decidenext.app/docs/api).

## The server

-   URL: `https://decidenext.app/mcp` (Streamable HTTP)
-   Sign-in: the header `Authorization: Bearer dnx_live_…` for a table, or `Bearer dnx_retro_…` for a retrospective or brainstorm board
-   Scope: the one table or board the token was generated for. The token decides which tools the assistant gets.

## Get a token

1.  Open your table or board's manager dashboard and go to the API Access tab.
2.  Click Generate token and enter your manager password.
3.  The token is shown once, with the setup below already filled in. Copy the one for your assistant.

## Connect your assistant

Replace `dnx_…` with your token. The token always goes in the Authorization header, never in the URL, and stays in your own settings rather than a project file that might be committed: it gives full control of the table or board.

### Claude Code

```
claude mcp add --transport http decidenext https://decidenext.app/mcp --header "Authorization: Bearer dnx_…"
```

Run this in a terminal.

### Cursor

```
{
  "mcpServers": {
    "decidenext": {
      "url": "https://decidenext.app/mcp",
      "headers": {
        "Authorization": "Bearer dnx_…"
      }
    }
  }
}
```

Add this to ~/.cursor/mcp.json, in your home folder.

### VS Code (GitHub Copilot)

```
{
  "inputs": [
    {
      "type": "promptString",
      "id": "decidenext-token",
      "description": "DecideNext API token",
      "password": true
    }
  ],
  "servers": {
    "decidenext": {
      "type": "http",
      "url": "https://decidenext.app/mcp",
      "headers": {
        "Authorization": "Bearer ${input:decidenext-token}"
      }
    }
  }
}
```

Add this to .vscode/mcp.json and start the server from the Chat view. VS Code asks for the token once and keeps it in its secret storage, so the file holds no secret.

### Windsurf / Devin Desktop

```
{
  "mcpServers": {
    "decidenext": {
      "serverUrl": "https://decidenext.app/mcp",
      "headers": {
        "Authorization": "Bearer dnx_…"
      }
    }
  }
}
```

Add this to the MCP config (Settings → MCP servers → View raw config).

### Gemini CLI

```
gemini mcp add --scope user --transport http decidenext https://decidenext.app/mcp --header "Authorization: Bearer dnx_…"
```

Run this in a terminal. --scope user keeps the token out of the project’s .gemini folder.

### Antigravity

```
{
  "mcpServers": {
    "decidenext": {
      "serverUrl": "https://decidenext.app/mcp",
      "headers": {
        "Authorization": "Bearer dnx_…"
      }
    }
  }
}
```

Add this to the MCP config (Manage MCP servers → View raw config).

### Claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, with https://decidenext.app/mcp as the URL and a request header "Authorization" set to "Bearer dnx\_…". Request headers are a beta that only some organisations have; sign-in from Claude.ai and ChatGPT is coming.

## Tools

Tools that delete something are marked as destructive, so most assistants ask before running them; check your assistant's approval settings. Lists never include voter or participant links; the assistant gets a private link only when you ask for that person, add people, turn the join link on, or export cards to a new table. Text other people read (comments, initiatives, names, board names and prompts) is refused if it contains a private link.

### With a table token (dnx\_live\_)

| Tool | Kind | What it does |
| --- | --- | --- |
| get\_table | Reads | The table: name, method, whether results are hidden, voting progress and the join link |
| list\_initiatives | Reads | Every initiative with its description, tags and cost |
| get\_results | Reads | The ranking with each method’s figures, how much voters agreed, and what needs discussion |
| get\_decision\_report | Reads | The decision report in Markdown, optionally with the comments on the items that matter most |
| list\_comments | Reads | The comments on one initiative |
| list\_voters | Reads | Every voter and whether they have voted (no links) |
| get\_voter\_link | Reads | One named voter’s private voting link |
| add\_initiatives | Changes | Add up to 50 initiatives at once |
| update\_initiative | Changes | Change an initiative’s title, description, tags or cost |
| delete\_initiative | Deletes | Delete an initiative with its scores and comments |
| add\_comment | Changes | Comment on an initiative as the manager |
| add\_voters | Changes | Add up to 20 voters and get their voting links |
| remove\_voter | Deletes | Remove a voter and their scores |
| set\_results\_visibility | Changes | Hide results from voters, or reveal them |
| set\_join\_link | Changes | Turn the shared join link on or off |

### With a board token (dnx\_retro\_)

| Tool | Kind | What it does |
| --- | --- | --- |
| get\_board | Reads | The board: name, type, columns, and for a brainstorm its prompt, phase and countdown |
| list\_cards | Reads | Every card or idea by column, with vote counts |
| get\_board\_results | Reads | Each column’s cards ranked by votes (names nobody) |
| list\_participants | Reads | Every participant and how many votes they used (no links) |
| get\_participant\_link | Reads | One named participant’s private link |
| add\_participants | Changes | Add up to 20 participants and get their links |
| remove\_participant | Deletes | Remove a participant |
| update\_board | Changes | Rename the board; for a brainstorm, change the prompt, the phase or the countdown; for a retrospective, hide or reveal results |
| merge\_cards | Deletes | Merge one card into another (its votes move over) |
| export\_cards\_to\_new\_table | Changes | Turn chosen cards into a new prioritization table and get its manager link and password |
| set\_join\_link | Changes | Turn the shared join link on or off |

## Things to ask

-   “What came out on top, and where did the voters disagree?”
-   “Write the decision report with the comments, and turn it into a short update for my team.”
-   “Add these ten initiatives from my notes, tagged by quarter.”
-   “Who hasn't voted yet?”
-   “Group the retro cards into themes and suggest three action items.”
-   “Export the five most-voted ideas to a new RICE table.”

## Limits

-   A token allows 10 requests a minute. Tools wait for the limit when they can, so a large request may take a minute or two.
-   Tokens expire after 90 days, and generating a new one replaces the old one: update your assistant's setup when you do.
-   The assistant cannot add cards or ideas to a board yet, or delete the table or board it is connected to.
-   Sign-in from Claude.ai and ChatGPT is coming. Until then, they connect only where custom request headers are available.
-   If you connect an AI assistant to DecideNext (through the API or the MCP server), what it reads is sent to that assistant's provider, under your control. See the [Privacy Policy](https://decidenext.app/privacy).
