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.
.
├── eplan-p8-mcp-server/ # LOCAL: MCP server that controls EPLAN P8 (and embedded RAG engine)
├── 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, 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.
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.
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/mcpSee 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 is designed to be easily extensible. To add a new EPLAN action:
In eplan-p8-mcp-server/mcp_server/actions/<your_module>.py:
def open_project(project_path: str) -> dict:
"""Open an EPLAN project."""
manager = get_manager(TARGET_VERSION)
if not manager.connected:
return {"success": False, "message": "Not connected to EPLAN"}
# Use forward slashes or escape backslashes in the path
return manager.execute_action(f'XPrjActionProjectOpen /Path:"{project_path}"')In eplan-p8-mcp-server/mcp_server/server.py:
from actions.project import open_project
@mcp.tool()
def eplan_open_project(project_path: str) -> str:
"""Open an EPLAN project by path."""
return json.dumps(open_project(project_path), indent=2)The new tool will be available after restarting Claude.
- Test in EPLAN first — use EPLAN's scripting console to verify the action works.
- Check parameters — every action has specific parameters; refer to the EPLAN API docs.
- Handle paths carefully — Windows paths need escaping (
\\) or forward slashes (/). - Write meaningful docstrings — Claude uses the docstring to decide when to call the tool.
The target EPLAN version is configured in 3 files. Update all of them when switching versions (e.g. "2025" → "2026"):
| File | What to change |
|---|---|
eplan-p8-mcp-server/mcp_server/server.py |
TARGET_VERSION = "2025" |
eplan-p8-mcp-server/mcp_server/actions/_base.py |
TARGET_VERSION = "2025" |
eplan-p8-mcp-server/mcp_server/eplan_connection.py |
Default parameter in __init__ and get_manager (target_version: str = "2025") |

