Frappe MCP Server (Python)

项目简介

Frappe MCP Server (Python) 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型 (LLM) 应用提供与 Frappe 框架和数据库交互的能力。通过注册和执行工具,该服务器允许 LLM 客户端安全地访问 Frappe 系统中的文档数据和执行数据库查询,从而扩展 LLM 的上下文理解和功能范围。

主要功能点

  • 工具化数据访问: 提供预定义的工具,使 LLM 能够从 Frappe 知识库中检索文档信息,以及执行只读的数据库查询。
  • Frappe 框架集成: 无缝连接 Frappe 框架,允许 LLM 应用利用 Frappe 平台上的业务数据和功能。
  • 数据库查询能力: 集成数据库客户端,支持 LLM 安全地执行预定义的 SQL 查询,获取结构化数据。
  • MCP 协议支持: 完全遵循 MCP 协议规范,确保与兼容 MCP 客户端的互操作性。
  • 易于扩展的工具注册: 允许开发者轻松注册新的工具,扩展服务器的功能。
  • Stdio 传输协议: 使用标准输入/输出 (Stdio) 作为默认的通信协议,简化部署和集成。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/itsAnanth/frappe-mcp-python
    cd frappe-mcp-python
  2. 安装依赖: 确保已安装 'uv' 包管理器 (可以使用 'pip install uv' 安装)。然后运行:

    uv sync
  3. 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',根据您的 Frappe 和数据库环境配置以下环境变量:

    API_URL=your_frappe_api_url  # Frappe API URL,例如 https://your-frappe-site.com
    MCP_API_KEY=your_mcp_api_key    # Frappe MCP API Key (用于API密钥认证)
    MCP_API_SECRET=your_mcp_api_secret # Frappe MCP API Secret (用于API密钥认证)
    DB_HOST=your_db_host         # 数据库主机地址
    DB_USER=your_db_user         # 数据库用户名
    DB_PASS=your_db_password       # 数据库密码
    DB_DATABASE=your_db_database     # 数据库名称

    请将 'your_frappe_api_url'、'your_mcp_api_key'、'your_mcp_api_secret'、'your_db_host'、'your_db_user'、'your_db_password' 和 'your_db_database' 替换为您的实际配置信息。

服务器配置

为了让 MCP 客户端(例如 Claude)连接到此服务器,您需要配置客户端的 MCP 服务器设置。以 Claude Desktop 为例,您需要编辑配置文件 'claude_desktop_config.json'(通常位于 '%appdata%/claude/' 目录下),添加以下服务器配置信息。请注意,您需要将 'D:\internship\frappe-mcp-python' 替换为您实际的项目路径。

{
  "mcpServers": {
    "frappe-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "D:\\internship\\frappe-mcp-python",  // 【请替换为您的项目实际路径】
        "run",
        "main2.py"
      ]
    }
  }
}
  • server name: 'frappe-mcp-server' - 服务器名称,客户端用此名称引用。
  • command: 'uv' - 用于启动服务器的命令,这里使用 'uv run' 运行 Python 脚本。
  • args: 启动参数列表:
    • '--directory': 'D:\internship\frappe-mcp-python' - 【必须替换】指定服务器脚本所在的目录。请务必将其替换为 'frappe-mcp-python' 仓库在您本地文件系统中的实际路径。
    • 'run': 'uv' 命令的子命令,用于运行脚本。
    • 'main2.py': 服务器主程序脚本文件名。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行以下命令启动 MCP 服务器:

    uv run main2.py

    或者,您可以使用开发模式启动服务器,方便调试:

    mcp dev main2.py
  2. 运行 MCP 客户端: 打开您的 MCP 客户端(例如配置了 'frappe-mcp-server' 的 Claude Desktop),客户端将尝试连接到服务器。

  3. 使用客户端与服务器交互: 在 MCP 客户端中,您可以向 LLM 提出问题,LLM 可以调用服务器提供的工具来获取 Frappe 数据或执行数据库查询,并将结果作为上下文信息返回给 LLM,从而实现更智能的交互。

    例如,在 'client.py' 中,您可以运行客户端示例:

    python client.py main2.py

    这将启动一个简单的命令行聊天界面,您可以输入查询,客户端会将查询发送给 LLM,并利用 MCP 服务器提供的工具进行处理。

注意:

  • 确保您已正确配置 '.env' 文件中的环境变量,特别是 Frappe API URL 和数据库连接信息。
  • 客户端配置文件中的路径 ('args' 中的 '--directory') 必须替换为您的实际项目路径。
  • 此服务器实现主要关注工具的注册和调用,以及与 Frappe 和数据库的集成。Prompt 模板的定义和渲染可能需要根据具体的 LLM 客户端和应用场景进行配置。

信息

分类

数据库与文件