企业AI代理集成服务

Moqui MCP将AI代理连接到Moqui Framework,一个开源ERP平台,使代理能够执行浏览屏幕、填写表单、执行交易和查询数据等操作,为企业提供智能化的业务操作支持。

  • by schue
  • Groovy
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 schue/moqui-mcp

使用说明

Moqui MCP:企业中的人工智能代理

在真实的业务系统中为AI代理提供真正的工作。

这是什么

Moqui MCP将AI代理连接到 Moqui 框架,一个开源的ERP平台。通过MCP(模型上下文协议),代理可以浏览屏幕、填写表单、执行事务和查询数据,这些操作与人类通过web界面执行的操作相同。

这不是一个固定在ERP上的聊天机器人。它是可以直接访问业务运营的人工智能。

代理人可以做什么

  • 浏览 完整的应用程序层次结构-目录、订单、各方、会计
  • 搜索 具有完整查询功能的产品、客户、库存
  • 创建 订单、发票、货物、当事人、产品
  • 更新 价格、数量、状态、关系
  • 执行 跨多个屏幕和服务的工作流

所有操作均遵循Moqui的安全模型。代理只看到他们的用户帐户允许的内容。

为什么是莫基?

ERP系统是企业的运营支柱。它们包括:

  • 真实数据:实际库存水平、客户记录、财务交易
  • 实际流程:订单兑现、采购支付、雇佣退休工作流程
  • 实际约束:业务规则、审批链、合规要求

Moqui以开源软件的形式提供所有这些,具有独特的人工智能友好架构:

  • 声明性屏幕:具有丰富语义元数据的XML定义
  • 以服务为导向:UI和业务逻辑之间的清晰分离
  • 人工制品安全:每个屏幕、服务和实体上的细粒度权限
  • 可扩展:无需分叉即可添加AI特定的屏幕和服务

MARIA格式

企业屏幕是为具有视觉背景的人类构建的。AI代理需要结构化的语义。我们通过以下方式解决了这个问题 MARIA(MCP可访问富互联网应用程序) -基于W3C可访问性标准的JSON格式。

MARIA将Moqui屏幕转化为LLM自然理解的可访问性树:

{
  "role": "document",
  "name": "FindParty",
  "children": [
    {
      "role": "form",
      "name": "CreatePersonForm", 
      "children": [
        {"role": "textbox", "name": "First Name", "required": true},
        {"role": "textbox", "name": "Last Name", "required": true},
        {"role": "combobox", "name": "Role", "options": 140},
        {"role": "button", "name": "createPerson"}
      ]
    },
    {
      "role": "grid",
      "name": "PartyListForm",
      "rowcount": 47,
      "columns": ["ID", "Name", "Username", "Role"],
      "children": [
        {"role": "row", "name": "John Sales"},
        {"role": "row", "name": "Jane Accountant"}
      ],
      "moreRows": 45
    }
  ]
}

见解: 人工智能代理是一种新型的可访问性挑战用户。 他们看不到像素或解释视觉布局——他们需要结构化的语义。这正是几十年前ARIA为屏幕阅读器解决的问题。但是ARIA没有JSON序列化,屏幕阅读器通过本地操作系统API而不是网络协议访问可访问性树。MARIA填补了这一空白:ARIA词汇表,序列化为JSON,通过MCP传输。

因为人类和代理通过相同的语义模型进行交互,所以它们可以用相同的术语相互解释动作。“我从订单状态下拉列表中选择了‘已发货’”意味着无论是人工还是代理都是一样的——不需要翻译层。

为什么集成MARIA胜过浏览器自动化

Playwright MCP等工具允许代理通过捕获屏幕截图和可访问性快照来控制浏览器。这是可行的,但对于企业系统来说,这是错误的抽象:

方面 编剧/浏览器 集成MARIA
延迟 屏幕截图→ 视觉模型→ 操作 直接JSON-RPC往返
代币成本 图像+DOM快照燃烧令牌 仅语义有效载荷
国家访问权限 仅限于可见DOM 完整的服务器端上下文
安全 浏览器会话=完全UI访问 细粒度工件授权
可靠性 CSS更改中断选择器 稳定的语义契约
批量操作 一次单击一次 单次调用中的批量操作

