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

# Migrating from the MCP Beta

Resolve's MCP server moved from `/mcp` to `/mcp/v2`, with OAuth and the plugin install flow described in [AI Assistant Plugins](/ai-assistant-plugins). The old endpoint and its tools are documented below for reference.

## Migration Steps

If you previously configured Resolve MCP manually in your AI coding agent or assistant:

1. Remove the old Resolve MCP server entry from your host config.
2. Remove any old `RESOLVE_API_KEY` from your shell profile or host config.
3. Install `resolve-ai` from the plugin marketplace following [Install](/ai-assistant-plugins#install-resolve-ai-plugin).
4. Sign in with OAuth when prompted.
5. Restart your host. `/mcp` should show `resolve` connected.

### MCP-only setup

For clients that don't support the plugin, or if you'd rather configure MCP manually, point your client at:

```text theme={null}
https://app0.resolve.ai/mcp/v2
```

You'll get the same Resolve MCP tools, but not the bundled plugin skills. Authenticate with a `RESOLVE_API_KEY` (see [Authentication](/ai-assistant-plugins#authentication) for how to generate one) sent as a bearer token. Most hosts take a static header:

```jsonc theme={null}
"resolve": {
  "type": "http",
  "url": "https://app0.resolve.ai/mcp/v2",
  "headers": { "Authorization": "Bearer ${RESOLVE_API_KEY}" }
}
```

#### Codex

Codex uses [TOML](https://toml.io/en/) and a `bearer_token_env_var` field instead of a header:

```toml theme={null}
[mcp_servers.resolve]
url = "https://app0.resolve.ai/mcp/v2"
bearer_token_env_var = "RESOLVE_API_KEY"
```

#### Cursor

Cursor's `mcp.json` references env vars as `${env:NAME}`, not the bare `${NAME}`:

```jsonc theme={null}
"resolve": {
  "type": "http",
  "url": "https://app0.resolve.ai/mcp/v2",
  "headers": { "Authorization": "Bearer ${env:RESOLVE_API_KEY}" }
}
```

***

<Accordion title="Legacy Reference">
  This is the previous MCP server documentation. The endpoint and tool names below have been replaced by the plugin's `/mcp/v2` endpoint and the tools listed under [Tools](/resolve-mcp-server#tools).

  ### Endpoint

  ```text theme={null}
  https://app0.resolve.ai/mcp
  ```

  Transport: [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) (stateless, no session management required).

  ### Setup (Claude Code)

  Add to your `.mcp.json`:

  ```json theme={null}
  {
    "mcpServers": {
      "resolve": {
        "type": "http",
        "url": "https://app0.resolve.ai/mcp",
        "headers": {
          "Authorization": "Bearer ${RESOLVE_API_KEY}"
        }
      }
    }
  }
  ```

  Set `RESOLVE_API_KEY` as an environment variable with your API token, then restart Claude Code.

  ### Tools

  #### `resolve_start_chat`

  Start a new conversation with Resolve.

  | Parameter | Type | Required | Description |
  | :- | :- | :- | :- |
  | `message` | string | Yes | Message to send to Resolve |

  Returns the full response text and a canvas URL.

  #### `resolve_start_investigation`

  Kick off a deep (RCA-style) investigation and return the initial investigation response along with the canvas URL. Equivalent to toggling **Deep Investigation** in the Resolve chat UI. The investigation continues in the background on the canvas after the tool returns.

  | Parameter | Type | Required | Description |
  | :- | :- | :- | :- |
  | `message` | string | Yes | Investigation prompt to send to Resolve |
  | `canvasId` | string | No | Existing canvas ID to continue from before starting the investigation |

  Returns the transition message, the canvas URL, and the canvas ID. Use `resolve_get_investigation` with the canvas ID to poll progress and retrieve the full report once the investigation completes.

  #### `reply`

  Send a follow-up message to an existing conversation. Use the `canvasId` from a previous `resolve_start_chat` result.

  | Parameter | Type | Required | Description |
  | :- | :- | :- | :- |
  | `canvasId` | string | Yes | Canvas ID from a previous `resolve_start_chat` result |
  | `message` | string | Yes | Follow-up message |

  #### `resolve_list_investigations`

  Find past investigations by time range and alert labels.

  | Parameter | Type | Required | Description |
  | :- | :- | :- | :- |
  | `startTime` | string | Yes | ISO datetime for the start of the search window |
  | `endTime` | string | Yes | ISO datetime for the end of the search window |
  | `labels` | object | No | Filter by alert labels. All specified key-value pairs must match. |

  #### `resolve_get_investigation`

  Get full details of a specific investigation including status, RCA reports, and theories.

  | Parameter | Type | Required | Description |
  | :- | :- | :- | :- |
  | `canvasId` | string | Yes | Canvas ID from `resolve_list_investigations` |

  <Info>
    **Notes**

    * `resolve_start_chat` blocked until Resolve finished responding. Simple questions returned in under a minute.
    * To kick off a deep investigation, `resolve_start_investigation` was preferred. It returned the canvas URL quickly and the investigation continued in the background. Including `/rca` in a `resolve_start_chat` message also worked (the backend detected the trigger word).
    * Each tool call was independent. No session state was maintained between requests.
  </Info>
</Accordion>
