跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

基于 FastAPI 自动构建 SSE MCP 服务器

基于 FastAPI 和 fastapi-mcp 库构建支持 SSE 协议的 MCP 服务器,实现大模型与外部系统的实时交互。通过 Weather API 示例演示如何将 FastAPI 端点自动转换为 MCP 工具,并使用 mcp inspector 或 mcp-proxy 进行调试连接。该方案利用 FastAPI 异步特性处理高并发,保留高效开发体验的同时实现与大模型的无缝对接,便于将企业现有能力转化为标准化服务。

并发大师发布于 2026/2/7更新于 2026/5/236.6K 浏览
基于 FastAPI 自动构建 SSE MCP 服务器

今天我们将使用 FastAPI 来构建 MCP 服务器。Anthropic 推出的这个 MCP 协议,目的是让 AI 代理和你的应用程序之间的对话变得更顺畅、更清晰。FastAPI 基于 Starlette 和 Uvicorn,采用异步编程模型,可轻松处理高并发请求,尤其适合 MCP 场景下大模型与外部系统的实时交互需求,其性能接近 Node.js 和 Go,在数据库查询、文件操作等 I/O 密集型任务中表现卓越。

文章配图

FastAPI 基础知识

安装依赖
pip install uvicorn fastapi
FastAPI 服务代码示例
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"data": "Hello MCP!"}
uvicorn 启动 server
uvicorn server:app --reload

接下来,我们将基于 FastAPI 来开发 MCP 服务器。

文章配图

FastAPI 开发 MCP Server

fastapi-mcp 是一个零配置工具,用于自动将 FastAPI 端点暴露为模型上下文协议(MCP)工具。其特点在于简洁性和高效性,以下是一些主要特点:

  • 直接集成:不需要复杂的设置,直接集成到 FastAPI 应用中。
  • 自动转换:无需手动编写代码,自动将 FastAPI 端点转换为 MCP 工具。
  • 灵活性:支持自定义 MCP 工具,与自动生成的工具一同使用。
  • 性能:基于 Python 3.10+ 和 FastAPI,保证了高性能的 API 服务。
  • 文档友好:保持了原有的 API 文档,方便开发者使用和理解。
安装依赖
pip install fastapi-mcp
MCP 服务代码示例
 fastapi  FastAPI
 fastapi_mcp  add_mcp_server
 typing  
 httpx


NWS_API_BASE = 
USER_AGENT = 

app = FastAPI()

mcp_server = add_mcp_server(
    app,
    mount_path=,
    name=,
    describe_all_responses=,
    describe_full_response_schema=,
)

  () -> [, ] | :
    
    headers = {
        : USER_AGENT,
        : 
    }
      httpx.AsyncClient()  client:
        :
            response =  client.get(url, headers=headers, timeout=)
            response.raise_for_status()
             response.json()
         Exception:
             


  () -> :
    
    points_url = 
    points_data =  make_nws_request(points_url)
      points_data:
         
    
    forecast_url = points_data[][]
    forecast_data =  make_nws_request(forecast_url)
      forecast_data:
         
    
    periods = forecast_data[][]
    forecasts = []
     period  periods[:]:
        forecast = 
        forecasts.append(forecast)
     .join(forecasts)
from
import
from
import
from
import
Any
import
# 常量
"https://api.weather.gov"
"weather-app/1.0"
"/mcp"
"Weather MCP Server"
True
True
async
def
make_nws_request
url: str
dict
str
Any
None
"""向 NWS API 发起请求,并进行错误处理。"""
"User-Agent"
"Accept"
"application/geo+json"
async
with
as
try
await
30.0
return
except
return
None
@mcp_server.tool()
async
def
get_forecast
latitude: float, longitude: float
str
"""获取地点的天气预报。 参数: latitude: 地点的纬度 longitude: 地点的经度 """
f"{NWS_API_BASE}/points/{latitude},{longitude}"
await
if
not
return
"Unable to fetch forecast data for this location."
"properties"
"forecast"
await
if
not
return
"Unable to detailed forecast."
"properties"
"periods"
for
in
5
f""" {period['name']}: Temperature: {period['temperature']}°{period['temperatureUnit']} Wind: {period['windSpeed']} {period['windDirection']} Forecast: {period['detailedForecast']} """
return
"\n---\n"
启动 mcp server
uvicorn server:app --host 0.0.0.0 --port 8001 --reload

