Nacos集成FastAPI服务

一个参考FastAPI服务,演示如何集成Nacos进行配置和服务发现,并与MCP生态系统结合。

  • by cxhello
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 cxhello/nacos-fastapi-mcp-example

使用说明

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

  1. 上传示例配置 nacos-fastapi-mcp-example.yaml 转到Nacos配置服务。
    • 数据ID: nacos-fastapi-mcp-example.yaml
    • 组: DEFAULT_GROUP
    • 命名空间:与对齐 NACOS_NAMESPACE 在您的环境中
  2. 根据运行时的需要调整YAML内容(数据库DSN、功能标志等)。
  3. 确保从运行此FastAPI服务的位置可以访问Nacos HTTP/GRPC端点。

本地设置

  1. 复制环境示例并调整设置值:
    cp .env.example .env
    
  2. 使用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.