项目简介

这是一个轻量级、高性能的Model Context Protocol (MCP) 服务器实现,基于Python的FastAPI框架构建。它旨在简化AI模型与外部功能及用户应用之间的交互,通过提供标准化的接口、高效的SSE实时通信、智能工具注册和完善的会话管理,为开发AI驱动的应用提供强大的后端支持。

主要功能点

  • 整合MCP协议:将FastAPI的高性能与MCP协议标准无缝集成,为AI模型提供统一的交互接口。
  • 高效实时通信:利用服务器发送事件(SSE)技术实现客户端与服务器之间的低延迟单向实时数据流。
  • 多用户会话管理:提供会话创建、存储和管理机制,确保不同用户或模型之间交互数据的隔离和安全。
  • 智能工具注册:简化外部函数或服务注册为AI工具的过程,使模型能够轻松调用这些功能。
  • 灵活的API密钥验证:支持自定义API密钥验证逻辑,满足不同场景下的安全访问需求。

安装步骤

  1. 克隆代码库:
    git clone https://github.com/purity3/fastapi-mcp-server.git
    cd fastapi-mcp-server
  2. 创建并激活虚拟环境:
    python -m venv .venv
    source .venv/bin/activate # Linux/Mac
    # 或 .venv\Scripts\activate # Windows
  3. 安装依赖: 推荐使用 'uv' 包管理器 (先 'pip install uv' 如果未安装),然后运行:
    uv pip install -e .
    # 或使用 pip:
    # pip install -e .
  4. 配置环境变量: 创建 '.env' 文件,参考 '.env.example' 设置服务器地址、端口、数据库路径等。
  5. 初始化数据库: 创建 'database/session.db' 空文件。应用程序首次启动时会自动创建所需的表。
    mkdir -p database
    touch database/session.db
  6. 自定义鉴权逻辑: 根据您的需求,修改 'auth/credential.py' 中的 'verify_api_key' 函数,实现您自己的API密钥验证逻辑。

服务器配置(供MCP客户端参考)

该FastAPI MCP服务器可以通过MCP客户端启动和连接。MCP客户端通常需要一个JSON格式的配置来了解如何启动和连接服务器。对于此服务器,基本配置信息如下:

  • 服务器名称: 'fastapi-mcp-server' (或您自定义的任何名称)
  • 启动命令 (command): 'start' (这是项目 setup.py 中配置的入口点) 或 'python -m main'
  • 启动参数 (args): 通常不需要额外参数,除非您想覆盖 '.env' 中的主机或端口配置。
  • 传输协议 (transport): 'sse'
  • 消息端点 (endpoint): '/messages'
  • 连接参数 (connect_params): 用于建立初始连接和会话。对于此服务器,需要在 'connect_params' 中提供您的 'api_key'。

例如,MCP客户端配置文件中关于此服务器的部分可能需要类似这样的结构:

// 注意:这是一个描述性的配置示例,具体格式取决于您的MCP客户端实现
{
  "name": "fastapi-mcp-server",
  "command": "start", 
  "args": [],
  "env": {}, // 可选的环境变量
  "transport": "sse",
  "endpoint": "/messages",
  "connect_params": {
    "api_key": "YOUR_SECRET_API_KEY" 
  }
}

MCP客户端会使用这些信息启动服务器进程,并通过指定的传输协议 ('sse') 和端点 ('/messages') 以及连接参数 ('api_key') 与服务器通信。

基本使用方法

  1. 启动服务器: 在项目根目录下运行:
    start
    # 或 uv run start
    # 或 python -m main
    服务器将默认运行在 'http://127.0.0.1:8000'。
  2. 添加自定义工具: 在 'tools/' 目录下创建新的Python文件,编写工具函数,并在 'server.py' 中使用 '@mcp.tool()' 装饰器注册您的函数。
  3. 通过MCP客户端交互: 配置您的MCP客户端连接到此服务器(参考上述“服务器配置”部分),然后客户端即可通过MCP协议调用服务器上注册的工具、访问上下文等。

信息

分类

AI与计算