mcpField
B
Bootstrap python service

Bootstrap python service

本地服务
github.com/styada记忆与知识179 周前更新

关于 Bootstrap python service

这是一个采用 Clean Architecture 和 SOLID 原则的 Python 服务模板,适合构建包含 API、后台任务、数据库、认证和可观测性的服务。它将领域逻辑与框架及存储层解耦。

主要功能

  1. 01FastAPI 与 AsyncAPI 文档
  2. 02Dramatiq 异步任务执行
  3. 03Socket.io WebSocket 应用
  4. 04SQLAlchemy 仓储与 Alembic 迁移
  5. 05基于 ORY 的认证
  6. 06OpenTelemetry 指标、追踪与日志

适用场景

  1. 01搭建领域层与存储层分离的 Python 服务
  2. 02构建含后台任务处理的 API
  3. 03添加数据库迁移与数据夹具
  4. 04配置服务可观测性

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

Bootstrap Python 服务

CI Pipeline Python tests Test Coverage Maintainability

Checked with mypy Ruff Code style: black security: bandit

这是一个 Python 应用示例,实现了 Clean Architecture 和 SOLID 原则中的相关概念。

  • 仓储类通过接口隔离,以遵循接口隔离原则 和控制反转设计模式
  • 应用框架与领域逻辑解耦
  • 存储层与领域逻辑解耦

此模板开箱即用地提供了一些常用功能:

  • 使用 FastAPI 和 AsyncAPI 编写同步和异步 API 文档
  • 使用 Dramatiq 执行异步任务
  • 使用 Socket.io 构建 WebSocket 应用
  • 使用 SQLAlchemy 和 SQLAlchemy bind manager 实现数据库仓储模式
  • 使用 Alembic 进行数据库迁移(配置为支持同步和异步 SQLAlchemy 引擎)
  • 通过自定义的 Alembic 配置支持数据库 Fixtures
  • 使用 ORY Zero Trust architecture 实现身份验证和身份提供方
  • 使用 OpenTelemetry 配置完整的可观测性(指标、追踪和日志)
  • 提供 GitLab 的 CI/CD 部署流水线示例(此仓库仍以 GitHub 为重点,不过如果你想使用 GitLab,也可以 🤷)
  • [TODO] 使用 HTTP 以 CloudEvents 格式生成和消费事件的生产者与消费者,可与 Knative Eventing 配合使用

文档

详细文档可通过以下方式查看:

  • 在线查看:GitHub pages
  • 离线查看:安装依赖后运行 make docs,依赖通过 make dev-dependencies 安装

使用方法

使用此模板创建你的 GitHub 仓库(绿色的 Use this template 按钮)。 你可以选择在 pyproject.toml 文件中调整名称和作者,但构建应用时不会使用这些元数据, 代码中也不会引用它们。

运行任何命令之前,请先安装 uv 和 Docker:

使用 Docker:

  • make containers:构建容器
  • docker compose up dev-http:运行支持热重载的 HTTP 应用
  • docker compose up dev-socketio:运行支持热重载的 HTTP 应用
  • docker compose up dramatiq-worker:运行 dramatiq 工作进程
  • docker compose run --rm test:运行测试套件
  • docker compose run --rm migrate:运行数据库迁移
  • docker compose run --rm autogenerate-migration:生成新的迁移文件

使用 Make(大多数命令仍需要 Docker):

  • make install-dependencies:安装依赖项
  • make dev-dependencies:安装开发依赖项
  • make update-dependencies:更新依赖项
  • make dev-http:运行支持热重载的 HTTP 应用
  • make dev-socketio:运行支持热重载的 HTTP 应用
  • make test:运行测试套件
  • make migrate:运行数据库迁移
  • make autogenerate-migration:生成新的迁移文件

其他开发命令

  • make check:运行测试、代码风格和 lint 检查
  • make fix:运行测试、代码风格和 lint 检查,并在可能的情况下自动修复问题

多阶段 Dockerfile 配置

安装应用依赖项后,Python Docker 镜像往往会变得很大(精简基础镜像解压后约为 150 MB),因此即使会让多阶段 Dockerfile 稍微复杂一些,也要尽可能缩小镜像体积。

以下配置可确保生产镜像保持最小体积(“仅” 360 MB):

  • 150 MB 基础镜像
  • 210 MB Python 已安装依赖项

使用以下流水线构建的“test”镜像则约为 850 MB,每次拉取镜像都会产生超过 400 MB 的流量成本。

README 配图

评论

支持 Markdown

第一次接触 MCP?

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

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