nacos fastapi mcp示例
演示如何集成的参考FastAPI服务 纳科斯 用于与MCP(模型上下文协议)生态系统一起进行配置和服务发现。该项目由以下人员管理 产品数据管理 并以Python 3.13为目标。
特性
- 具有自定义生命周期的FastAPI应用程序,可安装MCP工具并将服务注册到Nacos。
- 通过YAML/JSON解析和内存缓存快照从Nacos同步运行时配置。
- 通过Loguru使用跟踪ID传播实用程序进行结构化日志记录(
src/utils). - 通用工作流的PDM脚本(
dev,start,lint,fmt,typecheck,test).
项目布局
app/ FastAPI entrypoints, Nacos integration, settings helper
src/utils/ Logging and trace helpers shared across the app
logs/ Local log output (ignored in Docker image)
.nacos-data/ Local Nacos snapshot storage (ignored in Docker image)先决条件
- Python 3.13
- 产品数据管理
- Nacos服务器 3.x (用3.0.3测试)和可访问的凭据/命名空间(
NACOS_SERVER_ADDR,NACOS_USERNAME,NACOS_NAMESPACE, ...) - 可选:Docker 24+用于容器化部署
准备Nacos
- 上传示例配置
nacos-fastapi-mcp-example.yaml转到Nacos配置服务。
- 数据ID: nacos-fastapi-mcp-example.yaml - 组: DEFAULT_GROUP - 命名空间:与对齐 NACOS_NAMESPACE 在您的环境中
- 根据运行时的需要调整YAML内容(数据库DSN、功能标志等)。
- 确保从运行此FastAPI服务的位置可以访问Nacos HTTP/GRPC端点。
本地设置
- 复制环境示例并调整设置值:
cp .env.example .env- 使用PDM安装依赖项(如果配置,将自动创建virtualenv):
pdm install运行服务
- 热重载开发模式:
pdm run dev- 生产方式单一流程(依赖于
.env配置):
pdm run start该应用程序公开了:
GET /health--轻量级健康探头。GET /config/nacos--Nacos中的当前运行时配置快照。
Docker使用
存储库附带了 Dockerfile因为 .env 被排除在外 .dockerignore,在运行时传递它。
塑造形象:
docker build -t nacos-fastapi-mcp-example:v0.1.0 .运行容器(映射端口并提供 .env 文件):
docker run -d \
--name nacos-fastapi-mcp-example \
--env-file .env \
-p 8000:8000 \
nacos-fastapi-mcp-example:v0.1.0如果暴露不同的端口,请调整端口映射 APP_PORT.
备注
- 默认值
.env.example启用Nacos注册;确保Nacos地址和凭据可访问,或切换MCP_REGISTER_ENABLED/APP_WORKERS用于本地调试。 - 日志输出存在
logs/当地;装载卷或覆盖APP_LOG_PATH如果你想在Docker中持久化日志。
文档
有关更多中文上下文,请参阅 README.zh.md.
