ERPNext MCP服务器
用于ERPNext REST API的MCP(模型上下文协议)服务器,使用 FastMCP 和Python。
特性
- 增删改查 --列出、获取、创建、更新、删除文档
- 工作流程 --提交和取消可提交文件
- 报告 --运行ERPNext查询报告
- 模式 --检查DocType字段定义,列出所有DocType
- 库存 --库存余额、存货分类账、物料价格
- 交易 --文档转换(例如报价单→ 销售订单),方余额
- 供应商/客户 --获取地址、电话、联系人的完整详细信息;支持别名搜索
- 文件 --上传、列出、下载文件
- 帮手 --链接搜索(自动补全)、文档计数、泛型方法调用
需求
- Python>=3.11
- 紫外线 (推荐)或pip
- 带有API密钥/机密的ERPNext实例
设置
# Clone the repo
git clone && cd erpnext-mcp
# Create .env file
cat > .env << 'EOF'
ERPNEXT_URL=https://your-erpnext-instance.com
ERPNEXT_API_KEY=your_api_key
ERPNEXT_API_SECRET=your_api_secret
EOF
# Install dependencies
uv sync跑
set -a && source .env && set +a && uv run erpnext-mcp可用工具
| 工具 | 说明 |
|---|---|
list_documents | 列出带有过滤器、排序和分页的文档 |
get_document | 按名称获取单个文档 |
create_document | 创建新文档 |
update_document | 更新现有文档 |
delete_document | 删除文档 |
submit_document | 提交可提交文件 |
cancel_document | 取消已提交的文档 |
run_report | 执行ERPNext报告 |
get_count | 使用可选筛选器获取文档计数 |
get_list_with_summary | 列出总计数的文档 |
run_method | 调用任何列入白名单的服务器端方法 |
search_link | 链接字段自动完成搜索 |
list_doctypes | 列出所有可用的DocType名称 |
get_doctype_meta | 获取DocType的字段定义 |
get_stock_balance | Bin实时库存余额 |
get_stock_ledger | 存货分类账条目(库存历史) |
get_item_price | 价目表中的商品价格 |
make_mapped_doc | 文档转换(例如SO→ DN) |
get_party_balance | 客户/供应商未清余额 |
get_supplier_details | 通过地址、电话、联系人获取供应商(支持别名搜索) |
get_customer_details | 通过地址、电话、联系人获取客户(支持别名搜索) |
upload_file | 将本地文件上传到ERPNext(按文件路径) |
upload_file_from_url | 从URL上传文件 |
list_files | 列出附加到文档的文件 |
download_file | 按URL下载文件 |
get_file_url | 获取文件的下载URL |
MCP客户端配置
添加到MCP客户端配置(例如Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"erpnext": {
"command": "uv",
"args": ["--directory", "/path/to/erpnext-mcp", "run", "erpnext-mcp"],
"env": {
"ERPNEXT_URL": "https://your-erpnext-instance.com",
"ERPNEXT_API_KEY": "your_api_key",
"ERPNEXT_API_SECRET": "your_api_secret"
}
}
}
}项目结构
src/erpnext_mcp/
├── server.py # MCP tool definitions (FastMCP)
├── client.py # ERPNext REST API client (httpx async)
└── types.py # Pydantic models许可证
麻省理工学院
