FastMCP + REST API实战:让AI一键调用企业ERP、CRM和第三方系统

📅 2026/7/16 21:11:40 👁️ 阅读次数 📝 编程学习
FastMCP + REST API实战:让AI一键调用企业ERP、CRM和第三方系统

关键词:FastMCP、REST API、MCP、Python、ERP、CRM、AI Agent、Claude Desktop、Cursor、企业数字化

如今,大多数企业都已经拥有自己的业务系统,例如:

  • ERP(企业资源计划)

  • CRM(客户关系管理)

  • OA(办公自动化)

  • MES(制造执行系统)

  • WMS(仓储管理系统)

  • 财务系统

  • 人力资源系统

这些系统几乎都提供了REST API,但普通员工并不会直接调用API。

例如,销售人员可能只是想问一句:

"今天新增了多少客户?"

或者:

"帮我查询订单A20260716001的状态。"

过去,这些需求通常需要登录系统、查找菜单,甚至编写接口调用代码。

而借助FastMCP + REST API,AI可以直接调用企业系统,实现真正意义上的自然语言操作业务系统

本文将通过一个完整案例,讲解如何将REST API快速封装为MCP Tool,并接入Claude、Cursor等支持MCP的AI客户端。


一、为什么REST API是企业AI最重要的入口?

目前,绝大多数企业系统都支持REST API。

例如:

ERP │ ├── GET /orders ├── POST /orders ├── GET /inventory └── PUT /inventory

CRM:

CRM │ ├── GET /customer ├── GET /customer/{id} ├── POST /customer └── PUT /customer

AI并不需要直接访问数据库。

真正推荐的架构应该是:

Claude / Cursor ↓ FastMCP ↓ REST API ↓ ERP / CRM ↓ 数据库

这样不仅安全,而且不会影响企业现有系统架构。


二、准备开发环境

安装FastMCP:

pip install mcp

安装HTTP请求库:

pip install requests

如果需要异步调用:

pip install httpx

在高并发场景下,更推荐使用httpx配合异步请求,以提升整体性能。


三、假设ERP提供了订单接口

例如:

GET /api/orders/10001

返回:

{ "id":10001, "customer":"张三", "status":"已发货", "amount":3560 }

以前。

开发者需要:

requests.get(...)

现在。

只需要封装成:

MCP Tool。


四、封装第一个REST Tool

例如:

from mcp.server.fastmcp import FastMCP import requests app = FastMCP("ERP") @app.tool() def query_order(order_id: int): """ 查询订单信息 """ url = f"https://erp.company.com/api/orders/{order_id}" response = requests.get(url) return response.json()

就是这么简单。

AI以后:

可以直接:

调用:

query_order()

五、Claude如何调用?

例如:

用户输入:

查询10001订单。

后台:

LLM ↓ 发现: query_order() ↓ HTTP GET ↓ ERP ↓ JSON ↓ AI整理回复

最终:

AI回答:

订单10001已发货,客户张三,订单金额3560元。

整个过程无需用户了解API地址或参数。


六、再开发一个CRM接口

例如:

@app.tool() def query_customer(customer_id:int): response=requests.get( f"https://crm.company.com/customer/{customer_id}" ) return response.json()

用户:

查询10086客户。

AI:

自动调用:

query_customer()

无需:

人工指定。


七、创建订单接口

不仅可以查询。

还可以:

创建。

例如:

ERP:

POST /orders

Python:

@app.tool() def create_order(customer_id:int,amount:float): ... return response.json()

以后。

用户:

给客户10086创建一张500元订单。

后台:

LLM ↓ create_order() ↓ POST ↓ ERP ↓ 成功

真正实现:

AI办公。

建议:对于创建、修改、删除等写操作,建议增加人工确认机制,例如要求AI先生成待执行内容,待用户确认后再真正调用Tool。


八、为什么不要让AI自己拼URL?

很多新人会这样设计:

@app.tool() def request(url):

然后:

AI:

自己:

拼接。

URL。

这种设计:

风险极大。

例如:

/admin/delete /admin/config /internal

都有可能:

被访问。

推荐:

固定:

