mcpField
E
ELO ECM

ELO ECM

本地服务
github.com文件与存储02 周前更新

关于 ELO ECM

ELO ECM 是本地 MCP 服务,使用每位用户自己的 ELO 账户和权限操作 ELO ECM。它支持搜索和读取文档、归档及工作流操作,也可选提供工作流和脚本编写,并在写入前进行预览和校验。

主要功能

  1. 01搜索文档并提取文本
  2. 02归档文档并更新索引字段
  3. 03查看和操作工作流
  4. 04构建工作流模板与脚本
  5. 05通过一次性令牌预览写入

适用场景

  1. 01按全文或索引字段查找文档
  2. 02查看分配的 ELO 任务和工作流
  3. 03归档文档或启动工作流
  4. 04编写并校验工作流模板或脚本

MCP 相关

它向 MCP 客户端提供 ELO ECM 搜索、文档、权限和工作流操作。写入与构建工具可分别启用;更改需先预览,再使用一次性令牌执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbelo-mcp-0.6.0.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ELO-MCP-Server

为任何 AI 提供 ELO:搜索、读取、归档、管理和构建工作流,使用您自己的 ELO 账户权限。

已通过 ELO 25 测试 MCP stdio 22 个工具 写入预览和令牌
Windows MIT 许可证

快速开始 · 工具 · 安全性 · 客户端 · 设计方案 · IX 陷阱

说明

English: 面向 ELO ECM Suite(ELO Digital Office)的 MCP 服务。可在 ELO Client(ELO 25)或 ELO Java Client 旁本地运行,并使用用户自己的 ELO 账户登录,因此 ELO 会执行该用户的权限控制。除了搜索和提取文本,它还可以归档文档、设置索引字段、启动和转交工作流,并且(可选)构建工作流模板和 ELOas 规则/IX 脚本,并进行语法检查。每次写入都分为两步:预览 + 一次性令牌。文档使用德语,因为 ELO 的用户主要位于 DACH 地区;欢迎使用英语提交问题。

一个面向 ELO Digital Office GmbH 的 ELO ECM 的 MCP 服务。您可以用日常语言提问,例如“显示与发票 4711 相关的未完成任务”或“为我构建一个包含两名并行审核人的审批模板”,AI 会直接与您的档案库交互。

一览

  • 支持任何 MCP 客户端: Claude Code、Claude Desktop、Codex、GitHub Copilot、Gemini CLI、Cursor,……(docs/CLIENTS.md)
  • 每人使用自己的权限: 服务在用户本地运行,并使用其自己的 ELO 账户登录。ELO 会自行检查每次访问。无需服务账户,也不会复制权限。
  • 不止于搜索: 全文和字段搜索、从 PDF/Office/电子邮件中提取文本、查看有效权限及其来源、读取、启动和转交工作流。
  • 构建并检查: 将工作流模板导出为 JSON 设计方案、修改并写回。上传 ELOas 规则、IX 脚本和表单页面前,会先进行编译并检查已知陷阱。
  • 三个级别: 始终启用读取。您可以分别启用写入(-Schreiben)和构建(-Bauen)。如果未启用,AI 根本看不到这些工具。
  • 两步写入: 每次更改都会先返回预览和一次性令牌。只有在第二次调用时附上令牌,操作才会执行。
  • 降低索引服务器负载: 每次只处理一个请求,设置严格的上限,不通过工作流进行批量查询。
  • 无需额外下载: 使用已安装的 ELO Client 或 ELO Java Client 中的 Java、Rhino、IX 客户端库、PDFBox 和 POI。

前提条件

已测试或要求
ELO-ServerIndexserver 25.00(ELO 25)。旧版本只要支持 Java-API,理论上也能使用,但未经测试。
ELO Client安装在运行 AI 的计算机上:ELO Client 25 或较旧的 ELO Java Client。已使用 ELO Client 25(IX-Client-Bibliothek 25.00、Rhino 1.9、PDFBox 3)和 ELO Java Client(IX-Client-Bibliothek 20.09),针对 Indexserver 25.00 进行了测试。会依次在 Programme\ELO Client、Programme\ELO Java Client 下查找,否则使用 -ClientDir。
WindowsWindows 10/11,搭配 Windows PowerShell 5.1(powershell.exe)。PowerShell 7 不够用,启动器需要 System.Web.Extensions。
ELO-Konto一个普通用户帐户。AI 能做的事仅限于该帐户的权限范围。
Zertifikat使用 https 时,服务器证书必须受 Windows 证书存储信任(Java 使用 Windows-ROOT)。

