> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ocpplab.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ocpplab.io/_mcp/server.

# MCP

The OCPPLab API serves its operations as [MCP](https://modelcontextprotocol.io) tools. Agents such as Claude Code, Codex, Cursor, VS Code, claude.ai and ChatGPT can deploy virtual chargers, manage CPO and eMSP data, run OCPI roaming, and more, with your permissions.

* **Transport:** Streamable HTTP
* **URL:** `https://api.ocpplab.io/mcp`, or one server per domain at `/mcp/<domain>`
* **Auth:** browser sign-in (OAuth), or an SDK token as `Authorization: Bearer <token>`

## Connect in one command

```bash
claude mcp add --transport http ocpplab https://api.ocpplab.io/mcp
```

Run `/mcp` in Claude Code and pick `ocpplab`. Your browser opens: sign in, choose the organization the agent may use, and select **Allow**. Other clients: [Connect a client](/mcp/connect-a-client).

## Pick the servers you need

Every connected server adds its tool list to the agent's context. Connect only the domains your task needs:

| Server              | URL              | Covers                                                                                |
| ------------------- | ---------------- | ------------------------------------------------------------------------------------- |
| `ocpplab-evcharger` | `/mcp/evcharger` | Virtual charger deployments, OCPP commands, logs, charger catalog, templates          |
| `ocpplab-ocpi`      | `/mcp/ocpi`      | OCPI partners, credentials handshake, CPO and eMSP data, push and pull                |
| `ocpplab-cpo`       | `/mcp/cpo`       | Charge points, EVSEs, connectors, locations, tariffs, sessions, CDRs, customers, AFIR |
| `ocpplab-emsp`      | `/mcp/emsp`      | Tenant profile, roaming identities, networks, tokens, token groups, commands          |
| `ocpplab-proxy`     | `/mcp/proxy`     | Proxy charger points, tokens, OCPP and OCPI commands                                  |
| `ocpplab-booking`   | `/mcp/booking`   | Bookable locations and bookings                                                       |
| `ocpplab-energy`    | `/mcp/energy`    | Power-limit requests and power measurements                                           |
| `ocpplab-webhook`   | `/mcp/webhook`   | Webhook endpoints, test deliveries, delivery history                                  |
| `ocpplab`           | `/mcp`           | Every domain above in one server                                                      |

Tool counts and every tool name, per server: [Servers and tools](/mcp/servers-and-tools).

## How tools behave

* **Names** are `<domain>_<operation>`, for example `cpo_charge_points_list` or `evcharger_start_session`.
* **Permissions** are yours: a tool call runs as the REST call it maps to, with your token. Results only include your organization, and admin tools return `403` unless you are an admin.
* **Hints:** every tool says whether it is read-only, destructive or idempotent, so your client can ask before a destructive call.
* **Long-running tools** return a tracking id, and their description names the tool to poll. See [Long-running operations](/get-started/guides/long-running-operations).
* **Updates:** omit a field to leave it unchanged, or send `null` to clear it.
* **Limits:** 120 calls per minute per user and organization, shared by every MCP URL. Over it, tools return `429` with `Retry-After`.
* **REST only:** proxy backends, proxy routing rules and bulk log deletion are not MCP tools.

## Agent skills

To teach a coding agent how to use OCPPLab (and how to connect this MCP server), install the OCPPLab skills: `npx skills add ev-cloudx/ocpplab-skills`. See [Agent skills](/get-started/agent-skills).

## Two MCP servers, two jobs

|                 | Product MCP                   | Docs MCP                              |
| --------------- | ----------------------------- | ------------------------------------- |
| URL             | `https://api.ocpplab.io/mcp`  | `https://docs.ocpplab.io/_mcp/server` |
| Gives the agent | Your OCPPLab data and actions | Answers from this documentation       |
| Needs sign-in   | Yes                           | No                                    |

Connect both when you want an agent to look up how something works and then do it.