这是一个使用FastAPI框架构建的RESTful API项目,集成了MCP (Model Context Protocol) 支持。
- 基于FastAPI框架
- RESTful API设计
- MCP (Model Context Protocol) 支持
- 系统监控API示例
- CORS支持
- 模块化的项目结构
.
├── main.py # FastAPI应用主入口文件
├── requirements.txt # Python依赖包列表
├── Dockerfile # Docker镜像构建文件
├── .dockerignore # Docker构建忽略文件
├── README.md # 项目说明文档
└── sample/ # MCP接口模块目录
├── api.py # 系统监控API路由定义
├── schemas.py # 数据模型定义
└── utils.py # 工具函数
- 克隆项目
- 创建虚拟环境(推荐):
python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8023访问 http://localhost:8023/docs 查看API文档。
docker build -t fastapi-mcp-app:latest .或者同时构建多个标签:
docker build -t fastapi-mcp-app:latest -t fastapi-mcp-app:1.0.0 .docker run -d -p 8023:8023 --name fastapi-mcp fastapi-mcp-app:latest创建 docker-compose.yml 文件:
version: '3.8'
services:
app:
build: .
ports:
- "8023:8023"
container_name: fastapi-mcp
restart: unless-stopped然后运行:
docker-compose up -ddocker logs -f fastapi-mcpdocker stop fastapi-mcp
docker rm fastapi-mcp访问 http://localhost:8023/docs 查看API文档。
当前已配置的MCP接口:
{
"system-mcp": {
"url": "http://localhost:8023/system-mcp"
}
}如需添加新的MCP接口,请在 sample/ 目录下创建新的子目录,例如:
├── sample/ # 系统监控接口(当前)
│ ├── api.py
│ ├── schemas.py
│ └── utils.py
└── your-new-mcp/ # 新的MCP接口目录
├── __init__.py
├── api.py
├── schemas.py
└── utils.py
然后在 main.py 中:
- 导入新的路由
- 注册路由到FastAPI应用
- 创建并挂载新的MCP实例
示例:
from sample.your_new_mcp.api import router as your_router
app.include_router(your_router, prefix="/api/v1")
your_mcp = FastApiMCP(
app,
name="Your New MCP API",
include_tags=["your-tag"]
)
your_mcp.mount_http(mount_path="/your-new-mcp")GET /api/v1/system/info- 获取系统信息(CPU、内存、磁盘)GET /api/v1/system/load- 获取系统负载(CPU、内存、磁盘I/O、网络I/O)
- 遵循项目结构,新的MCP接口在
sample/目录下创建子目录 - 使用Pydantic定义数据模型
- 使用FastAPI的标签系统组织API端点
- 确保每个MCP接口都有对应的路由和MCP挂载点