FastAPI MCP 服务器是一个专门为大型语言模型设计的集成应用程序。基于 FastAPI 框架开发,提供高性能的服务器端事件(SSE)通信、智能工具注册以及全面的会话管理功能。
该项目是一个轻量级、高性能的 MCP 服务器实现,旨在简化人工智能模型与用户应用之间的交互。它利用了 FastAPI 的异步特性和模式验证能力,并结合了 SSE(服务器发送事件)技术来实现低延迟实时通信,通过会话管理系统支持多用户和多模型并发交互,为开发驱动型的人工智能应用提供了强大的后端支持。
graph TD
A[客户端] -->|发送请求| B[FastAPI服务器]
B -->|创建/获取| C[会话服务]
C -->|管理| D[用户会话]
B -->|路由到| E[MCP处理器]
E -->|注册| F[工具函数]
E -->|使用| G[SSE传输]
G -->|实时响应| A
classDef client fill:#f9f,stroke:#333,stroke-width:2px;
classDef server fill:#bbf,stroke:#333,stroke-width:2px;
classDef service fill:#bfb,stroke:#333,stroke-width:2px;
class A client;
class B,E server;
class C,D,F,G service;



fastapi-mcp-server/
├── auth/ # 认证相关模块
├── database/ # 数据库连接和管理
├── models/ # 数据模型定义
├── routes/ # API路由定义
├── services/ # 业务逻辑服务
├── tools/ # 工具函数
├── transport/ # 传输层实现
├── utils/ # 通用工具函数
├── config.py # 配置文件
├── main.py # 应用入口
└── server.py # MCP服务器初始化
git clone git@github.com:purity3/fastapi-mcp-server.git
cd fastapi-mcp-server
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# 或者
.venv\Scripts\activate # Windows
使用 UV 安装(推荐):
# 如果尚未安装 uv
pip install uv
# 使用 uv 安装依赖
uv pip install -e .
或者使用 pip 安装:
pip install -e .
创建 .env 文件,参考 .env.example 设置必要的环境变量。
需要在数据库目录中创建一个 session.db 数据库文件,可以通过运行以下命令进行初始化:
# 确保 database 目录存在
mkdir -p database
# 创建空的 session.db 文件
touch database/session.db
# 应用程序首次运行时会自动创建必要的表结构
在 auth/credential.py 中实现自己的 API 密钥验证逻辑。默认提供基本框架,您需要根据自身需求进行修改:
# 示例:自定义鉴权逻辑
async def verify_api_key(api_key: str) -> bool:
"""
验证 API 密钥是否有效
Args:
api_key: 要验证的 API 密钥
Returns:
如果 API 密钥有效则返回 True,否则返回 False
"""
# 实现您的自定义验证逻辑
# 可以是本地验证、数据库查询或远程 API 调用
# 简单示例:检查 API 密钥格式和前缀
if not api_key or not api_key.startswith("sk_"):
return False
# 添加更多验证步骤...
return True # 验证通过
使用 Python 启动:
python -m main
# 或使用安装的入口点
start
使用 UV 启动:
uv run start
使用调试模式启动:
mcp dev server.py
服务器默认运行在 http://localhost:8000
在 tools/ 目录下添加您的自定义工具函数,并在 server.py 中进行注册:
@mcp.tool()
def your_custom_tool():
# 实现您的工具逻辑
pass
| 变量名称 | 描述 | 默认值 | 是否必需 |
|---|---|---|---|
HOST | 服务器主机 | 127.0.0.1 | 否 |
PORT | 服务器端口 | 8000 | 否 |
DATABASE_URL | 数据库连接地址 | None | 是 |
PORT 环境变量。我们计划在未来版本中添加以下功能:
[ ] Docker 容器部署
[ ] IP 黑白名单系统
[ ] FastMCP 流式模式支持
[ ] 高级监控和日志
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文档。