项目概述
FastMCP是一个用于构建Model Context Protocol(MCP)服务器的Python框架。该项目旨在简化MCP服务器的创建过程,让开发者能够通过简单的装饰器语法将资源和工具暴露给大型语言模型应用。
核心架构设计
模块化组件体系
FastMCP采用高度模块化的架构设计,包含以下核心组件:
- 服务器核心:FastMCP类作为应用的主入口点
- 工具管理:通过装饰器注册Python函数作为MCP工具
- 资源管理:提供静态和动态资源模板
- 认证系统:集成企业级OAuth认证提供商
- 客户端库:支持多种传输协议的MCP客户端
环境准备与安装部署
系统要求检查
在开始安装前,请确保您的系统满足以下要求:
- Python 3.7及以上版本
- pip包管理器
- 网络连接正常
安装步骤
- 使用uv工具安装FastMCP(推荐方式):
uv pip install fastmcp
- 验证安装成功:
python -c "import fastmcp; print('FastMCP安装成功!')"
- 传统pip安装方式:
pip install fastmcp
快速开始实战
创建第一个MCP服务器
创建一个名为my_server.py的文件,编写以下基础代码:
from fastmcp import FastMCP
# 创建MCP服务器实例
mcp = FastMCP("我的第一个MCP服务器")
# 添加工具函数
@mcp.tool
def 问候(name: str) -> str:
"""向指定用户发送问候"""
return f"你好,{name}!"
# 添加资源
@mcp.resource("配置://版本")
def 获取版本():
return "2.0.1"
if __name__ == "__main__":
mcp.run()
运行服务器
使用FastMCP CLI运行服务器:
fastmcp run my_server.py:mcp
或者直接运行Python文件:
python my_server.py
核心功能详解
工具定义与使用
工具允许LLM通过执行Python函数来执行操作。支持同步和异步函数:
@mcp.tool
def 计算器(a: float, b: float, 操作: str) -> float:
"""执行简单的数学计算"""
if 操作 == "加法":
return a + b
elif 操作 == "减法":
return a - b
elif 操作 == "乘法":
return a * b
else:
return a / b
资源与模板系统
资源用于暴露只读数据源,支持动态模板:
# 静态资源
@mcp.resource("用户://配置")
def 获取用户配置():
return {"主题": "深色", "语言": "中文"}
# 动态资源模板
@mcp.resource("用户://{用户ID}/资料")
def 获取用户资料(用户ID: int):
return {"姓名": f"用户{用户ID}", "状态": "活跃"}
上下文管理
在工具、资源或提示中访问MCP会话功能:
from fastmcp import FastMCP, Context
mcp = FastMCP("我的MCP服务器")
@mcp.tool
async def 处理数据(uri: str, ctx: Context):
# 向客户端记录信息
await ctx.info(f"正在处理 {uri}...")
# 从服务器读取资源
data = await ctx.read_resource(uri)
# 请求客户端LLM总结数据
summary = await ctx.sample(f"总结: {data.content[:500]}")
return summary.text
企业级认证集成
内置OAuth提供商支持
FastMCP提供全面的企业级认证支持:
- Google认证
- GitHub认证
- Microsoft Azure认证
- Auth0认证
- WorkOS认证
- JWT/自定义认证
- API密钥认证
保护服务器的示例:
from fastmcp.server.auth.providers.google import GoogleProvider
auth = GoogleProvider(client_id="...", client_secret="...", base_url="https://myserver.com")
mcp = FastMCP("受保护服务器", auth=auth)
部署方案详解
本地开发部署
使用标准输入输出传输(推荐用于本地工具):
mcp.run(transport="stdio")
生产环境部署
使用HTTP传输进行Web部署:
mcp.run(transport="http", host="127.0.0.1", port=8000, path="/mcp")
FastMCP云平台部署
FastMCP Cloud是专为FastMCP服务器优化的托管服务:
- 将
my_server.py文件推送到GitHub仓库 - 使用GitHub账户登录FastMCP Cloud
- 从仓库创建新项目,指定
my_server.py:mcp作为服务器入口点
部署完成后,服务器将在类似https://your-project.fastmcp.app/mcp的URL上可用。
高级功能特性
中介服务器模式
创建作为其他本地或远程MCP服务器中介的FastMCP服务器:
# 创建中介服务器
proxy_server = FastMCP.as_proxy("https://remote-server.com/mcp")
MCP服务器组合
通过将多个FastMCP实例挂载到父服务器上来构建模块化应用。
OpenAPI与FastAPI集成
从现有的OpenAPI规范自动生成FastMCP服务器。
开发最佳实践
代码组织规范
推荐的项目结构:
my_fastmcp_project/
├── server.py # 主服务文件
├── requirements.txt # 依赖管理
├── config/
│ └── settings.py # 配置文件
└── README.md # 项目说明
测试策略
使用FastMCP客户端进行内存测试:
from fastmcp import FastMCP, Client
mcp = FastMCP("我的MCP服务器")
async def 测试工具():
# 通过内存传输连接
async with Client(mcp) as client:
result = await client.call_tool("问候", {"name": "世界"}))
print(result)
故障排除与优化
常见问题解决
- 确保Python版本符合要求
- 检查网络连接状态
- 验证依赖包安装完整
性能优化建议
- 使用异步函数处理I/O密集型操作
- 合理配置认证缓存策略
- 优化资源加载和模板渲染
项目特色与优势
开发效率提升
- 快速开发:高级接口意味着更少的代码和更快的开发速度
- 简单易用:用最少的样板代码构建MCP服务器
- Pythonic风格:让Python开发者感到自然舒适
生产就绪特性
- 企业级认证支持
- 部署工具集成
- 测试框架完备
- 客户端库丰富
通过本指南,您已经掌握了FastMCP的核心部署技能。现在可以开始构建您的第一个AI服务,从简单的问候工具到复杂的企业级应用,FastMCP都能提供完整的解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