重要

每个会话都会使用你们的帐户建立独立的 IX 连接(客户端名称为 elo-mcp)。这是否会占用额外的 ELO 许可证,请向你们的 ELO 合作伙伴确认。

快速开始

  1. 获取,例如放到 C:\Tools\elo-mcp:
    git clone https://github.com/Herzog-GmbH/elo-mcp.git C:\Tools\elo-mcp
    
  2. 保存登录凭据,只需一次,并由你们自己在终端中操作(不要让 AI 输入)。密码会通过 DPAPI 加密,并绑定到你们的 Windows 帐户:
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\Tools\elo-mcp\Set-EloCredential.ps1
    
  3. 检查,不连接 ELO:
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\Tools\elo-mcp\test\offline.ps1
    
  4. 添加配置,这里以 Claude Code 为例(其他客户端见:docs/CLIENTS.md)。IX-URL 位于 ELO Java Client 的登录配置文件中,也可以向你们的 ELO 管理员获取:
    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. **测试:**在新会话中询问“我在 ELO 中是谁?”。这会调用 elo_whoami,并显示帐户、服务器、IX 版本和已启用的级别。

希望 AI 自行完成设置?将这句话交给它:“按照此文件夹中的 AGENTS.md 配置 ELO-MCP-Server。”

Claude Desktop:以软件包形式安装

Claude Desktop 也提供软件包(MCPB)版本的服务,无需 Git 和配置文件:

  1. 从最新版本下载 elo-mcp-<version>.mcpb 和 Set-EloCredential.ps1。
  2. 保存登录凭据,由你们自己在终端中操作:
    powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\Downloads\Set-EloCredential.ps1"
    
  3. 在 Claude Desktop 中,选择设置 → 扩展 → 高级设置 → 安装扩展(Settings → Extensions → Advanced settings → Install Extension),然后选择 .mcpb 文件。
  4. 填写 IX-URL。仅在需要时启用写入和构建功能。使用默认设置时,凭据文件和客户端文件夹留空。要添加第二个档案(例如测试档案),请填写“档案 2”字段,并为两个档案设置简称,参见两个档案。
  5. 在新聊天中询问“我在 ELO 中是谁?”。

软件包仅包含此仓库中的脚本(约 70 KB)。Java 和 ELO 库与平常一样,来自已安装的 ELO Client。更新时,只需安装新版 .mcpb。

开关

所有开关都写在客户端配置中的脚本路径后面。

开关作用
-IxUrl <url>ELO 服务器的 IX URL(必填,也可使用环境变量 ELO_IX_URL)
-Schreiben解锁第 2 级:归档、新建版本、索引字段、启动工作流、转发任务
-Bauen解锁第 3 级:工作流模板、脚本、ELOas 规则、表单页。最好只用于测试档案。
-CredentialFile <pfad>使用其他凭据,例如用于测试档案的第二个账户。默认值:%LOCALAPPDATA%\elo-mcp\elo-credential.xml
-ClientDir <pfad>ELO Client 或 ELO Java Client 的文件夹(如果不在 Programme 下)
-Archiv "<name>"提供给 AI 的说明中使用的档案名称,例如 "der Muster GmbH (Test)"
-TextDatumJJJJMMTT某些档案的内部规则:名称以 DAT/DATUM 结尾的文本字段,日期值采用 JJJJMMTT 格式
-LeerlaufMinuten <n>空闲指定分钟数后退出 Java(默认值为 10,不得低于 5)
-Direkt不使用预启动程序,立即启动 Java(出现问题时的回退方式,仅适用于一个档案)
-IxUrl2 <url>第二个档案,例如测试档案(见下文)
-Name <name>, -Name2 <name>两个档案在 archiv 参数中使用的简称,例如 Produktiv 和 Test(默认值为 1 和 2)
-Schreiben2, -Bauen2仅为第二个档案解锁相应级别
-CredentialFile2 <pfad>, -Archiv2 "<name>"第二个档案的凭据(默认与第一个档案相同)和档案名称
两个档案

