3.5 发布 MCP 服务指南
除了将服务以 FastAPI 方式发布为 API,您还可以将服务发布为 MCP(Model Context Protocol)服务,供大模型(LLM)等智能体直接调用。以下为详细操作步骤与注意事项。
一、准备 FastAPI + MCP 服务
以 FastAPI 为例,集成 fastapi_mcp 并编写服务代码(如 main.py):
from typing import Union
from fastapi import FastAPI
from datetime import datetime
from fastapi_mcp import FastApiMCP
app = FastAPI()
@app.get("/")
def say_hello():
return {"Hello": "World from FastApi MCP!"}
@app.get("/current_time", tags=["mcp"])
def get_current_time():
"""获取当前服务器时间"""
return {"current_time": datetime.now().isoformat()}
@app.post("/report/{uuid}", tags=["mcp"])
def fetch_report(uuid: str):
"""根据 UUID 获取报告"""
return {"report_uuid": uuid, "status": "Report fetched successfully"}
# 创建并挂载 MCP 服务器
mcp = FastApiMCP(
app,
name="My API MCP",
description="MCP server for my FastAPI app",
include_tags=["mcp"], # 仅将带有 "mcp" 标签的接口暴露为 MCP 服务
)
# 使用 HTTP协议
mcp.mount_http()
注意:
- 仅
include_tags指定的接口会被暴露为 MCP 服务,建议为对外开放的接口添加tags=["mcp"]。- 请确保已在
requirements.txt中添加fastapi_mcp依赖。
二、本地测试
在终端运行,确保服务可正常启动:
uvicorn main:app
如遇依赖缺失或端口占用,请根据提示修复。
三、发布为 MCP 服务
- 在 Studio 中选中
main.py文件。 - 点击右上角“发布”按钮,按提示完成发布。
- 发布流程与 3.4 发布 API 服务指南 相同。
四、获取与访问 MCP 服务
-
发布完成后,可在服务页面详情页查看访问地址,例如:
- API 访问地址:
https://studio.xm-opt.com/open-api-service-x-xxx-xxxxx/
ps: MCP访问地址:
https://studio.xm-opt.com/open-api-service-x-xxx-xxxxx/mcp - API 访问地址:
-
MCP 地址可直接在浏 览器或大模型平台中调用。
-
日志查看 你可以在服务页面详情页面的“日志”部分,查看到当前服务的所有日志输出。 日志的查看,可以通过手动选择时间,查询指定时间的日志。也可以点击“实时”,查看实时日志输出。

五、常见问题与建议
- 接口暴露:仅带有
tags=["mcp"]的接口会被 MCP 服务识别和暴露。 - 依赖管理:请确保
requirements.txt中包含fastapi_mcp及所有依赖,平台会自动安装。 - 安全性:请勿暴露敏感接口,正式环境前务必充分测试。
- API 文档:MCP 服务自动生成接口文档,便于 LLM 等智能体调用。
六、参考与支持
如需详细操作说明,请参考 3.4 发布 API 服务指南 或访问 XMO Studio 官方文档。如有疑问,欢迎联系技术支持。