接口。

例如:

query_customer() query_order() query_stock() query_sales()

而不是开放一个万能HTTP请求工具。


九、接口认证如何处理?

企业REST API通常需要认证,例如:

Authorization: Bearer xxxxxxxxx

不要让AI生成Token。

推荐:

服务器统一管理:

headers = { "Authorization": "Bearer " + TOKEN }

Token应保存在环境变量、配置中心或密钥管理服务中,而不是硬编码到代码里。

这样:

AI:

永远不知道:

Token。


十、统一封装HTTP客户端

如果每个Tool都写:

requests.get(...)

项目会越来越乱。

建议:

services/ ↓ erp_client.py ↓ crm_client.py

例如:

class ERPClient: def query_order(): ... def create_order(): ... def query_stock(): ...

Tool:

只负责:

调用。

@app.tool() def query_order(id): return erp.query_order(id)

企业项目:

都这样:

分层。


十一、多个系统如何统一管理?

例如:

企业:

有:

ERP CRM OA HR MES

FastMCP:

可以:

统一:

暴露。

ERP Tool CRM Tool OA Tool HR Tool

AI:

统一:

调用。

用户:

甚至不知道:

后台:

调用了:

几个系统。

例如:

帮我查询张三今天有没有请假,如果没有,请创建一个出差申请。

后台可能完成:

HR ↓ 查询请假 ↓ OA ↓ 创建审批 ↓ 返回成功

这就是AI Agent的价值。


十二、错误处理与重试

REST API不可避免会遇到超时、网络异常或服务不可用等问题。

建议在Tool中统一处理:

try: response = requests.get(url, timeout=5) response.raise_for_status() return response.json() except requests.Timeout: return { "success": False, "message": "请求超时,请稍后重试。" } except requests.RequestException as e: return { "success": False, "message": f"接口调用失败:{str(e)}" }

同时,可以根据业务需要增加有限次数的自动重试,避免因临时网络波动导致任务失败。


十三、企业级REST API最佳实践

实际项目中,建议遵循以下原则:

实践建议说明
工具职责单一一个Tool完成一个业务动作,例如查询订单或创建客户。
统一HTTP客户端所有API调用集中管理,便于维护认证、日志和重试。
参数校验检查必填项、数据类型和业务规则。
敏感信息保护Token、密钥使用环境变量或配置中心管理。
写操作需确认创建、修改、删除操作增加用户确认步骤。
日志审计记录接口调用、参数、耗时和结果,便于排查问题。

十四、一个完整的企业AI调用流程

假设用户输入:

帮我查询今天新增客户,并统计成交金额最高的前5位客户。

后台可能执行:

用户 ↓ Claude / Cursor ↓ FastMCP ↓ query_new_customers() ↓ CRM API ↓ query_top_sales() ↓ ERP API ↓ JSON数据 ↓ AI分析 ↓ 生成报表

整个过程中,AI并没有直接访问数据库,而是通过标准化的MCP Tool调用已有REST API,实现跨系统协同。


总结

对于绝大多数企业来说,接入AI并不意味着重构现有系统。

如果你的ERP、CRM、OA等业务系统已经提供REST API,那么只需通过FastMCP进行简单封装,就能让AI以自然语言调用这些能力。

推荐的架构如下:

Claude / Cursor ↓ FastMCP Tool ↓ ERP / CRM Client ↓ REST API ↓ 业务系统

这种方式具有几个明显优势:

  • 复用现有系统能力:无需改造数据库或业务逻辑。

  • 安全可控:认证、权限和日志都集中在服务端管理。

  • 易于扩展:新增一个API,通常只需增加一个Tool即可。

  • 适合企业级AI Agent:能够跨多个系统完成复杂业务流程。

对于希望构建企业AI助手的团队来说,FastMCP + REST API是一种兼顾开发效率、安全性和可维护性的实践方案。


本文知识点

✅ FastMCP封装REST API
✅ ERP、CRM接口接入
✅ GET与POST工具设计
✅ HTTP认证管理
✅ API客户端分层设计
✅ 异常处理与重试
✅ 企业级AI Agent架构