mcpField
F
fastapi-mcp

fastapi-mcp

本地服务
github.com/KimiJL开发工具077 周前更新

关于 fastapi-mcp

这是一个 Python 示例,将 MCP 服务挂载到现有 FastAPI Web 应用,并附带示例 MCP 客户端,供开发者了解这种集成方式。

主要功能

  1. 01在 FastAPI 中挂载 MCP 服务
  2. 02示例 MCP 客户端
  3. 03通过 Docker 启动服务

适用场景

  1. 01了解如何在 FastAPI 应用中托管 MCP 服务
  2. 02运行附带客户端测试 MCP 通信

MCP 相关

将 MCP 服务挂载到 FastAPI 应用,并附带演示通信方式的示例客户端。README 指出,目前服务只能挂载在根路径。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fastapi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

描述

一个简单的示例 Web 应用和客户端,展示如何将 Model Context Protocol 服务挂载到现有的 fastapi 服务上

Model Context Protocol

FastAPI 挂载

文件

./src/main.py -> 主 fastapi 服务应用

./src/mcp.py -> mcp 子服务应用逻辑

./client/client.py -> 示例客户端,展示使用 mcp client lib 的一些通信逻辑

设置

使用 Docker 启动服务

docker build -t fastapi-mcp .
docker run -p 8000:8000 --net=host fastapi-mcp

设置 Python 环境并运行客户端

pip install -r requirements.txt
python client/client.py

# to run server as well without docker
uvicorn src.main:app

已知问题

MCP 服务只能挂载到根路径 /

GitHub Issue

MCP Python SDK 存在限制,目前只有将 MCP 服务挂载到根路径 / 时才能正常工作

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。