项目简介

该项目是一个基于 Model Context Protocol (MCP) 实现的后端服务,专为连接大型语言模型 (LLM) 客户端与 ERPNext 系统设计。它作为一个桥梁,使 AI 能够以结构化的方式访问 ERPNext 的数据和功能,从而实现自动化操作、数据分析和智能交互。

主要功能点

  • ERPNext 文档操作: 支持对 ERPNext 中各种 DocType(如客户、销售发票、物料等)进行读取、列出(带过滤)、创建、更新和删除操作。
  • 数据库查询: 提供执行只读 SQL 查询的能力,用于获取 ERPNext 数据库中的自定义数据。
  • 报表生成: 能够运行 ERPNext 标准报表,并返回报表结果,支持应用过滤器。
  • 文件系统交互: 允许列出 ERPNext 站点目录下的文件和文件夹,并读取文件内容(支持文本和二进制文件)。
  • 系统信息与元数据: 提供获取 ERPNext 系统版本、已安装应用、站点名称、用户会话信息以及 DocType 列表和字段信息的功能。
  • 翻译工具集成: 提供获取和搜索翻译条目的功能,并能获取翻译统计信息(依赖 'translation_tools' 应用)。
  • 泰语财税计算与查询: 特色功能,包含简化的泰语个人所得税和企业所得税计算工具,以及通过资源访问泰语税法信息(可能依赖自定义 DocType 和外部服务)。
  • 智能分析 Prompt 模板: 内置用于生成 LLM Prompt 的模板,例如对销售发票、客户、库存和财务数据的分析。
  • 资源访问: 通过 MCP 资源端点提供结构化的数据访问,如可用 DocType 列表、待处理工作流动作、系统设置以及泰语税法信息等。

安装步骤

  1. 准备 Frappe/ERPNext 环境: 确保您已正确安装并配置了 Frappe Framework 和 ERPNext 应用。
  2. 安装 MCP 服务器应用: 将此应用添加到您的 Frappe bench 中。可以通过 Git Clone 或其他 Frappe 应用安装方式。
    # 在您的 Frappe bench 目录下执行
    bench get-app https://github.com/ManotLuijiu/erpnext_mcp_server.git
    bench install-app erpnext_mcp_server your_site_name
    bench migrate --site your_site_name
  3. 配置和启动服务器: 安装应用后,您可以在 ERPNext 后台中找到“MCP Server Settings” DocType 进行配置。启用设置并选择传输协议(如 Stdio 或 SSE)后,应用应能自动启动 MCP 服务器进程。

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何连接到这个服务器进程。典型的配置方式是指定启动服务器进程的命令和参数。

  • 服务器名称 (server name): "ERPNext MCP Server"
  • 启动命令 (command): 用于运行 Python 脚本的命令,通常是 'python3' 或 'python' 的绝对路径。
  • 参数列表 (args): 需要传递给命令的参数,至少应包含服务器脚本的路径。例如,可以是 '["path/to/your/bench/apps/erpnext_mcp_server/erpnext_mcp_server/mcp/server.py"]'。
  • 环境配置: 客户端可能需要在启动服务器进程时设置环境变量,例如 'FRAPPE_SITE' 指向您的 Frappe 站点名称,以及 'MCP_TRANSPORT' 指定客户端希望使用的传输协议(如 'stdio' 或 'sse')。

请注意,具体的路径取决于您的 Frappe bench 安装位置。您可能需要在 Frappe 环境中确定正确的 'python' 可执行文件路径和 'server.py' 脚本路径。

基本使用方法

一旦 MCP 服务器作为 Frappe 应用的一部分成功启动并运行,您可以使用任何支持 Model Context Protocol (MCP) 的 LLM 客户端连接到它。客户端通过配置中提供的命令启动服务器进程,并通过标准输入/输出 (Stdio) 或服务器发送事件 (SSE) 传输协议进行通信。客户端连接后,将能够发现服务器提供的所有工具、资源和 Prompt 模板,并开始与 ERPNext 系统进行交互。

例如,一个客户端可以通过调用 'get_document' 工具来获取特定的 ERPNext 文档,或者通过访问 'resource://erp/doctypes' 资源来获取 DocType 列表。客户端也可以利用内置的 Prompt 模板来引导 LLM 分析 ERPNext 数据。

信息

分类

商业系统