> 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.

# Agent skills

[OCPPLab skills](https://github.com/ev-cloudx/ocpplab-skills) are [agent skills](https://github.com/vercel-labs/skills): folders of instructions your coding agent loads when a task needs them. With them installed, an agent knows how to authenticate, deploy and drive virtual chargers, write code with the SDKs, run `ocpplab-cli`, and connect MCP, without you pasting docs into the chat.

## Install

```bash
npx skills add ev-cloudx/ocpplab-skills
```

The installer asks which agents and skills to install. To skip the questions:

**`All agents`**

```bash All agents
# Every skill, for every agent, in this project
npx skills add ev-cloudx/ocpplab-skills --all
```

**`Some agents`**

```bash Some agents
# Every skill for Claude Code and Codex, for your user (all projects)
npx skills add ev-cloudx/ocpplab-skills --skill '*' -a claude-code -a codex -g -y
```

**`One skill`**

```bash One skill
# Only the entry-point skill, chosen agents asked interactively
npx skills add ev-cloudx/ocpplab-skills --skill ocpplab
```

Without `-g`, skills go into the current project (commit them so your team gets them too). With `-g`, they go into your user folders and work in every project.

## Supported agents

The installer supports 40+ agents. Where the common ones look for skills:

| Agent          | `-a` value       | Project folder      | User folder (`-g`)            |
| -------------- | ---------------- | ------------------- | ----------------------------- |
| Claude Code    | `claude-code`    | `.claude/skills/`   | `~/.claude/skills/`           |
| Codex          | `codex`          | `.agents/skills/`   | `~/.agents/skills/`           |
| Cursor         | `cursor`         | `.agents/skills/`   | `~/.cursor/skills/`           |
| GitHub Copilot | `github-copilot` | `.agents/skills/`   | `~/.copilot/skills/`          |
| Gemini CLI     | `gemini-cli`     | `.agents/skills/`   | `~/.gemini/skills/`           |
| OpenCode       | `opencode`       | `.agents/skills/`   | `~/.config/opencode/skills/`  |
| Windsurf       | `windsurf`       | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
| Goose          | `goose`          | `.goose/skills/`    | `~/.config/goose/skills/`     |

Every other agent: [supported agents](https://github.com/vercel-labs/skills#supported-agents).

## The skills

| Skill                                                                                                      | Your agent uses it to                                                                                                   |
| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `ocpplab`                                                                                                  | Start any OCPPLab task: domains, authentication, which surface to use, the 202 polling rule, errors, where the docs are |
| `ocpplab-virtual-chargers`                                                                                 | Deploy virtual chargers against your CSMS, then plug, charge, unplug, inject faults and diagnose stuck chargers         |
| `ocpplab-sdk`                                                                                              | Write code with the [TypeScript](/sdks/typescript) or [Python](/sdks/python) SDK: naming, pagination, errors, retries   |
| `ocpplab-mcp`                                                                                              | Connect an AI client to the [OCPPLab MCP servers](/mcp/overview)                                                        |
| `ocpplab-cli-shared`                                                                                       | Install and sign in to [`ocpplab-cli`](/cli/overview), global flags, output formats                                     |
| `ocpplab-cli-evcharger`, `-cpo`, `-emsp`, `-ocpi`, `-proxy`, `-booking`, `-energy`, `-webhooks`, `-health` | Run every `ocpplab-cli` command, per domain                                                                             |

The `ocpplab-cli-*` skills are generated from the published CLI, so they list every command it has.

## Before your agent starts

Your agent still needs a token and one way to call OCPPLab:

1. Generate a token in Studio under **Settings → SDK tokens** and export it: `export OCPPLAB_TOKEN="<token>"`. The skills tell the agent to read it from there and never write it to a file. See [Authentication](/get-started/authentication).
2. Install what the task needs: `npm i ocpplab`, `pip install ocpplab`, `npm i -g @ocpplab/cli`, or connect the MCP server `https://api.ocpplab.io/mcp`.

Then ask in plain words, for example "deploy two virtual chargers against wss\://csms.example.com/ocpp and start a session on the first one".

## Update or remove

```bash
npx skills list                       # what is installed
npx skills update                     # latest versions of installed skills
npx skills remove ocpplab-sdk         # remove one skill
```

## Skills, MCP, or both

|                   | Agent skills                                   | [MCP server](/mcp/overview)                |
| ----------------- | ---------------------------------------------- | ------------------------------------------ |
| Gives the agent   | Know-how: which call to make and how to use it | Tools that run OCPPLab operations directly |
| Runs code through | The SDKs or `ocpplab-cli` in your project      | OCPPLab's API, from the AI client          |
| Best for          | Writing and running code in a repository       | Chat-style work in Claude, Cursor, ChatGPT |

They work well together: install the skills, and the `ocpplab-mcp` skill shows your agent how to connect MCP when a task needs it.