# MCP server

The Monta API MCP (Model Context Protocol) server exposes your Monta account to AI assistants.

## Monta API MCP (account-connected)

The Monta API MCP server at `https://partner-api-mcp.monta.app` exposes every Monta API endpoint as an MCP tool, authenticated with your own credentials. Connected assistants can list your teams, inspect charge point status, start and stop charging sessions, configure pricing, and more — using your real account data.

### Get credentials

Create a Monta API key (Client ID and Client Secret) in [Monta Hub](https://hub.monta.app) — see [Access and set up API keys in Monta Hub](https://monta.com/help/en_US/monta-hub-account-settings/access-and-set-up-api-keys-in-monta-hub). The tools available to you depend on the scopes you grant the key: full `all` scope exposes every endpoint, while `all:read` + `all:write` hides delete operations.

### Endpoints

| Transport                     | URL                                     |
| :---------------------------- | :-------------------------------------- |
| Streamable HTTP (recommended) | `https://partner-api-mcp.monta.app/mcp` |
| SSE (legacy clients)          | `https://partner-api-mcp.monta.app/sse` |

### Authentication

Pass credentials as HTTP headers using any of these formats:

| Method              | Header(s)                                                             |
| :------------------ | :-------------------------------------------------------------------- |
| Combined (simplest) | `X-Monta-Auth: clientId:clientSecret`                                 |
| Separate headers    | `X-Monta-Client-Id: clientId` + `X-Monta-Client-Secret: clientSecret` |
| Basic auth          | `Authorization: Basic base64(clientId:clientSecret)`                  |
| Bearer token        | `Authorization: Bearer accessToken`                                   |

### Client setup

#### Claude Code

Add the server with a single command:

```bash
claude mcp add --transport http monta-partner-api https://partner-api-mcp.monta.app/mcp \
  --header "X-Monta-Auth: YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
```

Verify with `claude mcp list`, then ask Claude Code e.g. *"List my Monta teams"*.

#### Cursor

**Add to `~/.cursor/mcp.json`:**

```json
{
  "mcpServers": {
    "monta-partner-api": {
      "url": "https://partner-api-mcp.monta.app/mcp",
      "headers": {
        "X-Monta-Auth": "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

#### Windsurf

**Add to `~/.codeium/windsurf/mcp_config.json`:**

```json
{
  "mcpServers": {
    "monta-partner-api": {
      "serverUrl": "https://partner-api-mcp.monta.app/mcp",
      "headers": {
        "X-Monta-Auth": "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
      }
    }
  }
}
```

#### Claude Desktop

Claude Desktop runs the MCP adapter locally via a small launcher script. Follow the [Claude Desktop setup guide](https://partner-api-mcp.monta.app/docs/claude-desktop-local.md).

Replace `YOUR_CLIENT_ID` and `YOUR_CLIENT_SECRET` with your actual credentials.

### Other integrations

* [n8n](https://partner-api-mcp.monta.app/docs/n8n.md) — MCP Client Tool node
* [ChatGPT](https://partner-api-mcp.monta.app/docs/chatgpt-action.md) — custom GPT Actions
* [CLI](https://partner-api-mcp.monta.app/docs/cli.md) — every endpoint as a terminal command (`npm install -g @monta-api/cli`)
* [Full tool reference](https://partner-api-mcp.monta.app/docs/tools) — always-up-to-date list of every MCP tool

### Try it

Once connected, ask your assistant things like:

```
Show me all my charge points and their current state
Start a charging session at charge point 12345
Show me charging sessions from the last 24 hours
```