一个条目可以连接两个档案,例如生产档案仅供读取,测试档案则开放所有级别:

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
  • 此时每个工具都有 archiv 参数(Produktiv 或 Test)。不指定时使用第一个档案。只需告诉 AI“在 Test 中”或“在 Produktiv 中”。
  • 各档案的级别分别生效。在示例中,即使 AI 尝试修改,也无法更改 Produktiv 中的内容。写入和构建工具的说明会指出它们将在哪个档案中运行。
  • 每个档案都在独立的 Java 进程中运行,该进程仅在首次调用时启动。连接、缓存和令牌彼此隔离。在 Test 中预览获得的令牌绝不会作用于 Produktiv。
  • elo_whoami、每次预览和日志都会注明档案。对象 ID、掩码和模板仅适用于各自的档案。

工具

第 1 级:读取(始终启用)
工具用途
elo_whoami账户、服务器、IX 版本、已解锁的级别
elo_search通过标题、全文和索引字段进行 iSearch,可选择限制在某个文件夹及其子文件夹中,最多返回 50 条结果
elo_find_by_fields按掩码和索引字段进行数据库搜索,支持通配符 *。未指定字段或名称时将拒绝执行
elo_list列出文件夹内容,仅一层,最多 300 项
elo_get_object元数据、带标签的索引字段、路径、当前版本、elodms:// 链接
elo_get_versions版本列表,最新版本在前
elo_get_text从 PDF(含文本层)、DOCX、XLSX、PPTX、XLS、EML 和文本文件中提取文本,每次调用最多 50,000 个字符;使用 abZeichen 继续读取
elo_user_rights用户实际生效的功能权限及其来源(直接授予或通过哪个组授予,包括嵌套组)
elo_workflow_templates所有工作流模板
elo_workflow查看模板或正在运行/已结束的工作流详情:节点、处理人、脚本、表单、JSON 配置、连接
elo_workflows_of_object查看与某个对象相关的正在运行(含活动节点)或已结束的工作流
elo_my_tasks查看自己的任务,包括通过组分配的任务
elo_workflow_export将模板导出为 JSON 构建蓝图(格式)
第 2 阶段:操作(-Schreiben)
工具用途
elo_create_folder创建文件夹(仅限文件夹掩码),同名时发出警告,必填字段为空时也会发出警告
elo_create_document将本地文件存为文档(仅限文档掩码),最大 50 MB
elo_new_version创建新版本。拒绝相同文件,扩展名不同时发出警告
elo_set_fields设置索引字段和简短名称,预览更改前 → 更改后
elo_start_workflow根据模板启动工作流;同一模板已在运行时发出警告
elo_forward_task转发任务。有多个后续节点时必须提供说明。带表单的节点只能使用 trotzFormular,因为无法通过 API 执行表单检查

字段值会先根据掩码进行检查:字段是否存在、长度、数字、日期(拒绝 31.02.)、“仅限列表”时检查关键词列表。服务器会将日期字段写成 ELO 格式 JJJJMMTT000000。

第 3 阶段:构建(-Bauen)
工具用途
elo_workflow_build根据构建计划创建或替换模板(ID 和名称保持不变)。提供变更列表预览,并在操作前后备份为 .ewf
elo_script_update在 Administration 下创建文档的新版本(ELOas 规则、IX 脚本、表单页面……),提供逐行对比预览,保留原编码
elo_script_create在 Administration 下创建新文档,掩码、权限和类型均沿用范本

构建时的检查均源自实际故障:

  • **工作流:**恰好有一个起点,至少有一个终点,所有连线都指向现有节点,每个节点都可到达且有通往终点的路径,除终点外的每个节点都必须有后续节点(否则流程会卡住),决策节点必须带条件,计数器必须使用固定值(0 会在第一个前置节点后继续,-1 会在跳过 IF 分支后卡住),处理人和表单必须存在。
  • **ELOas 规则:**XML 格式正确,每个脚本部分都会通过 Rhino 编译。
  • IX 脚本:编译通过,每个 //@include 都可解析,@include 只能出现在头部,只允许 ASCII。无法解析的 Include 否则会导致索引服务器的整个脚本引擎停止运行。

重新加载(ELOas、IX 脚本)以及在表单设计器中“更新”仍需手动操作。每次变更后,服务器都会提示这一点。

