mcpField
H
Heart

Heart

远程服务
heart-of.me健康医疗1今天更新

关于 Heart

Heart 是 Heart of Yours 健身应用的后端,采用 Dart API、Postgres 存储和 AWS 服务。代码库还包含客户端共享模型、数据库迁移、基础设施配置,以及用于维护和部署的测试流程。

主要功能

  1. 01运行于 AWS Lambda 的 Dart API
  2. 02通过 Supabase 使用 Postgres
  3. 03供 API 和 Flutter 客户端共享的模型
  4. 04Terraform 基础设施与部署流程
  5. 05Dart、数据库和 Python 测试套件

适用场景

  1. 01开发 Heart of Yours 应用后端
  2. 02通过仅向前迁移修改数据库结构
  3. 03运行本地数据库和应用测试
  4. 04将 API 和配套服务部署到 AWS

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.heart-of.me
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Heart of Yours

Heart of Yours 健身应用的后端。Dart 服务运行在 AWS Lambda 上,通过 API Gateway 对外提供服务;Postgres 使用 Supabase;CDN 和存储均使用 AWS。

仓库结构

heart-go/
├── api/                       # Dart server (Lambda entrypoint)
├── shared/
│   ├── heart_models/          # Data classes + service interfaces (used by api + the Flutter client)
│   └── heart_aws/             # Boto3-shaped AWS clients (S3, SQS, SNS, Scheduler) on aws_signature_v4
├── database/
│   ├── migrations/            # Forward-only SQL migrations
│   ├── tests/                 # pgtap suite — public/{tables,functions}, archive/...
│   └── test_utils/            # Test helpers (builders + JSON validators)
├── firebase/                  # Python Lambda: FCM push + Firebase auth cleanup (uv workspace member)
├── assets/                    # Python Lambda: exercise media processing pipeline (uv workspace member)
├── infrastructure/            # Terraform stacks (api, assets, cdn, content, firebase, monitoring)
│                              # + environments/{dev,prod} — see infrastructure/README.md
├── content/                   # Exercise library YAML + schema + sample templates JSON, synced to CDN
├── scripts/                   # Migration runner, db test runner, library sync/validation
├── site/                      # Static marketing/legal pages
├── docs/                      # Dated design docs; handoff.md is the definition of done, style.md the house style
├── agents/                    # Autonomous agent launchers + guard hook (see agents/README.md)
└── .github/workflows/         # CI: deploy-api, deploy-assets, deploy-firebase, exercise-library
                               # (each split into a reusable workflow + dev/prod wrappers)

各组件文档:

技术栈

层级技术
服务运行时Dart 3.10 + relic,编译为原生程序 + Lambda Web Adapter
存储Postgres(Supabase),无 ORM — 原始 SQL
对象存储/CDNS3 + CloudFront
身份验证Firebase OIDC 令牌验证
异步处理EventBridge S3-rules → SQS → /events(Lambda 将事件路由回自身)
定时任务EventBridge Scheduler → SQS → /events
辅助服务uv 工作区中的 Python 3.13 Lambdas:firebase/(推送、清理身份验证数据)、assets/(媒体)
IaCTerraform(使用 Supabase provider)
CI/CDGitHub Actions,AWS OIDC 角色
测试应用代码使用 Dart test + mockito,数据库使用 pgtap,Python 服务使用 pytest

本地开发

make bootstrap   # dart pub get + mocks for all packages, uv sync, git hooks
make db-up       # containerized Postgres 17 + pgtap (skip if you run a native one)
make test        # the full matrix: Dart x3, migrations + pgtap, pytest x3
make lint        # dart analyze x3 + ruff

每个测试套件也可单独运行 — make test-dart / test-db / test-python, 或直接运行底层命令(参见 Makefile 和各组件的 README)。

api 包可在本地连接任意 Postgres + AWS 配置运行 — 参见 api/README.md。

部署

每类工作流都由一个可复用工作流和精简的 -dev / -prod 封装组成。Dev 从 main 推送进行部署。Prod:api 和 exercise-library 从 v* 标签部署;assets 和 firebase 的生产 部署目前需手动触发(workflow_dispatch)。拉取请求只运行测试任务 — 部署任务会根据事件类型进行门控。

deploy-api.yml(api/共享/数据库变更):

  1. Lint、格式检查、分析
  2. 对所有三个包运行 Dart 测试
  3. 数据库测试:通过 scripts/db_tests.sh 启动临时 Postgres + pgtap,然后运行完整的 api 测试套件 (包括带 db 标签的集成测试),并确保覆盖率达到最低要求
  4. 将尚未应用的迁移应用到 Supabase
  5. 构建 Lambda 二进制文件、更新函数,并对 /version 进行冒烟测试

deploy-firebase.yml / deploy-assets.yml(Python 变更):运行 pytest,然后打包并更新 函数代码。

exercise-library.yml(内容变更):根据 JSON schema 验证资源库 YAML 和同步解析器,然后将练习 + 翻译同步到 Postgres(防止大规模归档)。

约定

  • 迁移只允许向前。 不提供降级迁移。若 schema 有误 → 编写新的迁移来修复。
  • 除非原因不明显,否则不添加注释 — 命名应说明是什么。
  • 每种数据结构只有一个事实来源。 客户端可见的内容都放在 heart_models 中;仅服务端使用的类型留在 api/lib/models。
  • 采用 Boto3 风格的 AWS 包 — 通用化,不包含领域知识,放在 heart_aws 中。

许可证

本仓库中的服务及其他所有内容均采用 GNU AGPL v3.0。共享包(shared/heart_models、shared/heart_aws、 shared/heart_design)采用 Apache License 2.0,练习库和 content/ 中的其他内容则采用 CC BY 4.0。 名称和徽标不受上述任何许可证约束。NOTICE 中列出了完整的对应关系,包括仓库中不属于我们的内容。相关原因见 docs/2026-10-24.licence.md。

贡献

贡献内容采用其修改目录对应的许可证(输入 = 输出):服务采用 AGPL,共享包采用 Apache-2.0,content/ 采用 CC BY 4.0。提交拉取请求即表示你同意这些条款,并确认你有权提供相关作品。我们没有 CLA。

评论

支持 Markdown

第一次接触 MCP?

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

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