
ELO ECM
io.github.Herzog-GmbH由 GitHub 账号 Herzog-GmbH 发布v0.6.0更新于 Nov 1, 2026
ELO ECM: search, read text, file documents, run and build workflows with your own ELO account
概览
面向 ELO ECM 的本地 MCP 服务器,让助手以用户自己的 ELO 账号搜索、读取、归档文档,并运行和构建工作流。
- 可以做什么
- 检索与查看档案:全文与字段搜索、列出文件夹、对象元数据、版本以及用户的有效权限
- 提取 PDF、Office、邮件和文本文件的文字,长文档可分页续读
- 读取工作流:模板、运行中与已结束的工作流、单个对象的工作流、自己的任务,并把模板导出为 JSON 构建方案
- 归档与修改文档(写入级别):新建文件夹、归档本地文件、新增版本、设置索引字段
- 运行工作流(写入级别):从模板启动工作流、转交任务
- 构建(构建级别):创建或替换工作流模板,创建和更新 ELOas 规则、IX 脚本与表单页,并做语法检查
- 适用场景
- 适合日常使用 ELO ECM 档案库、希望助手回答文档、任务和工作流相关问题,或在本人权限范围内归档、设置索引并推动审批的场景。构建工作流和脚本建议先在测试档案库中试用。
- 运行要求
- Windows 10/11 与 Windows PowerShell 5.1,已安装 ELO Client 25 或 ELO Java Client,以及 ELO 索引服务器(已在 25.00 上测试)。IX 地址通过启动参数或环境变量 ELO_IX_URL 提供;凭据需先用单独脚本一次性保存,并以 DPAPI 加密。使用 https 时服务器证书须在 Windows 证书存储中受信任。写入和构建工具需通过开关启用后才会出现。
安装
在 SourceWeft 中
- 打开 控制台中的 ELO ECM,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
ELO-MCP-Server
ELO für jede KI: suchen, lesen, ablegen, Workflows steuern und bauen, mit den Rechten des eigenen ELO-Kontos.
[Getestet mit ELO 25]
[MCP stdio]
[22 Werkzeuge]
[Vorschau und Token]
[Windows]
[Lizenz MIT]
Schnellstart · Werkzeuge · Sicherheit · Clients · Bauplan · IX-Fallen
[!NOTE] English: MCP server for the ELO ECM Suite (ELO Digital Office). Runs locally next to the ELO Client (ELO 25) or ELO Java Client and signs in with the user's own ELO account, so ELO enforces that user's permissions. Beyond search and text extraction it can file documents, set index fields, start and forward workflows, and (optionally) build workflow templates and ELOas rules/IX scripts with syntax checks. Every write is a two-step preview + one-time token. Docs are in German because ELO's user base is mostly DACH; issues in English are welcome.
Ein MCP-Server für das ELO ECM der ELO Digital Office GmbH. Ihr fragt in normaler Sprache, etwa „Zeig mir die offenen Aufgaben zu Rechnung 4711" oder „Bau mir eine Freigabe-Vorlage mit zwei parallelen Prüfern", und die KI arbeitet direkt mit eurem Archiv.
Auf einen Blick
- Jeder MCP-Client: Claude Code, Claude Desktop, Codex, GitHub Copilot, Gemini CLI, Cursor, … (docs/CLIENTS.md)
- Rechte je Person: Der Server läuft lokal beim Anwender und meldet sich mit dessen eigenem ELO-Konto an. ELO prüft jeden Zugriff selbst. Kein Dienstkonto, kein Nachbau von Rechten.
- Mehr als Suchen: Volltext- und Feldsuche, Textauszug aus PDF/Office/E-Mail, wirksame Rechte mit Herkunft, Workflows lesen, starten und weiterleiten.
- Bauen mit Prüfungen: Workflow-Vorlagen als JSON-Bauplan exportieren, ändern und zurückschreiben. ELOas-Regeln, IX-Skripte und Formularseiten hochladen, vorher kompiliert und auf bekannte Fallen geprüft.
- Drei Stufen: Lesen ist immer an. Schreiben (
-Schreiben) und Bauen (-Bauen) schaltet ihr einzeln frei. Ohne Schalter sieht die KI die Werkzeuge gar nicht. - Zweistufig schreiben: Jede Änderung liefert zuerst eine Vorschau und ein Einmal-Token. Erst ein zweiter Aufruf mit Token führt aus.
- Schonend für den Indexserver: eine Anfrage zur Zeit, harte Obergrenzen, keine Massenabfragen über Workflows.
- Keine zusätzlichen Downloads: nutzt Java, Rhino, IX-Client-Bibliothek, PDFBox und POI aus dem installierten ELO Client bzw. ELO Java Client.
Voraussetzungen
[!IMPORTANT] Jede Sitzung baut eine eigene IX-Verbindung mit eurem Konto auf (Client-Name
elo-mcp). Ob das bei euch eine zusätzliche ELO-Lizenz belegt, klärt bitte mit eurem ELO-Partner.
Schnellstart
- Holen, z. B. nach
C:\Tools\elo-mcp: - Zugangsdaten hinterlegen, einmalig und selbst im Terminal (nicht von der KI eintippen lassen). Das Passwort wird per DPAPI für euer Windows-Konto verschlüsselt:
- Prüfen, ohne ELO-Verbindung:
- Eintragen, hier in Claude Code (andere Clients: docs/CLIENTS.md). Die IX-URL steht im Anmeldeprofil des ELO Java Client oder kommt von eurem ELO-Administrator:
- Testen: In einer neuen Sitzung „Wer bin ich in ELO?" fragen. Das ruft
elo_whoamiauf und zeigt Konto, Server, IX-Version und freigeschaltete Stufen.
Ihr wollt, dass eure KI das selbst einrichtet? Gebt ihr diesen Satz: „Richte den ELO-MCP-Server nach der AGENTS.md in diesem Ordner ein."
Claude Desktop: als Paket installieren
Für Claude Desktop gibt es den Server auch als Paket (MCPB), ohne Git und ohne Konfigurationsdatei:
- Aus dem neuesten Release
elo-mcp-<version>.mcpbundSet-EloCredential.ps1laden. - Zugangsdaten hinterlegen, selbst im Terminal:
- In Claude Desktop unter Einstellungen → Erweiterungen → Erweiterte Einstellungen → Erweiterung installieren (Settings → Extensions → Advanced settings → Install Extension) die
.mcpb-Datei wählen. - IX-URL eintragen. Schreiben und Bauen nur bei Bedarf einschalten. Zugangsdatei und Client-Ordner bleiben leer, solange ihr die Standards nutzt. Für ein zweites Archiv (z. B. Test) die Felder „Archiv 2“ ausfüllen und beiden Archiven einen Kurznamen geben, siehe Zwei Archive.
- In einem neuen Chat „Wer bin ich in ELO?" fragen.
Im Paket stecken nur die Skripte aus diesem Repo (rund 70 KB). Java und die ELO-Bibliotheken kommen wie sonst aus dem installierten ELO Client. Für ein Update installiert ihr einfach die neue .mcpb.
Schalter
Alle Schalter stehen hinter dem Skriptpfad in der Client-Konfiguration.
Zwei Archive
Ein Eintrag kann zwei Archive bedienen, z. B. Produktiv nur lesend und Test mit allen Stufen:
- Jedes Werkzeug hat dann den Parameter
archiv(ProduktivoderTest). Ohne Angabe gilt das erste Archiv. Ihr sagt der KI einfach „im Test“ oder „in Produktiv“. - Die Stufen gelten je Archiv. Im Beispiel kann die KI in Produktiv nichts ändern, auch wenn sie es versucht. Schreib- und Bauwerkzeuge sagen in ihrer Beschreibung, in welchem Archiv sie gehen.
- Jedes Archiv läuft in einem eigenen Java-Prozess, der erst beim ersten Aufruf startet. Verbindungen, Zwischenspeicher und Tokens mischen sich nicht. Ein Token aus einer Vorschau im Test wirkt nie in Produktiv.
elo_whoami, jede Vorschau und das Protokoll nennen das Archiv. Objekt-IDs, Masken und Vorlagen gelten nur im jeweiligen Archiv.
Werkzeuge
Stufe 1: lesen (immer an)
Stufe 2: arbeiten (-Schreiben)
Feldwerte werden vorher gegen die Maske geprüft: Feld vorhanden, Länge, Zahl, Datum (31.02. wird abgelehnt), Stichwortliste bei „nur Liste". Datumsfelder schreibt der Server im ELO-Format JJJJMMTT000000.
Stufe 3: bauen (-Bauen)
Die Prüfungen beim Bauen stammen alle aus echten Störungen:
- Workflows: genau ein Start, mindestens ein Ende, alle Kanten auf vorhandene Knoten, jeder Knoten erreichbar und mit Weg zum Ende, jeder Knoten außer Ende hat einen Nachfolger (sonst bleibt der Vorgang hängen), Entscheidung mit Bedingung, Sammler mit festem Zähler (0 leitet beim ersten Vorgänger weiter, -1 bleibt nach übersprungenen IF-Zweigen hängen), Bearbeiter und Formulare existieren.
- ELOas-Regeln: XML wohlgeformt, jeder Skriptteil wird mit Rhino kompiliert.
- IX-Skripte: kompiliert, jeder
//@includeist auflösbar,@includesteht nur in den Kopfzeilen, nur ASCII. Ein nicht auflösbarer Include stoppt sonst den ganzen Skript-Motor des Indexservers.
Neu laden (ELOas, IX-Skripte) und „Aktualisieren" im Formulardesigner bleiben Handarbeit. Das sagt der Server nach jeder Änderung dazu.
Sicherheit
- Eigenes Konto: ELO prüft jeden Zugriff mit den Rechten der angemeldeten Person. Ein zentraler Server bräuchte ein Dienstkonto mit Hauptadministrator-Recht: Die Anmeldung im Namen anderer (
runAsUser) lehnt der Indexserver für normale Konten ab. Ein solches Konto vermeidet dieser Server bewusst, er läuft lokal mit dem Konto der Person. - Zugangsdaten: per DPAPI verschlüsselt, nur für euer Windows-Konto lesbar. Der Vorschalt entschlüsselt sie erst beim Java-Start und gibt sie nur an den Java-Prozess weiter.
- Zweistufig: Erster Aufruf = Prüfung + Vorschau + Token. Das Token gilt 5 Minuten, einmal, nur für exakt dieselben Argumente und nur, wenn sich das Objekt seit der Vorschau nicht verändert hat (Fingerabdruck aus Name, Maske, Indexfeldern, Sperre, Version). Die Hinweise an die KI verlangen, die Vorschau zu zeigen und auf Zustimmung zu warten.
- Nicht im Code: Löschen, Verschieben, Rechte und Masken ändern. Das ist nicht abgeschaltet, das gibt es schlicht nicht.
- Protokoll: Jede Ausführung, auch fehlgeschlagene, steht in
%LOCALAPPDATA%\elo-mcp\protokoll-JJJJ-MM.jsonl(Zeit, Konto, Server, Werkzeug, Argumente, Ergebnis). - Keine Wiederholung beim Schreiben: Lesewerkzeuge melden sich nach einer abgelaufenen Sitzung einmal neu an. Schreibende nie, damit nichts doppelt passiert.
- Fremder Text: Dokumentinhalte (
elo_get_text) können Anweisungen an die KI enthalten (Prompt-Injection). Lest deshalb jede Vorschau, bevor ihr zustimmt.
Start und Speicher
MCP-Clients starten jeden Server einmal je Sitzung. Eine JVM je Sitzung kostet rund 650 MB, auch wenn ELO nie gebraucht wird. Deshalb steht elo-mcp.ps1 als schlanker Vorschalt (rund 75 MB) vor Java:
initialize,tools/listundpingbeantwortet der Vorschalt aus%LOCALAPPDATA%\elo-mcp\werkzeuge-<hash>.txt. Nach einer Änderung an Code oder Schaltern holt die erste Sitzung die Liste einmal von Java.- Java startet erst beim ersten Werkzeugaufruf (2–8 s) und endet nach 10 Minuten ohne Aufruf. Die JVM läuft mit
-XX:+UseSerialGC -Xms32m -XX:TieredStopAtLevel=1(rund 90–130 MB). Bei zwei Archiven gilt das je Archiv.
Grenzen
- Nur Windows und nur stdio (kein HTTP-Server). Der Kern unter
src\läuft überall, wo Rhino und die IX-Client-Bibliothek laufen. Ein Startskript für andere Systeme gibt es noch nicht. - Kein Text aus
.doc,.msgund Scans ohne Textebene (kein OCR). - Links nur als
elodms://(GUID)für den Java Client, noch nicht für den Web Client. - Beim Bauen nur die Knotentypen 1–6 (Start, Person, Verteiler, Entscheidung, Sammler, Ende). Vorlagen mit Zyklus, Serverübergabe oder Subworkflow lassen sich exportieren, aber nicht zurückschreiben.
- Kein Neuladen von ELOas/IX-Skripten und kein Veröffentlichen.
Aufbau
Fallen der IX-API, auf die wir beim Bau gestoßen sind, stehen in docs/FALLEN.md.
Mitmachen
Issues und Pull Requests sind willkommen, gern auch mit Erfahrungen aus anderen ELO-Versionen. Bitte keine internen Daten (Hostnamen, Benutzer, Objekt-IDs, Mandantennamen) in Issues, Logs oder Testdateien. Vor einem Pull Request test\offline.ps1 laufen lassen. Sicherheitslücken bitte nicht öffentlich melden, sondern wie in SECURITY.md beschrieben.
Lizenz und Marken
MIT, siehe LICENSE. Ohne Gewähr: Probiert Schreiben und Bauen zuerst an einem Testarchiv aus.
Dies ist kein Produkt der ELO Digital Office GmbH und wird von ihr weder unterstützt noch geprüft. ELO ist eine Marke der ELO Digital Office GmbH. Die ELO-Bibliotheken sind nicht Teil dieses Repos und nicht im Paket. Sie kommen aus eurem lizenzierten ELO Java Client.
来源:README.md,提交 c76c80e
工具
0版本历史
1- v0.6.0最新Oct 18, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
