Carry-On Skill 技能
# Carry-On - 跨 ChatGPT / Claude / Gemini 的 AI 记忆迁移 MCP 服务器
Carry-On - 跨 ChatGPT / Claude / Gemini 的 AI 记忆迁移 MCP 服务器
技能简介
Carry-On 是独立开发者 shenyinzhe 开源的 AI 记忆迁移 MCP 服务器,解决"换 AI 订阅就丢掉历史对话"的核心痛点:用户把 ChatGPT、Claude、Gemini 三家官方数据导出 zip 放进指定目录,Carry-On 在本机把它们合并到一个可搜索的统一档案,并通过 MCP(Model Context Protocol)对外暴露工具,让今天在用的 AI 助手可以即时检索过去与另一家聊过的内容。Carry-On 提供 Home Assistant 插件与 Docker 两种部署形态,原生支持 aarch64 / amd64,可选启用 Tailscale Funnel 让 claude.ai / chatgpt.com 不需域名与端口转发即可访问。
核心能力
- 官方导出优先:仅支持三家厂商的官方数据导出(ChatGPT 数据导出、Claude Takeout、Google Takeout),无需浏览器扩展、无需爬虫、无需 session cookie。
- 增量导入:把 zip 放进 inbox 目录即可导入;随时重新导出做增量导入,已导入数据不重复。
- 忠实解析:保留 ChatGPT/Claude 用户最终选定的分支(丢弃 edits / regenerations)、保留语音对话文本与附件文本、保留 Gemini Canvas 代码;Google 在 18 个月后会删除活动日志,Carry-On 跨多次 Takeout 自动合并 Gemini 内容。
- CJK 友好的 FTS5 检索:使用 SQLite FTS5 + 三元组 tokenizer,中文 / 日文无需分词也能搜。
- MCP 工具集:暴露 search(query, source?)、fetch(id)、list_recent(limit?, source?)、archive_stats() 四个工具,遵循 ChatGPT connector search/fetch 约定,同时兼容 Claude custom connector 与任何 MCP 客户端。
- 小而轻:约 1400 条 ChatGPT + 900 条 Gemini 对话 ≈ 130 MB 数据库、≈ 220 MB 内存。
- 公网可选 HTTPS:通过
CARRYON_TAILSCALE_FUNNEL=true自动开启 Tailscale Funnel,无需自有域名与端口转发。
安装配置
- Home Assistant 插件:在 HAOS 加载项商店添加仓库 https://github.com/shenyinzhe/carryon ,安装 Carry-On 加载项,使用预构建镜像秒装;通过 UI 配置 secret、是否启用 Tailscale Funnel、hostname 等。
- Docker compose:执行
curl -O https://raw.githubusercontent.com/shenyinzhe/carryon/main/compose.yaml,写.env文件中的CARRYON_SECRET(32 位随机串),运行docker compose up -d;导出 zip 直接放进./share/inbox/。 - MCP 端点:默认 http://127.0.0.1:8765/{secret}/mcp ;启用 Tailscale Funnel 后 claude.ai / chatgpt.com 可直连此 URL。
- 配置变量:
CARRYON_DATA(数据库目录,默认 ./data)、CARRYON_INBOX(导入监听目录,默认 ./inbox)、CARRYON_SECRET(32 位随机串)、CARRYON_TAILSCALE_FUNNEL(可选)、CARRYON_TAILSCALE_HOSTNAME(可选)。
使用步骤
- 分别从 ChatGPT、Claude、Gemini 申请官方数据导出(ChatGPT 设置→Data controls→Export;Claude Settings→Export;Google Takeout 选择 Gemini)。
- 把导出的 zip 文件放入 Carry-On 的 inbox 目录。
- 启动 Carry-On,导入完成后 SQLite 数据库写入 CARRYON_DATA 目录。
- 在当前 AI 客户端(Claude Desktop、Claude Code、ChatGPT connector、Codex 或任何 MCP 客户端)添加自定义 MCP 服务器,URL 填
http://127.0.0.1:8765/{secret}/mcp。 - 直接对话中说"搜一下我去年和 ChatGPT 聊过的 vector database"——AI 会调用
search工具拿到候选,再用fetch拉取完整对话。 - 用
list_recent让 AI 主动展示最近活跃的对话;用archive_stats查看每个来源的对话总数。
适用场景
- 跨平台对话延续:用户换到 Claude 后仍想找 ChatGPT 时代聊过的项目上下文。
- 法律 / 医疗专业工作:把多年的专业对话沉淀到本地工具,可随时调用检索。
- 研究 / 写作素材库:把过去四五年和不同模型一起写的选题、参考文献、做整体改稿。
- **跨境团队知识同步:中美同步员工 ChatGPT + Claude 数据合并检索,统一知识背景。
- 离线归档备份:把 AI 时代的数据沉淀到本机 SQLite,避免厂商策略变更导致历史丢失。
适用人群
- AI 重度用户:长期多平台混用 ChatGPT / Claude / Gemini 的深度用户。
- 独立开发者 / 顾问:希望保留客户上下文、跨订阅延续项目对话。
- 法律 / 医疗 / 教育从业者:对话记录属于专业档案,需要可控本地化。
- 注重数据主权的极客:拒绝云端锁定,要求数据可携可迁可删。
工作原理
Carry-On 由 carryon/cli(import 与 search 命令行)与 carryon/server(HTTP MCP server)两部分组成。import 阶段分别解析 ChatGPT conversations.json、Claude conversations.json、Takeout 的 Gemini myactivity.json,写入 SQLite + FTS5 虚拟表,search 阶段对 messages_fts 做 MATCH 查询;server 阶段用 streamable HTTP 暴露 search/fetch/list_recent/archive_stats 四个工具,对接 ChatGPT connector 与 Claude custom connector 的 search/fetch 协议。安全模型是"长随机串 + 路径前缀"作为认证(因为 Claude custom connector 只接受无 auth 或 OAuth 服务器),OAuth 在路线图上。
官方链接
- 源码仓库:https://github.com/shenyinzhe/carryon
- 文档:仓库内 carryon/DOCS.md(配置 / 导入 / 连接 / 故障排查)
- License:MIT
评论与建议
登录 后参与评论或提建议