npx claudepluginhub alexeimoisseev/ocpp.mdOCPP protocol reference (2.1, 2.0.1 & 1.6J) for AI-assisted EV charging development
Structured OCPP knowledge base for AI-assisted EV charging development.
OCPP specs are hundreds of pages long, full of deliberate gaps where behavior depends on your hardware, your business rules, or your grid operator. AI agents that rely on training data alone will silently fill those gaps with plausible-sounding defaults. OCPP.md makes them stop and ask you instead.
This repository covers OCPP 2.0.1 (the current spec for new deployments) and OCPP 1.6J (the most widely deployed version in the field). It provides field-level message schemas, sequence diagrams, smart charging deep-dives, and explicit escalation markers for every place the spec leaves a decision to you.
/plugin marketplace add https://github.com/alexeimoisseev/ocpp.md
/plugin install ocpp@ocpp
Clone and point your agent at the docs/ directory. See the AI Agent Setup guide for details.
After installing, try these prompts. The difference is immediate.
Without the plugin, your AI will guess the response fields. With it, the agent reads the actual schema — knows that interval is required, status is an enum of Accepted/Pending/Rejected, and that a station in Pending state must not send most messages until accepted. Works for both 2.0.1 and 1.6J — the agent detects which version you're using from your code.
/ocpp smart-charging — then ask it to build a SetChargingProfile requestThe agent knows that TxDefaultProfile applies to new transactions, that stackLevel determines priority, that schedule periods are offsets from a start time — and it flags that composite schedule overlap resolution is spec-silent instead of silently picking a behavior.
The agent reads the sequence diagrams and knows the exact flow: queue transaction messages, replay in chronological order on reconnect. It also flags that queue size limits, eviction policy, and clock drift handling are vendor-dependent — decisions you need to make, not the AI.
Instead of a vague answer, the agent reads the docs and gives you the precise distinction: SuspendedEV means the EV paused charging (battery management, target SoC), SuspendedEVSE means the charger paused (smart charging limit = 0). If both apply simultaneously, SuspendedEVSE takes precedence.
| Content | Count | Source |
|---|---|---|
| Message schemas (field-level) | 64 | Generated from OCA JSON schemas |
| Shared data types (enums + composites) | 34 | Generated from OCA JSON schemas |
| Functional blocks | 10 | Provisioning, Authorization, Transactions, Smart Charging, etc. |
| Smart charging deep-dive | 3 docs | Profiles, composite schedules, ISO 15118, worked examples |
| Sequence diagrams | 2 docs | Boot, auth, transactions, offline, firmware, diagnostics |
| Content | Count | Source |
|---|---|---|
| Message schemas (field-level) | 28 | Generated from OCA JSON schemas |
| Feature profiles | 6 | Core, Smart Charging, Firmware, Local Auth List, Reservation, Remote Trigger |
| Smart charging deep-dive | 1 doc | Profile model, stack levels, composite schedule, common pitfalls |
| Sequence diagrams | 1 doc | Boot, authorization, transactions, status, offline behavior |
All schemas are mechanically extracted from the official OCA JSON schemas — not paraphrased, not hallucinated. Behavioral documentation explicitly marks what's spec-defined vs. what's left to you. See the Methodology for the full trust model.
This is what makes OCPP.md different from just dumping the spec into context.
Both OCPP specifications have deliberate gaps — areas where behavior depends on hardware, business rules, or grid requirements. Most AI agents silently fill these gaps with plausible-sounding defaults. OCPP.md makes them stop and ask you.
Every ambiguous area in the docs is marked:
By default, the agent stops and asks. If you want it to pick reasonable defaults during prototyping, add this to your CLAUDE.md:
For OCPP: use pragmatic escalation mode.
Official prompts.chat marketplace - AI prompts, skills, and tools for Claude Code
Open Design — local-first design app exposed to coding agents over MCP. Install once with your agent's plugin command and projects/files/skills are reachable through stdio.
Behavioral guidelines to reduce common LLM coding mistakes, derived from Andrej Karpathy's observations