google-health-chatgpt-selfhost
Lets a single user read a bounded set of their own Google Health data from ChatGPT conversations through a private MCP connection, exposing four read-only tools for rollups, reconciled records, and irregular-rhythm notification history.
README
Google Health ChatGPT Self-host
An unofficial, single-user reference implementation for reading a narrowly bounded set of Google Health data from ordinary ChatGPT conversations through a private MCP connection.
This repository is source code and a deployment guide. It does not publish or expose anyone's existing MCP service, ChatGPT app, tunnel, Google Cloud project, credentials, or health data. Each deployer creates and owns an independent Google Cloud project, OAuth grant, OpenAI tunnel, host, and ChatGPT Developer Mode app.
What it provides
- A Node.js stdio MCP server with exactly four read-only tools.
- Four fixed Google Health read-only OAuth scopes.
- Fixed data-type allowlists: 32 reconcile types, 18 rollup types, and IRN history.
- Server-generated Google filters, closed-open range validation, page-size limits, and privacy-preserving field masks.
- A 90,000-byte upstream response limit enforced while the response is streamed, before the full body is buffered.
- Query-routing metadata embedded in MCP instructions, tool descriptions, and schemas so web ChatGPT can choose the correct operation without a separate private baseline.
- A local Skill and query catalog for development, review, and evaluation. Developer Mode does not automatically import this Skill into web ChatGPT.
- Google Cloud OAuth, Linux/systemd, OpenAI Secure MCP Tunnel, ChatGPT, Scheduled task, privacy, and troubleshooting guides.
Deliberate boundaries
This project is for a private, single-user deployment. It has no write operation, public MCP endpoint, database, response cache, analytics pipeline, multi-user authentication, public Plugin Directory package, or medical-diagnosis feature. It is not a medical device.
When a tool runs, the requested health response travels from Google Health through the self-hosted process and OpenAI's tunnel to the ChatGPT conversation. The application code does not persist that response, but the deployer must separately understand and disclose the policies and retention behavior of Google, OpenAI, the hosting platform, and any infrastructure logs.
Architecture
ChatGPT conversation or Scheduled task
|
private Developer Mode app
|
OpenAI Secure MCP Tunnel
outbound HTTPS only
|
tunnel-client host
|
stdio Node.js MCP
|
Google OAuth refresh on demand
|
health.googleapis.com
Secure MCP Tunnel keeps the MCP server off the public internet, but it is a private development connection and is not a path to public plugin submission.
Read-only contract
The OAuth grant is pinned to these scopes:
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
https://www.googleapis.com/auth/googlehealth.irn.readonly
https://www.googleapis.com/auth/googlehealth.sleep.readonly
The MCP server exposes:
| Tool | Intended result |
|---|---|
google_health_daily_rollup |
Calendar-day totals and day-by-day trends |
google_health_physical_rollup |
5-minute, 15-minute, 1-hour, 6-hour, or 24-hour buckets |
google_health_reconcile |
Daily, sample, interval, sleep-session, or exercise-session records |
google_health_irn_list |
Irregular-rhythm notification records |
The full type-to-method matrix is in skills/google-health-readonly/references/query-catalog.md.
Deployment path
- Read
docs/architecture-and-scope.mdanddocs/privacy-and-security.md. - Configure an independent Google Cloud project and OAuth client with
docs/google-cloud-oauth.md. - Obtain the single-user offline grant with
docs/local-offline-grant.md. - Build and install the MCP server with
docs/deploy-linux-systemd.md. - Create and run the private tunnel with
docs/openai-secure-mcp-tunnel.md. - Add and validate the Developer Mode app with
docs/chatgpt-developer-mode.md. - Only after interactive acceptance, configure a recurring task with
docs/scheduled-task.md.
Do not place credentials in this repository, chat messages, issue reports, command-line arguments, screenshots, or CI variables. The setup uses file paths in environment variables; the files themselves must be owner-only.
Development
Requirements: Node.js 22 or newer, npm, and Python 3 only if you want to run the optional Codex Skill validator.
npm ci
npm run check
npm run audit:discovery
npm audit
The discovery audit contacts only Google's public API discovery document; it does not authenticate or query health data. The test suite uses synthetic fixtures.
If the Codex Skill validator is installed locally:
python3 /path/to/skill-creator/scripts/quick_validate.py skills/google-health-readonly
See CONTRIBUTING.md before submitting changes. Never include real health data, query results, account identifiers, OAuth values, tunnel IDs, or screenshots from private control planes in an issue or pull request.
Upstream policy and product availability
Google Health API access, verification, scopes, and token behavior are governed by Google. Developer Mode and Secure MCP Tunnel availability and permissions are governed by OpenAI and may vary by account or workspace. Always re-check the linked official documentation during deployment.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。