ERPNext API中间件

ERPNext MCP Server是一个中间件,将ERPNext/Frappe API功能封装为Python工具,简化与ERPNext系统的交互。

  • by mkhoa
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mkhoa/erpnext-mcp-server

使用说明

ERPNext MCP服务器

该项目提供了一个充当中间件的服务器,将ERPNext/Frappe API功能作为模型上下文协议(MCP)客户端的工具进行公开。它通过将常见的API调用封装到易于使用的Python函数中,简化了与ERPNext的交互。

概述

该项目的核心是 FrappeClient 班级位于 src/utils/frappeclient.py此客户端处理与Frappe/ERPNext实例的身份验证和通信。新功能可以很容易地作为方法添加到这个类中,然后在MCP服务器中注册为工具。

特性

这 FrappeClient 提供了各种ERPNext操作的方法,包括:

  • 文件管理:
    • get_list(doctype, ...):获取文档列表。
    • get_doc(doctype, name, ...):获取单个文档。
    • insert(doc):创建新文档。
    • update(doc):更新现有文档。
    • delete(doctype, name):删除文档。
  • 特定业务查询(MCP工具):
    • get_customer_code(customer_name):按客户名称查找客户代码。
    • get_item_code(item_query):按名称或描述查找项目代码。
    • get_stock_balance(item_code):查询特定物料的库存余额。
    • get_customer_outstanding_balance(customer_code):查询客户的应收账款余额。
  • 其他公用设施:
    • get_pdf(doctype, name, ...):下载PDF格式的文档。
    • rename_doc(doctype, old_name, new_name):重命名文档。

设置和配置

  1. 克隆存储库:

    git clone <repository-url>
    cd erpnext-mcp-server
    
  2. 创建虚拟环境: 建议使用虚拟环境来管理项目依赖关系。

    # For Unix/macOS
    python3 -m venv .venv
    source .venv/bin/activate
    
    # For Windows
    python -m venv .venv
    .venv\Scripts\activate
    
  3. 安装依赖项: 此项目使用 uv 用于依赖关系管理,其中定义了依赖关系 pyproject.toml.

    这 mcp dev 下一步中的命令将处理从以下位置自动创建环境和安装依赖项 pyproject.toml.

  4. 配置环境变量: 创建一个 .env 项目目录根目录中的文件。此文件将存储ERPNext实例的凭据。向其中添加以下变量:

    FRAPPE_URL=https://your-erpnext-site.com
    FRAPPE_API_KEY=your_api_key
    FRAPPE_API_SECRET=your_api_secret
    

    您可以在ERPNext实例中生成API密钥,方法是导航到 User Menu > My Settings > API Access.

用法

配置您的 .env 文件,您可以在开发模式下运行MCP服务器。这将启动服务器并将其连接到MCP检查器,MCP检查器提供了一个与服务器交互的UI。

  1. 运行服务器: 确保您的虚拟环境已激活。从项目的根目录中,执行以下命令:

    uv run mcp dev main.py
    
  2. 与MCP检查员互动: 此命令将在您的web浏览器中启动MCP检查器。您可以使用它向服务器发送请求、查看工具定义和调试实现。当您更改源代码时,服务器将自动重新加载。