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

已驗證STDIO僅桌面效率與工作流知識與記憶

概覽

AI 產生的概覽

針對 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 憑證存放區中受信任。寫入與建置工具需以開關啟用後才會出現。
安裝前請注意
伺服器以你自己的 ELO 帳號登入,助理只能做該帳號允許的事;每個工作階段會建立獨立的 IX 連線,可能佔用額外的 ELO 授權,請與 ELO 合作夥伴確認。寫入與建置層級會改動檔案庫資料,建置變更最好先在測試檔案庫進行。每次寫入都需要預覽加一次性權杖,但確認前應閱讀預覽。文件內文可能包含提示注入。每次執行都會在本機記錄帳號、工具與參數。不提供刪除、移動與修改權限。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ELO ECM,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

Getestet bzw. vorausgesetzt
ELO-ServerIndexserver 25.00 (ELO 25). Ältere Versionen mit Java-API sollten gehen, sind aber nicht geprüft.
ELO Clientinstalliert auf dem Rechner, auf dem die KI läuft: der ELO Client 25 oder der ältere ELO Java Client. Getestet gegen Indexserver 25.00 mit dem ELO Client 25 (IX-Client-Bibliothek 25.00, Rhino 1.9, PDFBox 3) und mit dem ELO Java Client (IX-Client-Bibliothek 20.09). Gesucht wird unter Programme\ELO Client, dann Programme\ELO Java Client, sonst -ClientDir.
WindowsWindows 10/11 mit Windows PowerShell 5.1 (powershell.exe). PowerShell 7 reicht nicht, der Vorschalt braucht System.Web.Extensions.
ELO-Kontoein normales Benutzerkonto. Die KI kann genau das, was das Konto darf.
ZertifikatBei https muss das Server-Zertifikat im Windows-Zertifikatsspeicher vertrauenswürdig sein (Java nutzt Windows-ROOT).

[!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

  1. Holen, z. B. nach C:\Tools\elo-mcp:
    powershell
    git clone https://github.com/Herzog-GmbH/elo-mcp.git C:\Tools\elo-mcp
  2. 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:
    powershell
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\Tools\elo-mcp\Set-EloCredential.ps1
  3. Prüfen, ohne ELO-Verbindung:
    powershell
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\Tools\elo-mcp\test\offline.ps1
  4. 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:
    powershell
    claude mcp add elo --scope user -- powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Tools\elo-mcp\elo-mcp.ps1" -IxUrl "https://elo.example.com:9093/ix-Archiv/ix"
  5. Testen: In einer neuen Sitzung „Wer bin ich in ELO?" fragen. Das ruft elo_whoami auf 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:

  1. Aus dem neuesten Release elo-mcp-<version>.mcpb und Set-EloCredential.ps1 laden.
  2. Zugangsdaten hinterlegen, selbst im Terminal:
    powershell
    powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\Downloads\Set-EloCredential.ps1"
  3. In Claude Desktop unter Einstellungen → Erweiterungen → Erweiterte Einstellungen → Erweiterung installieren (Settings → Extensions → Advanced settings → Install Extension) die .mcpb-Datei wählen.
  4. 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.
  5. 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.

SchalterWirkung
-IxUrl <url>IX-URL des ELO-Servers (Pflicht, alternativ Umgebungsvariable ELO_IX_URL)
-SchreibenStufe 2 freischalten: ablegen, neue Version, Indexfelder, Workflow starten, Aufgabe weiterleiten
-BauenStufe 3 freischalten: Workflow-Vorlagen, Skripte, ELOas-Regeln, Formularseiten. Am besten nur gegen ein Testarchiv.
-CredentialFile <pfad>andere Zugangsdaten, z. B. ein zweites Konto für das Testarchiv. Standard %LOCALAPPDATA%\elo-mcp\elo-credential.xml
-ClientDir <pfad>Ordner des ELO Client bzw. ELO Java Client, wenn er nicht unter Programme liegt
-Archiv "<name>"Name des Archivs in den Hinweisen an die KI, z. B. "der Muster GmbH (Test)"
-TextDatumJJJJMMTTHausregel mancher Archive: Textfelder, deren Name auf DAT/DATUM endet, bekommen Datumsangaben als JJJJMMTT
-LeerlaufMinuten <n>Java nach so vielen Minuten ohne Aufruf beenden (Standard 10, nicht unter 5)
-Direktohne Vorschalt, Java sofort starten (Rückfall bei Problemen, nur ein Archiv)
-IxUrl2 <url>zweites Archiv, z. B. das Testarchiv (siehe unten)
-Name <name>, -Name2 <name>Kurznamen der beiden Archive für den Parameter archiv, z. B. Produktiv und Test (Standard 1 und 2)
-Schreiben2, -Bauen2Stufen nur für das zweite Archiv
-CredentialFile2 <pfad>, -Archiv2 "<name>"Zugangsdaten (Standard: dieselben wie fürs erste) und Archivname für das zweite Archiv

Zwei Archive

Ein Eintrag kann zwei Archive bedienen, z. B. Produktiv nur lesend und Test mit allen Stufen:

powershell
claude mcp add elo --scope user -- powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Tools\elo-mcp\elo-mcp.ps1" -IxUrl "https://elo.example.com:9093/ix-Archiv/ix" -Name Produktiv -IxUrl2 "https://elo-test.example.com:9093/ix-Archiv/ix" -Name2 Test -Schreiben2 -Bauen2
  • Jedes Werkzeug hat dann den Parameter archiv (Produktiv oder Test). 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)

