Remote MCP server that lets Claude search the EPLAN EEC Pro 2026 documentation through semantic vector search.
Deployed on Cloudflare Workers with Vectorize + Workers AI.
Counterpart of
cloudflare-rag-eplan-p8/, which serves the EPLAN P8 docs.
Claude Code --> MCP (Streamable HTTP) --> Cloudflare Worker (eecpro-rag-mcp)
|
Workers AI (bge-base-en-v1.5)
|
Vectorize (eecpro-knowledge-base)
~6,760 vectors / 768 dims / cosine
- Local ChromaDB:
../eplan-eecpro-rag-builder/rag_db_llama_chroma/ - Documents: 1,648 markdown pages across 36 categories
- Indexed with: LlamaIndex (MarkdownNodeParser + SentenceSplitter)
- Embedding model: BAAI/bge-base-en-v1.5
# 1. Verify the local ChromaDB and export it to NDJSON batches
python migration/scripts/01_verify_and_export.py
# 2. Deploy to Cloudflare (creates index, uploads vectors, deploys worker)
cd migration && bash scripts/02_deploy_to_cloudflare.shclaude mcp add eecpro-rag -- cmd /c npx mcp-remote https://rageecpro.covaga.xyz/mcpclaude mcp listeecpro-rag should appear in the list. Then, inside Claude Code:
/mcp
It should show eecpro-rag connected with 2 tools available.
| Tool | Description |
|---|---|
eecpro_search |
Semantic search in EEC Pro documentation. Supports filtering by category (36 categories: refformulas, eececad, eecplc, eecscripting, admin, refcommands, etc.). |
eecpro_stats |
Statistics for the vector index (number of vectors, dimensions, metric). |
| Category | Description |
|---|---|
refformulas |
Formula language (317 pages) |
admin |
Installation, configuration, VMArgs (304 pages) |
eecbase |
Base functionality (119 pages) |
refformui |
Form-UI reference (84 pages) |
refcommands |
Commands (79 pages) |
refscripting |
Scripting reference (58 pages) |
concept |
Concepts (58 pages) |
eececad |
ECAD module (47 pages) |
eecplc |
PLC module (47 pages) |
| + 27 more | Tutorials, SAP, Office, Graph2D, etc. |
In addition to the MCP, the worker exposes a direct REST API. Base URL: https://rageecpro.covaga.xyz.
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check |
| POST | /search |
Semantic search (body: {"query": "...", "topK": 5}) |
| GET | /stats |
Index statistics |
| POST | /add-vectors |
Insert vectors (requires Authorization: Bearer <WORKER_API_KEY>) |
1. Search using cURL (Windows CMD)
curl -X POST https://rageecpro.covaga.xyz/search -H "Content-Type: application/json" -d "{\"query\": \"job server configuration\", \"topK\": 3, \"category\": \"eecjobserver\"}"2. Search using Python
import requests
url = "https://rageecpro.covaga.xyz/search"
payload = {
"query": "job server configuration",
"topK": 3,
"category": "eecjobserver", # Optional filter
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())cloudflare-rag-eecpro/
├── migration/
│ ├── scripts/
│ │ ├── 01_verify_and_export.py # Export ChromaDB → NDJSON batches
│ │ └── 02_deploy_to_cloudflare.sh # Create index + upload + deploy
│ └── manifest.json # (generated by step 01)
├── worker/
│ ├── src/
│ │ └── index.ts # Worker (MCP + REST)
│ ├── wrangler.jsonc # Cloudflare configuration
│ ├── package.json
│ ├── tsconfig.json
│ └── worker-configuration.d.ts
└── README.md # This file
| Aspect | cloudflare-rag-eplan-p8 (P8) |
cloudflare-rag-eecpro (EEC Pro) |
|---|---|---|
| Product | Eplan Electric P8 | Eplan EEC Pro |
| Source DB | eplan-p8-mcp-server/chroma_db_sota/ (~870 MB, 57K vectors) |
eplan-eecpro-rag-builder/rag_db_llama_chroma/ (~102 MB, ~6.7K vectors) |
| Vectorize index | eplan-knowledge-base |
eecpro-knowledge-base |
| Worker name | eplan-rag-mcp |
eecpro-rag-mcp |
| Domain | rag2026.covaga.xyz |
rageecpro.covaga.xyz |
| MCP name | eplan-rag |
eecpro-rag |
| Tools | eplan_search / eplan_stats |
eecpro_search / eecpro_stats |
| Categories | 3 (API Reference, User Guide, Api) | 36 (refformulas, eececad, eecplc, ...) |