返回市场
企业资源计划MCP服务器

企业资源计划MCP服务器

作者:ManotLuijiu4 星标更新:2025-07-10

项目介绍

Frappe/ERPNext 上的标准 MCP 开发

ERPNext MCP 服务器

ERPNext 管理、文件操作、只读数据库访问以及 ERPNext API 集成。

从开发到生产的流程

本指南旨在为在 Frappe/ERPNext 上开发模型上下文协议(MCP)服务器建立标准化方法,灵感来源于 Doppio 单页应用(SPA)开发工作流。

开发模式(端口 8080)

  • 实时开发环境,支持热重载
  • 直接调试和测试
  • 清晰地与生产环境分离

生产模式(端口 8100)

  • 与 NGINX 和 supervisor 集成
  • 安全且可扩展
  • 遵循 Frappe 的既定模式

设置开发环境

1. 安装框架

在你的应用的 hooks.py 中添加 MCP 开发框架:

# 在你的应用的 hooks.py 中
commands = [
    "your_app.mcp_dev.commands"
]

2. 初始化开发环境

# 初始化开发环境
bench --site your-site.com mcp-config --app your_app_name

# 配置开发端口(默认:8080)
bench --site your-site.com m
cp-config --dev-port 8080

# 配置生产端口(默认:8100)
bench --site your-site.com mcp-config --prod-port 8100

3. 启动开发服务器

# 启动开发服务器
bench --site your-site.com mcp-dev

这将会:

  • 在端口 8080 启动你的 MCP 服务器
  • 监视文件变化并自动重载
  • 将日志流输出到控制台

从开发到生产的流程

1. 在端口 8080 上开发

在开发期间:

  • 你的 MCP 服务器运行在端口 8080
  • 对 Python 文件的更改会触发自动重载
  • 可以实时进行调试和测试

2. 构建用于生产

准备部署时:

# 构建用于生产
bench --site your-site.com mcp-build

这将会:

  • 配置 NGINX 以便在端口 8100 下通过 /mcp/ 提供你的 MCP 服务器
  • 设置 supervisor 来保持你的 MCP 服务器运行
  • 准备所有必要的配置文件

3. 部署到生产

# 部署到生产
bench --site your-site.com mcp-deploy --reload-nginx --restart-supervisor

这将会:

  • 应用 NGINX 配置
  • 在 supervisor 下启动 MCP 服务器
  • 使其在 https://your-site.com/mcp/ 可用

配置管理

框架提供了一个配置系统来管理你的 MCP 开发环境:

# 查看当前配置
bench --site your-site.com mcp-config

# 更新入口点
bench --site your-site.com mcp-config --entry-point "your_app.mcp_server:server"

# 添加监视路径
bench --site your-site.com mcp-config --add-watch "apps/your_app/your_app/mcp/*.py"

# 设置环境变量
bench --site your-site.com mcp-config --set-env "DEBUG" "true"

标准化方法的好处

  1. 开发-生产一致性

    • 同一段代码在两个环境中运行
    • 部署时没有意外
  2. 开发者体验

    • 开发期间支持热重载
    • 关注点清晰分离
    • 统一的配置管理
  3. 生产健壮性

    • 正确集成 NGINX
    • supervisor 管理进程生命周期
    • 遵循标准的 Frappe 部署模式
  4. 团队协作

    • 一致的开发方法
    • 标准命令和工作流
    • 新开发者易于上手

最佳实践

1. 结构化你的 MCP 服务器

组织你的 MCP 服务器代码,确保关注点清晰分离:

your_app/
├── your_app/
│   ├── mcp_server.py       # 主服务器入口点
│   ├── mcp/
│   │   ├── __init__.py     # 包初始化
│   │   ├── tools/          # MCP 工具实现
│   │   ├── resources/      # MCP 资源实现
│   │   └── prompts/        # MCP 提示实现
│   └── mcp_dev.py          # 开发框架

2. 版本控制

  • 将开发配置包含在版本控制中
  • 排除特定于环境的设置
  • 文档所需的环境变量

3. 测试

  • 创建针对 MCP 功能的具体测试
  • 使用单元测试和集成测试
  • 在开发和生产模式下进行测试

4. 文档

  • 文档你的 MCP 服务器的功能
  • 创建使用你的工具和资源的例子
  • 包括开发和生产设置说明

高级主题

1. 多个 MCP 服务器

对于大型应用,你可能需要多个 MCP 服务器:

# 配置多个入口点
bench --site your-site.com mcp-config --entry-point "your_app.mcp_server_1:server"
bench --site your-site.com mcp-config --dev-port 8081

# 启动特定服务器
bench --site your-site.com mcp-dev --port 8081

2. 安全考虑

  • 在生产中使用适当的认证
  • 考虑对面向公众的服务器进行速率限制
  • 实现适当的错误处理和日志记录

3. 性能优化

  • 分析你的 MCP 工具以发现性能瓶颈
  • 考虑缓存频繁访问的数据
  • 对于 I/O 绑定的任务使用异步操作

通过遵循这种标准化方法,你可以开发出适用于 Frappe/ERPNext 的健壮、可维护且遵循熟悉模式的 MCP 服务器。

许可证

mit