文章配图

启动 mcp inspector 调试
CLIENT_PORT=8081 SERVER_PORT=8082 npx -y @modelcontextprotocol/inspector

文章配图

当集成了 MCP 的 FastAPI 应用运行起来后,可以用任何支持 SSE 的 MCP 客户端连接它。我们这里还是使用 mcp inspector 进行调试,通过 SSE 连接 Weather MCP 服务器。

SSE 是一种单向通信的模式,所以它需要配合 HTTP Post 来实现客户端与服务端的双向通信。严格的说,这是一种 HTTP Post(客户端->服务端) + HTTP SSE(服务端->客户端)的伪双工通信模式,区别于 WebSocket 双向通信。

文章配图

如果 MCP 客户端不支持 SSE,可以使用 mcp-proxy 连接 MCP 服务器。本质上是本地通过 stdio 连接到 mcp-proxy,再由 mcp-proxy 通过 SSE 连接到 MCP Server 上。

mcp-proxy 支持两种模式,stdio to SSE 和 SSE to stdio。

文章配图

安装 mcp-proxy

uv tool install mcp-proxy

配置 claude_desktop_config.json

{
  "mcpServers": {
    "weather-api-mcp-proxy": {
      "command": "mcp-proxy",
      "args": ["http://127.0.0.1:8001/mcp"]
    }
  }
}

fastapi-mcp 目前还有很多功能不完善,我们将持续关注进展。后续版本将优化自动挂载的功能,并基于现有 fastapi base_url 将 api 挂载至 mcp_server。

大模型基建工程总结

FastAPI 构建 MCP 服务器的核心价值在于:通过类型安全的异步接口,将企业现有能力快速转化为大模型可调用的标准化服务。这种架构既保留了 FastAPI 的高效开发体验,又通过 MCP 协议实现了与前沿 AI 技术的无缝对接,同时结合 Docker 和 Kubernetes 实现弹性伸缩部署,可以快速应对大模型调用量的突发增长,是构建下一代智能系统的理想选择。

目录

  1. FastAPI 基础知识
  2. 安装依赖
  3. FastAPI 服务代码示例
  4. uvicorn 启动 server
  5. FastAPI 开发 MCP Server
  6. 安装依赖
  7. MCP 服务代码示例
  8. 常量
  9. 启动 mcp server
  10. 启动 mcp inspector 调试
  11. 大模型基建工程总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 FastAPI 自动构建 SSE MCP 服务器
  • Spring Web MVC 核心概念与实战指南
  • ROS 导航:基于 mpc_local_planner 的高效避障与参数调优
  • 通义万相 2.1 模型特性与高性能部署实践
  • Linux 多线程:线程创建、等待与终止详解
  • 本地 AI 小说生成器部署与配置指南
  • 大模型降低 AIGC 率指令实战指南:从原理到最佳实践
  • 自动化验证码识别系统构建:图像处理与 OCR 实战
  • 微信接入 OpenClaw:ClawBot 插件使用指南与限制说明
  • 预训练语言模型与 BERT 实战应用详解
  • 腾讯混元大模型 AIGC 系列产品深度体验
  • Java 并发三大特性:原子性、可见性与有序性详解
  • 使用 Higress 将 REST API 转换为 MCP Server
  • OpenClaw 架构解析:从认知到行动的 AI 智能体实现
  • Undertow 高危漏洞 CVE-2025-12543 应急响应与企业防护策略
  • 使用Selenium构建免费Web搜索API服务
  • Spatial Joy 2025 全球 AR&AI 赛事:资源、玩法与避坑指南
  • ESLint 从原理到实践:构建高质量 JS/TS 代码
  • Spatial Joy 2025 AR&AI 赛事:开发者资源、玩法与避坑指南
  • 9 款主流 AI Agent 产品横评:部署成本与场景选择指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online