Skip to content

nader0913/ocpp-rag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OCPP RAG

MCP server that gives AI assistants deep knowledge of EV charging protocols. Add it to Claude and ask anything about OCPP 1.6, OCPP 2.0.1, Plug & Charge, smart charging, and related standards.

3,500+ indexed chunks from 18 official documents, 119 structured use cases, 128 JSON schemas, and 146 figures.

Quick Start

Claude Code

claude mcp add ocpp-rag -- uvx --from git+https://github.com/nader0913/ocpp-rag python -m ocpp_rag.mcp_server

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "ocpp-rag": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/nader0913/ocpp-rag", "python", "-m", "ocpp_rag.mcp_server"]
    }
  }
}

Local Development

git clone https://github.com/nader0913/ocpp-rag.git
cd ocpp-rag
uv sync
uv run python -m ocpp_rag.mcp_server

The ChromaDB index builds automatically on first run (~30 seconds).

Tools

Tool Description
search_ocpp Semantic search across all 18 documents. Filter by version (1.6 / 2.0.1) or content type (use_case, requirements, json_schema, component_variable).
get_use_case Retrieve full structured details for any use case (e.g. B01, E02, K08) including description, actors, scenario, requirements, and figures.
list_use_cases List all use cases, filterable by OCPP version and functional block.
get_message_schema Look up the JSON schema for any OCPP 2.0.1 message (e.g. BootNotificationRequest, TransactionEventResponse).
get_component_variable Query device model components and variables from the OCPP 2.0.1 appendices.
list_documents List all indexed documents with chunk counts.
compare_versions Search a topic across OCPP 1.6 and 2.0.1 side by side.
list_figures Browse the 146 OCPP 2.0.1 figures by title, optionally filtered by a search term.
get_figure Retrieve a figure as a viewable image (sequence diagrams, topologies, PKI hierarchies) by number, filename, or title.

What's Inside

OCPP 2.0.1 (Edition 4)

  • Part 0 - Introduction
  • Part 1 - Architecture & Topology
  • Part 2 - Specification (491 pages, 119 use cases across 16 functional blocks A-P)
  • Part 2 - Appendices (device model: 82 components, 214 variables)
  • Part 3 - JSON Schemas (128 message schemas)
  • Part 4 - OCPP-J Specification (WebSocket/JSON transport)
  • Part 5 - Certification Profiles
  • Part 6 - Test Cases
  • Errata (2026-04)

OCPP 1.6

  • OCPP 1.6 Specification (24 operations)
  • OCPP-J 1.6 Specification

Whitepapers & Guides

  • Using ISO 15118 Plug & Charge with OCPP 1.6
  • OCPP & California Pricing Requirements v3.1
  • OCPP 1.6 Security Whitepaper (Edition 4)
  • OCPP Security Operations Guide v1.0
  • What is New in OCPP 2.0.1
  • OCPP 2.Lite - OCPP for Resource-Constrained Devices v2

Figures

146 cleanly extracted diagrams from the OCPP 2.0.1 specification: sequence diagrams, state machines, topology diagrams, PKI hierarchies, and more. Browse them with list_figures and view any diagram inline with get_figure — use cases returned by get_use_case include the figure numbers they reference.

Data Structure

src/ocpp_rag/data/
  ocpp201/
    use_cases/       119 structured JSON files (A01.json - P02.json)
    schemas/         128 JSON schema files
    blocks/          16 functional block introductions
    appendices/      Device model components & variables
    part0-6, errata  Chunked specification text
  ocpp16/
    spec.json        OCPP 1.6 specification
    j.json           OCPP-J 1.6
  other/
    6 whitepaper JSON files
  figures/
    146 PNG files + manifest

Each use case is stored as structured JSON with proper fields:

{
  "name": "Cold Boot Charging Station",
  "id": "B01",
  "functional_block": "Provisioning",
  "objective": "...",
  "description": "...",
  "actors": ["Charging Station", "CSMS"],
  "scenario": ["1. The Charging Station is powered up.", "..."],
  "prerequisites": "...",
  "postconditions": "...",
  "requirements": [
    {"id": "B01.FR.01", "precondition": "...", "definition": "..."}
  ],
  "figures": ["fig10.png"]
}

Example Queries

  • "How does cold boot work in OCPP 2.0.1? Show me the requirements."
  • "What's the JSON schema for TransactionEventRequest?"
  • "Compare authorization between OCPP 1.6 and 2.0.1"
  • "List all Smart Charging use cases"
  • "What device model variables are available for the EVSE component?"
  • "How does Plug & Charge work with ISO 15118?"
  • "What are the California pricing requirements for OCPP?"
  • "What security profiles exist in OCPP 1.6?"

Configuration

The ChromaDB index is cached at ~/.cache/ocpp-rag/chroma_db/. Override with:

export OCPP_RAG_CACHE_DIR=/your/path

License

This project is licensed under the Polyform Noncommercial License 1.0.0.

Free for personal use, research, education, non-profits, and government institutions.

Commercial use requires a separate license. Contact nader.business.mail@gmail.com for commercial licensing.

About

MCP server with RAG knowledge base for OCPP 1.6, OCPP 2.0.1, and EV charging standards

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages