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) 作为默认的通信协议,简化部署和集成。
安装步骤
-
克隆仓库:
git clone https://github.com/itsAnanth/frappe-mcp-python cd frappe-mcp-python -
安装依赖: 确保已安装 'uv' 包管理器 (可以使用 'pip install uv' 安装)。然后运行:
uv sync -
配置环境变量: 复制 '.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': 服务器主程序脚本文件名。
基本使用方法
-
启动服务器: 在项目根目录下,运行以下命令启动 MCP 服务器:
uv run main2.py或者,您可以使用开发模式启动服务器,方便调试:
mcp dev main2.py -
运行 MCP 客户端: 打开您的 MCP 客户端(例如配置了 'frappe-mcp-server' 的 Claude Desktop),客户端将尝试连接到服务器。
-
使用客户端与服务器交互: 在 MCP 客户端中,您可以向 LLM 提出问题,LLM 可以调用服务器提供的工具来获取 Frappe 数据或执行数据库查询,并将结果作为上下文信息返回给 LLM,从而实现更智能的交互。
例如,在 'client.py' 中,您可以运行客户端示例:
python client.py main2.py这将启动一个简单的命令行聊天界面,您可以输入查询,客户端会将查询发送给 LLM,并利用 MCP 服务器提供的工具进行处理。
注意:
- 确保您已正确配置 '.env' 文件中的环境变量,特别是 Frappe API URL 和数据库连接信息。
- 客户端配置文件中的路径 ('args' 中的 '--directory') 必须替换为您的实际项目路径。
- 此服务器实现主要关注工具的注册和调用,以及与 Frappe 和数据库的集成。Prompt 模板的定义和渲染可能需要根据具体的 LLM 客户端和应用场景进行配置。
信息
分类
数据库与文件