iDempiere MCP服务器
该项目实现了 模型上下文协议(MCP) 服务器 iDempiere ERP它弥合了人工智能助手(如Google Gemini和Anthropic Claude)与iDempiere之间的差距,实现了与ERP系统的自主交互,以检索数据、执行流程和管理记录。
依赖
从Eclipse进行测试
- 将幂等rest项目导入Eclipse工作区。
- 将org.idempire.mcp.server项目导入Eclipse工作区。
- 从现有的启动配置创建启动配置,并添加幂等rest和org.idempire.mcp.server项目。
- 运行启动配置。
测试
- 创建新的Rest Auth令牌记录。复制自动生成的令牌。
- Rest Auth Token现在是可选的,您可以使用新添加的create_Auth_Token工具。
测试与https://github.com/modelcontextprotocol/inspector
- npx@modelcontextprotocol/检查器
- 使用http://localhost:8080/mcp/适用于可扩展HTTP传输类型
- 身份验证:启用授权并输入Bearer ``
测试与https://github.com/google-gemini/gemini-cli
- 编辑~/.ggemini/settings.json
- 流式HTTP:
"mcpServers": {
"iDempiere": {
"httpUrl": "http://localhost:8080/mcp/",
"timeout": 30000,
"trust": true,
"headers": {
"Authorization": "Bearer "
}
}
}- 不同租户的多个令牌:
"mcpServers": {
"iDempiere-System": {
"httpUrl": "http://localhost:8080/mcp/",
"timeout": 30000,
"trust": true,
"headers": {
"Authorization": "Bearer "
}
},
"iDempiere-GardenWorld": {
"httpUrl": "http://localhost:8080/mcp/",
"timeout": 30000,
"trust": true,
"headers": {
"Authorization": "Bearer "
}
}
},
"mcp": {
"excluded":["iDempiere-System"]
}
}- 使用多个令牌时,一次只能使用一个,并使用“排除”禁用另一个。更改settings.json文件中的“excluded”值后,您需要重新启动Gemini CLI。
- 安装https://github.com/castle-studio-work/geminicli-manage-addon用于管理Gemini CLI的多个MCP服务器实例的命令行工具
- 使用create_auth_token工具进行身份验证:
- 删除“headers”属性 - 示例:使用GardenAdmin、GardenAdmin、客户端ID:GardenWorld、组织ID:HQ、角色ID:GardenWorld Admin、仓库ID:HQ Warehouse对幂等进行身份验证 - 请注意,由于系统管理员角色的角色类型,您无法立即使用SuperUser、System、clientId:0、roleId:0进行身份验证。您需要将系统管理员角色的角色类型值更改为空,或者为角色类型为Web服务的REST API创建新的系统租户角色。
- 使用set_auth_token工具进行身份验证:
- 删除“headers”属性 - 使用使用创建的令牌 REST Auth Token 或者使用调用REST认证API的curl获取访问令牌。 - 将令牌导出为环境变量或直接使用它。 - 示例:将令牌导出为$token,并在提示下使用 idempiere set token from environment variable TOKEN
- 请注意,URL中的尾随“/”很重要http://localhost:8080/mcp/“工作但是”http://localhost:8080/mcp“不会。出于某种原因,servlet容器会将(HTTP 301)”/mcp“重定向到”/mcp/“,这会中断初始化流程。”。
演示视频
- 搜索业务合作伙伴联系人:https://youtu.be/TyNPor3M_pY
- 运行进程:https://youtu.be/jFjkPRrlzLU
- 使用消息窗口创建记录:https://youtu.be/dutEDBLrbNg
- 处理服务器作业:https://youtu.be/d5yXvsTKSk4
环境变量
MCP_CLEANUP_INTERVAL_MINUTES:清理过期会话的间隔(分钟)。MCP_CLEANUP_INTERVAL_MS:清理过期会话的间隔(毫秒)。违约:600000(10分钟)。MCP_CORS_ORIGIN:访问控制允许源标头值。违约:*.MCP_HEARTBEAT_INTERVAL_MS:发送心跳(ping)消息的间隔(毫秒)。违约:15000(15秒)。MCP_PROTOCOL_VERSION:支持的模型上下文协议版本。违约:2025-06-18.MCP_STREAMING_SESSION_TTL_MINUTES:流媒体会话的直播时间(分钟)。MCP_STREAMING_SESSION_TTL_MS:流式传输会话的生存时间(毫秒)。违约:1800000(30分钟)。MCP_THREAD_POOL_SIZE:用于处理请求的线程池的大小。违约:100.
状态
- 概念验证原型,小心使用。
构建
- 布局如下:
idempiere-workspace/
├── idempiere-rest
└── idempiere- 在幂等工作空间,
git clone https://github.com/hengsin/idempiere-mcp.git. - 在幂等工作区/idmiere mcp处,
mvn verify. - 构建工件-idmpiere工作区/idmpiere mcp/target/org.idempiere.mcp.server-1.0-SNAPSHOT.jar。
- 为了进行测试,请使用Felix Web控制台的OSGi控制台安装org.idempire.mcp.server.1.0-SNAPSHOT.jar(在此之前必须安装idempiere rest)。