安全

  • **使用个人帐户:**ELO 会根据已登录用户的权限检查每次访问。集中式服务器需要使用具有主管理员权限的服务帐户:索引服务器会拒绝普通帐户以其他用户身份登录(runAsUser)。本服务器有意避免使用此类帐户,而是在本地以用户自己的帐户运行。
  • **凭据:**使用 DPAPI 加密,仅对你们的 Windows 帐户可读。前置程序会在 Java 启动时才解密凭据,并且只将其传递给 Java 进程。
  • **两步操作:**首次调用 = 检查 + 预览 + 令牌。令牌有效期为 5 分钟,仅可使用一次,只适用于完全相同的参数,且仅当对象自预览后未发生变化时有效(指纹由名称、掩码、索引字段、锁定状态、版本组成)。给 AI 的提示会要求展示预览并等待确认。
  • **代码中不提供:**删除、移动、修改权限和掩码。这些操作并非被禁用,而是根本不存在。
  • **日志:**每次执行都会记录,包括失败的执行,保存在 %LOCALAPPDATA%\elo-mcp\protokoll-JJJJ-MM.jsonl 中(时间、帐户、服务器、工具、参数、结果)。
  • **写入时不重试:**读取工具会在会话过期后重新登录一次。写入工具不会重试,以免重复操作。
  • **外来文本:**文档内容(elo_get_text)可能包含给 AI 的指令(Prompt Injection)。因此,请在确认前仔细阅读每次预览。

启动与内存占用

MCP 客户端会在每个会话中启动每个服务一次。每个会话启动一个 JVM 会占用约 650 MB,即使从未用到 ELO 也是如此。因此,elo-mcp.ps1 会作为轻量级前置程序(约 75 MB)运行在 Java 之前:

  • 前置程序会从 %LOCALAPPDATA%\elo-mcp\werkzeuge-<hash>.txt 响应 initialize、tools/list 和 ping。代码或开关发生变更后,第一个会话会从 Java 获取一次列表。
  • 只有在首次调用工具时才会启动 Java(2–8 s);连续 10 分钟未调用后,Java 会退出。JVM 使用 -XX:+UseSerialGC -Xms32m -XX:TieredStopAtLevel=1 运行(约 90–130 MB)。使用两个归档时,每个归档分别计算。

限制

  • 仅支持 Windows,且仅支持 stdio(没有 HTTP 服务)。src\ 下的核心代码可在任何能运行 Rhino 和 IX 客户端库的环境中运行。其他系统的启动脚本尚未提供。
  • 无法读取 .doc、.msg 和没有文本层的扫描件(不支持 OCR)。
  • 链接仅支持 Java 客户端使用的 elodms://(GUID),尚不支持 Web 客户端。
  • 构建时仅支持节点类型 1–6(开始、人员、分发、决策、收集、结束)。包含循环、服务器交接或子工作流的模板可以导出,但无法写回。
  • 不支持重新加载 ELOas/IX 脚本,也不支持发布。

结构

文件用途
elo-mcp.ps1启动脚本和前置程序
Set-EloCredential.ps1加密保存访问凭据
src/elo.jsIX 连接、归档路径
src/elo-mcp.js核心、协议、文本提取、第 1 阶段
src/elo-mcp-schreiben.js第 2 阶段、预览/令牌、字段检查、协议
src/elo-mcp-bauen.js第 3 阶段、构建计划、脚本检查
src/elo-mcp-start.js主循环
test/offline.ps1无需 ELO 的测试(协议、阶段、构建计划、脚本)
test/test-mcp.py针对真实 ELO 的调用,例如 python -I test\test-mcp.py test\beispiel-lesen.json -- -IxUrl <url>
mcpb/Claude Desktop 的软件包:manifest.json、启动脚本 mcpb-start.ps1(设置 → 开关)、图标
tools/build-mcpb.ps1构建 dist\elo-mcp-<version>.mcpb,并将校验和及下载 URL 写入 server.json
server.jsonMCP 注册表的条目
test/test-mcpb.py像 Claude Desktop 一样启动已构建的软件包,例如 python -I test\test-mcpb.py dist\elo-mcp-0.5.0.mcpb -- ix_url=<url>

构建过程中遇到的 IX API 陷阱列于 docs/FALLEN.md。

参与贡献

欢迎提交 Issues 和 Pull Request,也欢迎分享其他 ELO 版本的使用经验。请勿在 Issues、日志或测试文件中包含内部数据(主机名、用户、对象 ID、租户名称)。提交 Pull Request 前,请运行 test\offline.ps1。请勿公开报告安全漏洞,而应按照 SECURITY.md 中的说明进行报告。

许可证与商标

采用 MIT 许可证,详见 LICENSE。不作任何保证:请先在测试归档中试用写入和构建功能。

本项目并非 ELO Digital Office GmbH 的产品,也未获得该公司的支持或审核。ELO 是 ELO Digital Office GmbH 的商标。ELO 库不属于本仓库,也不包含在软件包中。请使用您获得授权的 ELO Java 客户端提供的库。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。