MARIA直接从源代码提供可访问性树——无需浏览器渲染,无需视觉模型,无需DOM抓取。代理能够准确地获得所需的语义结构,而不会产生任何开销。

渲染模式

模式 输出 用例
aria MARIA可访问性树 结构化代理交互
compact 压缩JSON摘要 快速屏幕概述
mcp 完整语义状态 完整元数据访问
text 纯文本 简单查询
html 标准HTML 调试,人工审核

示例会话

Agent: moqui_browse_screens(path="PopCommerce/PopCommerceAdmin/Catalog/Product/FindProduct")

Server: {
  "summary": "20 products. Forms: NewProductForm. Actions: createProduct",
  "grids": {"ProductsForm": {"rowCount": 20, "columns": ["ID", "Name", "Type"]}},
  "actions": {"createProduct": {"service": "create#mantle.product.Product"}}
}

Agent: I need to create a new product with variants.
       moqui_browse_screens(
         path="PopCommerce/PopCommerceAdmin/Catalog/Product/FindProduct",
         action="createProduct",
         parameters={"productName": "Widget Pro", "productTypeEnumId": "PtVirtual"}
       )

Server: {
  "result": {"status": "executed", "productId": "100042"},
  "summary": "Product created. Navigate to EditProduct to add features."
}

入门指南

# Clone with submodules
git clone --recursive https://github.com/moqui/moqui-mcp

# Build and load demo data  
./gradlew load

# Start server
./gradlew run

# MCP endpoint: http://localhost:8080/mcp

MCP工具

工具 目的
moqui_browse_screens 浏览屏幕、执行操作、呈现内容
moqui_search_screens 按名称查找屏幕
moqui_get_screen_details 获取字段元数据,下拉选项

建筑

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   AI Agent      │────▶│   MCP Servlet    │────▶│  Moqui Screen   │
│                 │◀────│  (JSON-RPC 2.0)  │◀────│   Framework     │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                │
                        ┌───────┴───────┐
                        ▼               ▼
                ┌──────────────┐ ┌──────────────┐
                │    MARIA     │ │  Wiki Docs   │
                │  Transform   │ │  (Guidance)  │
                └──────────────┘ └──────────────┘
  • MCP Servlet:JSON-RPC 2.0协议、会话管理、身份验证
  • 屏幕框架:具有MCP输出模式的Moqui渲染引擎
  • 玛丽亚转型:将语义状态转换为可访问性树格式
  • Wiki文档:具有路径继承的屏幕特定说明

用例

自主操作

  • 采购代理与供应商目录谈判
  • 库存代理根据需求预测重新排序
  • 定价代理实时调整利润率

辅助工作流程

  • 具有完整订单历史访问权限的客户服务代理
  • 销售代理根据实时定价生成报价
  • 协调提货和发货的仓库代理

分析和报告

  • 财务代理查询实际与预算
  • 运营代理识别瓶颈
  • 合规代理审核交易跟踪

安全

生产部署应:

  • 为AI代理创建专用服务帐户
  • 使用Moqui工件授权来限制权限
  • 启用全面的审计日志记录
  • 在敏感操作中考虑人工参与
  • 从只读访问开始,逐步扩展

状态

这是一个积极的概念验证。工作:

  • 屏幕浏览和发现
  • 表单提交和动作执行
  • MARIA/紧凑/MCP渲染模式
  • 带有继承功能的Wiki文档
  • 工件安全集成

路线图:

  • 实体级查询(超出屏幕上下文)
  • 服务直接调用
  • 实时通知(ARIA实时区域)
  • 多智能体协调模式

贡献

欢迎捐款:

  • 测试覆盖率和边缘情况
  • 其他ARIA角色映射
  • 性能优化
  • 文件和示例
  • 其他MCP客户端的集成模式

许可证

CC0 1.0通用和专利许可授予下的公共领域,与Moqui框架一致。

链接