A collection of AI-assisted automation tools for EPLAN Electric P8 and EPLAN EEC Pro 2026, built around the Model Context Protocol (MCP).
The repo contains four independent sub-projects: a local MCP server that drives EPLAN P8 directly, a documentation scraper / local RAG indexer for EEC Pro, and two remote MCP servers hosted on Cloudflare Workers that expose the indexed documentation via semantic search.
Working with an LLM here? Read
llm.md— it explains, in LLM-facing terms, everything the toolkit can do and configure.
.
├── eplan-p8-mcp-server/ # LOCAL: MCP server that controls EPLAN P8
├── eplan-eecpro-rag-builder/ # LOCAL: scraper + LlamaIndex/ChromaDB indexer for EEC Pro docs
├── cloudflare-rag-eplan-p8/ # REMOTE: Cloudflare Worker that serves the P8 docs RAG over MCP
└── cloudflare-rag-eecpro/ # REMOTE: Cloudflare Worker that serves the EEC Pro docs RAG over MCP
| Folder | Type | Purpose | EPLAN product |
|---|---|---|---|
eplan-p8-mcp-server/ |
Local Python MCP | Drive a running EPLAN instance from Claude (open/close projects, exports, reports, scripts, etc.) | EPLAN Electric P8 |
eplan-eecpro-rag-builder/ |
Local Python pipeline | Scrape official docs and build a local ChromaDB vector index | EPLAN EEC Pro 2026 |
cloudflare-rag-eplan-p8/ |
Remote Cloudflare Worker | Serve the P8 doc index as a remote MCP + REST API | EPLAN Electric P8 |
cloudflare-rag-eecpro/ |
Remote Cloudflare Worker | Serve the EEC Pro doc index as a remote MCP + REST API | EPLAN EEC Pro 2026 |
Each sub-project has its own README with installation and usage details.
MCP (Model Context Protocol) is an open standard that lets AI assistants like Claude interact with external tools and services. Instead of just generating code, Claude can actually execute actions in EPLAN in real time and consult documentation through semantic search.
The local MCP server lets Claude drive a running EPLAN instance. It exposes
304 tools: 6 connection/utility tools plus 149 EPLAN actions in two
flavours — eplan_v1_* (direct execution) and eplan_v2_* (silent C# /
QuietMode execution, recommended).
pip install pythonnet mcp
claude mcp add eplan -- python YOURPATH/eplan-p8-mcp-server/mcp_server/server.py
claude mcp list # should list "eplan"Then start EPLAN, open Claude Code, and say connect to eplan. See eplan-p8-mcp-server/mcp_server/README.md for the full guide.
To use remoting, please proceed as follows:
To start Eplan remoting, you must first activate the Allow remote access via Remote Client setting. You can do this via GUI in the settings dialog (File > Settings... > Workstation > Interfaces > Remote access).
These are already deployed and ready to use — no local data required:
# EPLAN Electric P8 documentation
claude mcp add eplan-rag -- cmd /c npx mcp-remote https://rag2026.covaga.xyz/mcp
# EPLAN EEC Pro 2026 documentation
claude mcp add eecpro-rag -- cmd /c npx mcp-remote https://rageecpro.covaga.xyz/mcpThey also expose a plain REST API (handy for verifying EPLAN action names and parameters while developing):
curl -X POST https://rag2026.covaga.xyz/search -H "Content-Type: application/json" \
-d "{\"query\": \"export project pdf\", \"topK\": 3}"See cloudflare-rag-eplan-p8/README.md and cloudflare-rag-eecpro/README.md for the tools, REST endpoints, and architecture.
If you want to (re)build the EEC Pro vector index locally — for instance to push it to your own Cloudflare account — see eplan-eecpro-rag-builder/README.md.
The local MCP server registers tools dynamically from each actions package's
__all__ list, so adding an action is just two steps (no per-tool boilerplate).
In eplan-p8-mcp-server/mcp_server/api/v2/actions/<your_module>.py:
def open_project(project_path: str, open_mode: str = None) -> dict:
"""Open a project in EPLAN.
Args:
project_path: Full path to the .elk project file.
open_mode: "Standard", "ReadOnly", or "Exclusive" (optional).
"""
manager, error = _get_connected_manager()
if error:
return error
action = _build_action("ProjectOpen", Project=project_path, OpenMode=open_mode)
return manager.execute_action(action)Add the function to the imports and to __all__ in
eplan-p8-mcp-server/mcp_server/api/v2/actions/__init__.py. It is then
auto-registered as eplan_v2_open_project (and eplan_v1_* if added to V1 too).
The new tool becomes available after restarting Claude / the server.
- Verify against the docs — use the remote P8 RAG (
https://rag2026.covaga.xyz) to confirm the exact EPLAN action name and parameters. - Write meaningful docstrings + type hints — they become the tool description and input schema the LLM sees and relies on.
- Handle paths carefully — Windows paths need escaping (
\\) or forward slashes (/). - Prefer V2 for unattended runs — it suppresses dialogs and returns result parameters.
The target EPLAN version is configured in 4 files. Update all of them when switching versions (e.g. "2026" → "2027"):
| File | What to change |
|---|---|
eplan-p8-mcp-server/mcp_server/server.py |
TARGET_VERSION = "2027" |
eplan-p8-mcp-server/mcp_server/api/v1/actions/_base.py |
TARGET_VERSION = "2027" |
eplan-p8-mcp-server/mcp_server/api/v2/actions/_base.py |
TARGET_VERSION = "2027" |
eplan-p8-mcp-server/mcp_server/eplan_connection.py |
default target_version in __init__ and get_manager |


