关于 Asynthetic
Asynthetic 是面向编码 Agent 的 MCP 服务,提供库版本间已核实的重大变更信息。其整理的迁移图包含引用来源和修复方法,并提供兼容性检查,而非生成答案。
主要功能
- 01整理好的版本迁移图
- 02附来源的重大变更与修复
- 03验证等级与实测记录
- 04SemVer 范围解析
- 05同伴版本兼容性检查
- 06明确报告未知结果
适用场景
- 01规划框架或库的升级
- 02查找已移除 API 的替代方案
- 03检查同伴版本兼容性
MCP 相关
Asynthetic 向 MCP 客户端提供迁移、重大变更、同伴兼容性和可用迁移图查询工具,支持托管 HTTP 与本地 stdio。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://asynthetic.up.railway.app/mcpclaude mcp add --transport http asyntheticai-asynthetic https://asynthetic.up.railway.app/mcp{"mcpServers":{"asyntheticai-asynthetic":{"type":"http","url":"https://asynthetic.up.railway.app/mcp"}}}在 Cursor 中打开{"servers":{"asyntheticai-asynthetic":{"type":"http","url":"https://asynthetic.up.railway.app/mcp"}}}在 VS Code 中打开{"mcpServers":{"asyntheticai-asynthetic":{"type":"http","url":"https://asynthetic.up.railway.app/mcp"}}}{"mcpServers":{"asyntheticai-asynthetic":{"serverUrl":"https://asynthetic.up.railway.app/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://asynthetic.up.railway.app/mcphttps://asynthetic.up.railway.app/sse工具
详细介绍
Asynthetic
为 AI 编码 Agent 提供事实依据。
你的 Agent 知识停留在某个日期。Asynthetic 会准确告知它发生了哪些变化——列出并测试库版本之间的每一项破坏性变更。
claude mcp add --transport http asynthetic https://asynthetic.up.railway.app/mcp
// agent asks: get_migration("ai", "^4.0.0", "^5.0.0")
{
"found": true,
"verification_level": "medium",
"migration": {
"breaking_changes": [
{
"title": "maxTokens renamed to maxOutputTokens",
"before_code": "generateText({ model, maxTokens: 1024, prompt })",
"after_code": "generateText({ model, maxOutputTokens: 1024, prompt })",
"source_url": "https://ai-sdk.dev/docs/migration-guides/migration-guide-5-0"
}
// …22 more, every one cited
]
}
}
模型每个月都在进步,但它们的知识仍停留在某个日期。
每个编码 Agent 发布时都有一个知识截止日期,而它编写代码所针对的库却不会停下脚步。
于是,Agent 会照着训练数据学到的内容行事:在 AI SDK 5 中写入 maxTokens(已移除),在 Next.js 15 中使用同步的 params(现在是 Promise),从不再导出这些内容的包中导入 LangChainAdapter。代码看起来没问题,Agent 也很有把握。结果构建失败——或者更糟,构建成功了,Bug 却随之发布。
能获取最新文档的工具会告诉 Agent API 如今是什么样子。这只解决了一半问题。升级需要的是差异:改了什么、用什么替代,以及哪些行为在不知不觉中发生了变化。再多的“最新文档”也无法涵盖这些内容。
Asynthetic 补上了缺失的那一半。询问它某项升级,它会返回一份人工整理的迁移图:按顺序列出破坏性变更,附上变更前后的代码、弃用时间线、对等版本要求,以及每项说明的出处。只检索,不生成——同一个问题每次都会得到相同且经过验证的答案。
使用前 / 后
不使用 Asynthetic——Agent 凭记忆“升级”你的 AI SDK 应用:保留 result.usage 用于计费(现在会静默地只统计最后一个步骤),不设置 temperature(v5 移除了隐式的 0,导致输出变得不确定),也不重命名任何内容,因为模型训练时 v4 语法确实正确。
使用 Asynthetic——一次工具调用就会返回该确切版本区间内的全部 23 项破坏性变更,包括上述三项,每项都附有修复方法和官方来源。Agent 据实操作,你审查的是差异,而不是调试回归问题。
这就是产品的价值:让 Agent 不只是记得,还真正了解。
迁移图能为你的 Agent 提供什么
| 迁移图 | 按版本区间人工整理的升级信息:2 张已上线迁移图(next 14→15、ai 4→5)共涵盖 40 项破坏性变更 |
| 引用 | 每张迁移图都引用官方来源,并附有 last_verified 日期。迁移图绝不由 LLM 生成。 |
| 验证级别 | 每条响应都会自行报告置信度:high(已在真实构建中经过实测)、medium、low——根据证据推导,绝不自行声明 |
| 实测说明 | 当实际情况与文档不一致时,迁移图会特别说明——例如,Turbopack 并不像 Webpack 那样真正强制执行移除 @next/font;Next 15 对 React 19 的“要求”并不会由构建强制执行。这些结论来自实际运行升级,而非阅读相关说明。 |
| SemVer 解析 | 可使用版本范围提问(^14.2.0 → ^15.0.0);始终会披露解析方法 |
| 对等依赖检查 | 静态兼容性答复(next@15 + [email protected] → false,并附有引用来源说明) |
| 坦诚告知未命中 | 没有数据时会返回 found: false,并明确指示不要猜测——绝不编造看似合理的答案 |
next 14→15 迁移图是 Asynthetic 首张 verification_level: high 的迁移图:每项内容都在 14.2.35 和 15.5.20 的真实构建中经过测试,覆盖 Turbopack 和 Webpack,以及开发和生产环境。
安装
托管版(无需安装):
claude mcp add --transport http asynthetic https://asynthetic.up.railway.app/mcp
本地版(离线使用,包含捆绑数据):
claude mcp add asynthetic -- npx -y asynthetic
任何 MCP 客户端均可使用——Cursor、Claude Code、Windsurf,或你自己的 Agent:
{ "mcpServers": { "asynthetic": { "url": "https://asynthetic.up.railway.app/mcp" } } }
然后升级某项依赖。Agent 会在修改前调用 get_migration。
工具
| 工具 | 可解答的问题 |
|---|---|
get_migration(package, from, to) | “这些版本之间有哪些不兼容之处?每一处该如何修复?” |
get_breaking_changes(package, version) | “这个版本会造成哪些不兼容?” |
check_peer_compatibility(a, va, b, vb) | “这两个版本能否一起使用?”——true / false / unknown,并附有引用 |
list_available_maps() | “Asynthetic 了解什么?” |
完整响应格式、传输方式(Streamable HTTP + stdio + legacy SSE)和自托管说明:请参阅下方文档。
为什么值得信赖
Asynthetic 的创立原则:错误的映射胜过没有映射。 一切都由此出发。
- 仅根据官方变更日志、迁移指南和发行说明整理,每条记录都附有 URL。
verified状态靠实测获得,而非编辑审核:使用固定版本,在真实项目中测试两种打包工具,并覆盖开发和生产环境。这个过程经常能发现文档中的错误,而这些发现会纳入映射。- 置信度信息以机器可读的形式提供(
verification_level、source_count、预发布警告),因此 Agent 可以权衡答案,而不是盲目信任。 - “未知”也是正式答案。服务会告知 Agent 自己不知道,并明确要求它们不要编造。
范围刻意保持精简而深入:首先覆盖快速演进的 AI 和 JavaScript 框架,始终将正确性置于覆盖面之上。
自托管
git clone https://github.com/asyntheticai/asynthetic.git
cd asynthetic && npm install && npm run build && npm start
零配置即可通过 stdio 提供捆绑的映射。设置 PORT 可启用 HTTP 模式(/mcp、legacy /sse,健康检查位于 /)。设置 SUPABASE_URL + SUPABASE_ANON_KEY 可通过 Postgres 提供服务(先运行 schema/schema.sql,然后运行 npm run seed)。配置缺失不会导致崩溃——服务会回退,并在 stderr 中说明原因。
data/maps/ the maps (source of truth, JSON, Zod-validated)
src/server.ts MCP tools
src/store/ Postgres + local backends, SemVer resolver
scripts/smoke.ts 23-check end-to-end suite across every transport
贡献映射
- 仅使用官方来源。 变更日志、发行说明、迁移指南。记录每个 URL。博客文章可以作为查找的起点,但不能作为最终依据。
- 遵循
src/types/migration-map.ts中的架构——在任何内容被提供之前,验证都会拒绝格式错误的数据。 - 新映射以
draft状态加入。verified状态须通过在固定版本的真实构建中测试代码片段来获得。退役的映射会变为stale——不再提供,但会保留记录。 npm run smoke必须通过。不要猜测版本或 API 名称:如果官方来源中没有相关信息,请在 PR 中标注。
状态
免费公开测试版——托管端点和 npm 包向所有人开放。接下来:添加更多映射(Tailwind 3→4、React 18→19、Zod 3→4、AI SDK 5→6)、让更多映射的验证等级提升至 high,以及进行项目感知的兼容性分析。详情将另行公布。
安全
从设计上只读:每个工具都是对精选数据的查询。不执行代码、不在请求时获取数据,也不访问你的项目或文件系统。托管端点只会看到工具参数(包名称、版本字符串);会话是临时的、驻留内存且相互隔离。请通过 GitHub 安全公告报告问题。
许可证
源代码可用,采用 BSL 1.1:可始终自托管供自己使用,包括个人、团队和公司内部使用;但不得将其转售为具有竞争关系的托管服务。将于 2030 年 7 月 4 日自动转换为 Apache 2.0。
使用 TypeScript、官方 MCP SDK、Zod 和 Supabase 构建。现已在线提供服务:asynthetic.up.railway.app/mcp。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。