Collection of MCP servers for EPLAN automation and documentation access, including P8 automation, EEC Pro RAG, EPLAN 2027 wiki search, and EPLAN 2026 RAG. Exposes EPLAN API actions, tool discovery, and documentation search via MCP protocol.
This MCP server implements 21 tools across three distinct subsystems: core EPLAN connection management (7 tools), action/command discovery (7 tools), and documentation search (7 tools via Cloudflare Workers). Definition quality is mixed. Strengths: tool names use clear verb_noun patterns (eplan_connect, eplan_disconnect, eplan_action_run); descriptions are detailed and include extensive operational context (e.g., eplan_servers includes auto-detection warnings, port fallback guidance). Weaknesses: (1) many tools lack formal input schemas, only 5 of 21 tools have visible JSON Schema definitions with type constraints; (2) parameter descriptions in schema definitions are sometimes superficial (e.g., 'Action parameters' for the parameters object in eplan_action_run); (3) no output/return schemas documented for any tool; (4) error handling guidance is absent from most tool descriptions (only eplan_servers includes recovery hints); (5) no tool annotations (readOnlyHint, destructiveHint, idempotentHint) present despite clear risk indicators; (6) discovery-mode meta-tools (eplan_tools_search, eplan_tools_describe, eplan_tools_call) are well-engineered but introduce complexity that could confuse agents unfamiliar with the registry pattern. The server bridges a complex domain (EPLAN engineering software + documentation search) and provides genuine value, but falls short of production-grade tool design in parameter validation, output documentation, and error recovery guidance.
Search EPLAN EEC Pro documentation (formulas, scripting, ECAD, PLC, JobServer, Graph2D, etc). Use natural language queries. Returns relevant chunks with metadata.
Get statistics about the EPLAN EEC Pro RAG index (vector count, dimensions, metric).
Fetch the full content of one file from the EPLAN 2027 API wiki by its path (as returned by eplan2027_search).
Keyword/full-text search over the EPLAN 2027 API documentation wiki (API Reference: classes/interfaces/structs/enums with full member detail bundled per type; User Guide: conceptual topics). Best for exact or near-exact names (class/method/property names, error codes) -- for genuinely vocabulary-free conceptual questions, rag2026.covaga.xyz's semantic search may do better. Returns ranked hits with a snippet; follow up with eplan2027_get(path) for the full file.
Get statistics about the EPLAN 2027 API wiki index (document count).
List all ~1150 raw EPLAN API actions available for eplan_action_run.
Output schemas not documented for any of 21 tools. LLMs cannot predict response structure, forcing them to parse unstructured output and limiting their ability to chain calls.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent despite clear risk levels. eplan_action_run, eplan_tools_call, eplan_connect, eplan_disconnect have WRITE/MODIFY risk but are unmarked.
Error handling guidance is minimal. Most tool descriptions lack recovery instructions. Only eplan_servers includes fallback guidance (manual port detection); others omit what LLM should do on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
Get documentation for one raw EPLAN action by name.
Run a raw EPLAN API action by name and optional parameters.
Connect to EPLAN. Args: host: EPLAN machine to connect to. Defaults to "localhost". Set this to reach an EPLAN instance on another machine (e.g. "10.10.10.2"). You may also pass "host:port" as this argument and it will be split. port: Remoting port. Auto-detected from local servers if omitted, but auto-detection only works for localhost — when connecting to a remote host you must supply the port explicitly (default 49152). If the connection fails (e.g. gRPC "failed to connect to all addresses") and eplan_servers() found nothing either, the default port is likely wrong, not EPLAN being closed - ask the user to check the real listening port for EPLAN.exe and retry with that port explicitly. Do not silently retry a range of ports yourself without telling the user what you're doing. version: EPLAN major version to target, e.g. "2026". Omit for auto-detection (newest installed version). Use eplan_versions to see what is available. Once one version's DLLs are loaded, switching requires restarting the MCP server.
Disconnect from EPLAN.
Check if EPLAN is responding.
List all EPLAN ribbon actions (UI commands) available.
Search EPLAN documentation (API Reference, User Guide, hidden actions). Use natural language queries. Returns relevant chunks with metadata.
List active EPLAN servers (running instances). Note: this loads the EPLAN DLLs (auto-detected newest version if not connected yet). This can return an empty list even while EPLAN is fully open with a project loaded - auto-detection is not fully reliable, particularly right after EPLAN itself was just (re)started. Do not treat an empty result as proof EPLAN isn't running. If eplan_connect() then also fails with a connection error (e.g. gRPC "failed to connect to all addresses"), fall back to asking the user to find the actual listening port themselves (e.g. a TCP/port viewer filtered to EPLAN.exe, or `netstat -ano | findstr LISTENING` cross-referenced with EPLAN.exe's PID) rather than assuming the default port is correct - the default 49152 is only a guess, real instances have been seen listening on other ports (e.g. 49153) especially with multiple EPLAN processes running.
Get statistics about the EPLAN RAG index (vector count, dimensions, metric).
Get the current EPLAN connection status.
Verify the connection by compiling and running a real C# script in EPLAN. Args: show_dialog: Show a MessageBox in the EPLAN GUI instead of the default non-interactive round-trip (default False). MessageBox.Show is a Windows dialog, not an EPLAN one, so QuietMode cannot suppress it: setting this True BLOCKS this server - and every other caller waiting on it - until a human clicks OK in the EPLAN window. Audit #42 item 10. Leave False unless you specifically want the visible confirmation and are prepared to go click it yourself.
Invoke one hidden tool by name with arguments.
Get full docstring and parameters for one or more hidden tools.
Search for hidden tools by name or docstring. Returns parameter NAMES only.
List EPLAN versions installed on this machine. Use this BEFORE eplan_connect if the user needs a specific version; by default the newest installed version is used automatically. Does not load any EPLAN DLLs, so it never locks the process to a version.
Parameter 'parameters' in eplan_action_run is type 'object' with minimal description ('Optional action parameters'). LLMs cannot validate payloads or predict required sub-keys. No schema constraints or examples provided.
Discovery mode meta-tools (eplan_tools_search, eplan_tools_describe, eplan_tools_call) are powerful but complex. Their existence and purpose must be explained early to LLMs; risk of agents ignoring them and re-requesting the full 194-tool catalog.
Pagination not visible in search tools (eecpro_search, eplan2027_search, eplan_search). topK parameter caps results but no offset/cursor provided for agents to retrieve next batch. If topK=20 is insufficient, agent cannot continue searching.
Tool name 'eplan_tools_call' is generic and could be confused with 'eplan_action_run'. Both execute arbitrary operations, the distinction (hidden registry vs catalog actions) is not clear from names alone.