跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.mirobody.ai/llms.txt

Use this file to discover all available pages before exploring further.

概览

ChatGPT Apps 通过外部 MCP 服务器扩展 ChatGPT 的能力。Mirobody 本身就是一个支持 OAuth 的 HTTP Remote MCP server —— 你需要做的,仅仅是把一个公网 HTTPS URL 指向你的 Mirobody 实例。

工作原理

Mirobody 的 MCP 服务器本身就是一个 HTTP 一等公民。一旦你把 MCP_PUBLIC_URL 配进配置,Mirobody 就会把这个 URL 作为它的 remote endpoint 暴露出去,并在 <MCP_PUBLIC_URL>/mcp 上接受 MCP 流量。ChatGPT(或任何其他远程 MCP 客户端)连过来后走 OAuth 验证,然后就可以调工具了。

前置要求

你需要一个能转发到 Mirobody 实例的公网 HTTPS URL。
1

确认 Mirobody 正在运行

本地 http://localhost:18080/mcp 应该返回合法的 MCP JSON。可用以下命令验证:
curl -X POST http://localhost:18080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
2

选择公网暴露方案

方案 A —— 临时演示(隧道到笔记本):
# ngrok
ngrok http 18080

# 或者 cloudflared
cloudflared tunnel --url http://localhost:18080
用得到的 HTTPS URL(如 https://abc123.ngrok.io)。方案 B —— 生产部署(自己的域名): 在反向代理(Caddy / nginx / 托管 LB)上做 TLS 终止,转发到 Mirobody 容器。
3

设置 MCP_PUBLIC_URL

config.{env}.yaml 里加:
MCP_PUBLIC_URL: "https://abc123.ngrok.io"   # 或你的生产域名
重启 Mirobody。公网 MCP 端点就是 https://abc123.ngrok.io/mcp
这个 URL 等同于秘密,不要公开 —— 拿到它的人可以尝试发起 OAuth 登录你的 Mirobody。

创建 ChatGPT App

MCP_PUBLIC_URL 配好、隧道/域名可达之后,去 ChatGPT 注册 App:
1

进入 ChatGPT Apps

打开 ChatGPT,进入 Apps 页面。你会看到已有的 App 以及新增入口。
ChatGPT Apps 主界面
2

启用开发者模式

点击”创建你自己的”或开发者模式,进入 App 创建界面。
ChatGPT 开发者模式
3

填入 MCP 端点

在 App 配置里:
  1. App 名称:例如 “Mirobody”
  2. MCP 端点:你的 MCP_PUBLIC_URL/mcp(如 https://abc123.ngrok.io/mcp
  3. 描述(可选):简述这个 App 能做什么
  4. 测试连接:ChatGPT 会校验连通性并发现工具
添加新的 ChatGPT App
ChatGPT 会自动发现 Mirobody 注册的所有工具 —— 包括你放进根目录 tools/skills/ 的所有内容。
4

OAuth 登录

首次调用时 ChatGPT 会跳转到 Mirobody 内置的 OAuth 登录页。登录一次即可,token 会被复用整个 ChatGPT 会话。
5

开始使用

连接好后,这个 ChatGPT 会话可以:
  • 检索健康 profile 与时序数据
  • 查询已连接的 Provider(Garmin / Whoop / Oura / Renpho / Apple/Google Health / EHR)
  • 调用 tools/ 里的任何自定义工具
  • 激活 skills/ 里的任何 Skill
  • 读取 resources/ 暴露的资源
你的 ChatGPT App 已接入 Mirobody。

可用能力

接入后 ChatGPT 可以访问:

健康 Profile

完整的用户健康上下文与已连接设备

时序查询

400+ 标准化指标,FHIR/LOINC/SNOMED CT 跨术语搜索

自定义工具

任何注册在 tools/ 下的函数

Skills

skills/ 下的 Claude Agent Skills 自动发现

MCP 资源

resources/ 下的静态/动态资源

代码沙箱

execute 工具把 Python / Shell 跑在 E2B 沙箱里

示例用例

ChatGPT 能跨设备、病历、上传文件做整体合成。一些真实示例:

简单查询

"显示我的健康档案"
"昨天我的心率是多少?"
"比较本周和上周的睡眠数据"
"我连接了哪些健康设备?"

进阶分析:糖尿病管理

Prompt: “总结我糖尿病的历史和近期进展。使用 Theta 从设备、记录和其他相关来源查找数据。”

查看完整对话

完整的糖尿病分析对话

交互式图表

交互式血糖趋势可视化

进阶分析:疼痛模式识别

Prompt: “帮我理解膝盖疼痛的全貌和进展。使用所有相关数据并找到潜在驱动因素。如果有帮助的话,使用可视化说明。”

查看完整分析

ChatGPT 如何用多源数据分析复杂的疼痛模式
同一个 MCP 端点也能接 Claude Desktop、Cursor 等任意 MCP 客户端 —— 参见 MCP 集成

安全注意事项

OAuth 是内置的。 任何对 MCP 端点的调用都必须先走完 Mirobody 的 OAuth 流程,所以即便 URL 泄露,没有合法会话也无法被使用。
额外加固建议:
  • MCP_PUBLIC_URL 当作机密,不要公开
  • 在反向代理或 Mirobody 的 server/ 中间件层加限流
  • 监控 /mcp 的访问日志
  • 仅在确实需要使用时再开隧道
  • 生产环境:托管代理上做 TLS 终止、可选的 IP 白名单、可观测性
  • OAuth token 会过期,用户需要周期性重新登录

故障排查

连接失败

  1. 验证隧道 / 域名可达:curl -I https://<MCP_PUBLIC_URL>/mcp
  2. 确认 Mirobody 容器绑定的是 0.0.0.0:18080
  3. 确认 ChatGPT 里填的 URL 与 MCP_PUBLIC_URL 完全一致
  4. 改了配置之后必须重启 Mirobody —— 配置只在启动时读取一次

Tools 不显示

  1. 直接调用 /mcptools/list 看是否返回工具
  2. 检查 Mirobody 启动日志里有没有加载错误
  3. 确保 tools/ 下的文件符合 docstring 规范(参见 添加工具
  4. 如果改了 mirobody/pub/tools/ 没生效,加 --no-cache 重建镜像