WerkzeugZweck
elo_whoamiKonto, Server, IX-Version, freigeschaltete Stufen
elo_searchiSearch über Titel, Volltext und Indexfelder, optional auf einen Ordner samt Unterordnern begrenzt, höchstens 50 Treffer
elo_find_by_fieldsDatenbanksuche über Maske und Indexfelder, Platzhalter *. Ohne Feld oder Namen abgelehnt
elo_listOrdnerinhalt, eine Ebene, höchstens 300
elo_get_objectMetadaten, Indexfelder mit Bezeichnung, Pfad, aktuelle Version, elodms://-Link
elo_get_versionsVersionsliste, neueste zuerst
elo_get_textText aus PDF (mit Textebene), DOCX, XLSX, PPTX, XLS, EML und Textdateien, höchstens 50.000 Zeichen je Aufruf, Weiterlesen mit abZeichen
elo_user_rightsWirksame Funktionsrechte eines Benutzers mit Herkunft (direkt oder über welche Gruppe, auch verschachtelt)
elo_workflow_templatesAlle Workflow-Vorlagen
elo_workflowVorlage oder laufender/beendeter Workflow im Detail: Knoten, Bearbeiter, Skripte, Formular, JSON-Konfiguration, Verbindungen
elo_workflows_of_objectLaufende (mit aktiven Knoten) oder beendete Workflows zu genau einem Objekt
elo_my_tasksEigene Aufgaben, auch über Gruppen
elo_workflow_exportVorlage als JSON-Bauplan (Format)

Stufe 2: arbeiten (-Schreiben)

WerkzeugZweck
elo_create_folderOrdner anlegen (nur Ordnermasken), warnt bei gleichem Namen und leeren Pflichtfeldern
elo_create_documentLokale Datei als Dokument ablegen (nur Dokumentmasken), höchstens 50 MB
elo_new_versionNeue Version. Lehnt eine identische Datei ab, warnt bei anderer Endung
elo_set_fieldsIndexfelder und Kurzbezeichnung setzen, Vorschau bisher → neu
elo_start_workflowWorkflow aus Vorlage starten, warnt, wenn dieselbe Vorlage schon läuft
elo_forward_taskAufgabe weiterleiten. Bei mehreren Nachfolgern Pflichtangabe. Knoten mit Formular nur mit trotzFormular, weil Formularprüfungen über die API nicht laufen

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)

WerkzeugZweck
elo_workflow_buildVorlage aus Bauplan anlegen oder ersetzen (ID und Name bleiben). Vorschau mit Änderungsliste, Sicherung .ewf vorher und nachher
elo_script_updateNeue Version eines Dokuments unter Administration (ELOas-Regel, IX-Skript, Formularseite …), Vorschau mit Zeilenvergleich, Kodierung bleibt
elo_script_createNeues Dokument unter Administration, Maske, Rechte und Typ vom Vorbild

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 //@include ist auflösbar, @include steht 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/list und ping beantwortet 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, .msg und 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

DateiZweck
elo-mcp.ps1Startskript und Vorschalt
Set-EloCredential.ps1Zugangsdaten verschlüsselt hinterlegen
src/elo.jsIX-Verbindung, Archivpfade
src/elo-mcp.jsKern, Protokoll, Textauszug, Stufe 1
src/elo-mcp-schreiben.jsStufe 2, Vorschau/Token, Feldprüfung, Protokoll
src/elo-mcp-bauen.jsStufe 3, Bauplan, Skriptprüfungen
src/elo-mcp-start.jsHauptschleife
test/offline.ps1Prüfungen ohne ELO (Protokoll, Stufen, Bauplan, Skripte)
test/test-mcp.pyAufrufe gegen ein echtes ELO, z. B. python -I test\test-mcp.py test\beispiel-lesen.json -- -IxUrl <url>
mcpb/Paket für Claude Desktop: manifest.json, Startskript mcpb-start.ps1 (Einstellungen → Schalter), Symbol
tools/build-mcpb.ps1baut dist\elo-mcp-<version>.mcpb und trägt Prüfsumme und Download-URL in server.json ein
server.jsonEintrag für die MCP Registry
test/test-mcpb.pystartet das gebaute Paket wie Claude Desktop, z. B. python -I test\test-mcpb.py dist\elo-mcp-0.5.0.mcpb -- ix_url=<url>

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
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.6.0最新Oct 18, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分