跳到主要内容

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 服务

  1. 在 Studio 中选中 main.py 文件。
  2. 点击右上角“发布”按钮,按提示完成发布。
  3. 发布流程与 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

  • MCP 地址可直接在浏览器或大模型平台中调用。

  • 日志查看 你可以在服务页面详情页面的“日志”部分,查看到当前服务的所有日志输出。 日志的查看,可以通过手动选择时间,查询指定时间的日志。也可以点击“实时”,查看实时日志输出。 服务信息图

五、常见问题与建议

  • 接口暴露:仅带有 tags=["mcp"] 的接口会被 MCP 服务识别和暴露。
  • 依赖管理:请确保 requirements.txt 中包含 fastapi_mcp 及所有依赖,平台会自动安装。
  • 安全性:请勿暴露敏感接口,正式环境前务必充分测试。
  • API 文档:MCP 服务自动生成接口文档,便于 LLM 等智能体调用。

六、参考与支持

如需详细操作说明,请参考 3.4 发布 API 服务指南 或访问 XMO Studio 官方文档。如有疑问,欢迎联系技术支持。