corsair
corsairdev/corsair加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个典型的 AI 产品团队场景:你要做一个"能帮用户处理邮件和日程"的智能助理。接 Gmail 要写 OAuth 回调、令牌刷新、错误重试;接 Google Calendar 又是一套;等客户要求"也能把待办同步到 Linear"、"工单丢进 Jira",你发现半年时间过去了,团队写的不是产品,而是一遍又一遍的 API 胶水代码。每接一个第三方服务,就多一份授权逻辑、多一处令牌存储风险、多一轮限流与重试的调试。
Corsair 试图终结这件事。它的自我定位只有一句话:"Connect your users to their apps"(把你的用户连到他们的应用上)。仓库在 2025 年 10 月 14 日创建,一年内拿到 15,564 star、704 fork、299 位贡献者,2026 年 10 月仍在每天提交代码——在"AI 集成"这个竞争极度拥挤的赛道里,这个增速本身就是一种信号。

图:Corsair 项目仓库主视觉(来自仓库 www/public 目录)
Corsair 由 Y Combinator 支持(仓库 README 中带有 YC 徽章,并被 Trendshift 收录),团队自我描述为"product integration platform"——注意,不是"MCP server 集合",这正是它与市面上大量 Agent 工具项目的关键分野。
行业背景是这样的:2024-2025 年,Model Context Protocol(MCP)让 Agent 接入外部工具成为标配,但几乎所有 MCP 实现都只解决"Agent 侧怎么调",不解决"多租户 SaaS 侧怎么安全地代表用户操作"。一个真实产品要同时具备三件事:
Corsair 同时押注了"REST API 而非 MCP-only"这条路线。README 里明确写道:"Most agent integration tools are MCP-only. Corsair is built on a REST API, so the same integration layer works for agents, backend services, and the dashboards your customers use." 换句话说,它想做的是"集成层的操作系统",而不只是"Agent 的一个工具箱"。
打个比方。传统集成方式像是你给每个客人一把自家钥匙,客人自己去你家拿、你还得教他每把钥匙开哪扇门;MCP 方式像是给 Agent 递上一把万能遥控器,能开你家的电视,但遥控器本身不会管"这遥控器该配哪台电视""频道密码存哪";Corsair 更像是一套公寓管家系统:
一句更直白的总结:Corsair = OAuth 托管 + 多租户凭证库 + 350+ 集成适配器 + 一套统一语法。
4.1 一包一服务,插件化架构
仓库 packages/ 目录共 413 个包,其中绝大部分是集成插件(GitHub、Slack、Gmail、Notion、Linear、Stripe、Jira、Salesforce、Zoom、AWS…),采用 @corsair-dev/<service> 的独立包发布策略,按需安装。核心 SDK 是 packages/corsair,对外暴露 core / db / orm / setup / http / connect / oauth / tunnel / hub / tests 等 11 个子路径导出。
4.2 数据模型:五张表撑起整个凭证体系
官方 Quick Start 文档直接给出建表 SQL,核心是五张表:corsair_integrations(集成定义)、corsair_accounts(租户账号)、corsair_entities(实体缓存)、corsair_events(事件流)、corsair_permissions(授权请求与审批)。每张表都带 dek(数据加密密钥)字段——数据加密密钥由用户的 CORSAIR_KEK 主密钥派生,KEK 由用户自己保管,Hub 不持有。
4.3 密钥管理:Hub 托管 vs 完全自持
两种模式二选一:
hub.corsair.dev 托管 OAuth 连接页、授权回调与 webhook 投递,开发者不用自己配公网回调地址;凭证仍加密存在开发者自己的数据库里,Hub 不存。4.4 代理接入:三套官方适配器 + 四语言客户端
adapters/langchain、adapters/llamaindex、adapters/mastra——把每个 Corsair 操作转成 Agent 工具(LangChain 适配器里工具名会把 slack.api.channels.list 转成 slack_api_channels_list,以满足模型函数名约束);packages/app——直接对接 Vercel AI SDK、Claude Agents SDK、OpenAI Agents SDK;clients/ 下有 Go、Python、Swift 客户端(另有 TypeScript 主客户端);skills/corsair/SKILL.md(13.5KB)——专门给 AI 编码代理读的操作手册,明确要求代理先读 docs.corsair.dev/llms.txt 再动手,甚至写明"纯 SPA(Angular/Vue/Svelte 无后端)需要把路由挂到 SSR 服务器上"。这在开源项目里相当罕见。4.5 权限审批与多租户
packages/corsair/permissions 提供审批流:Agent 发起的高风险操作会生成一条 pending 权限记录(含 plugin、endpoint、args、tenant_id、过期时间),等用户或后台确认后才执行。docs/concepts/permissions.mdx 有 15.8KB 篇幅专门讲这个机制。
4.6 Explorer:可视化集成目录
explorer/ 子项目带 401 个插件图标和一份 3.8MB 的 catalog.json,配套 www/(Next.js 15 + Sanity CMS + Drizzle)做官网与目录站;scripts/ 下还有 generate-plugin-docs.ts、build-explorer-catalog.ts 等自动化脚本。
4.7 附加的 LLM 网关
docs/llm-gateway.mdx 显示 llm.corsair.dev 提供 OpenAI 兼容端点(/v1/models、/v1/key/info),带按 Key 的美元预算控制,模型列表覆盖 gpt-5.x 与 codex 系列——这让"接第三方 API"和"接模型"在同一套鉴权/计费体系下统一。
开发者路径(CLI/SDK):npm install corsair @corsair-dev/github → 生成 KEK(openssl rand -base64 32)→ 拿 API Key 与签名密钥 → 建五张表(SQLite 起步最快,也支持 Postgres/Drizzle/Prisma)→ 挂载 /api/corsair 路由 → 真实调用一次 API 成功才算完成。技能文档里那句 "you're done when a real API call returns data" 透露出作者对"能跑起来≠能用"的清醒认知。
非 JS 后端:跳过 SDK,直接走 Hub REST API。
Web/浏览器端:packages/ui 提供权限与连接页的纯 HTML 助手,配合 CorsairProvider / useCorsair() React Hook。注意安全约束——API Key 是服务端密钥,绝不能进浏览器代码,需要在自己应用里建一条服务端注入 bearer 的路由。
环境依赖:Node.js 20+ / pnpm 10+,PostgreSQL 14+ 或 SQLite,全仓库 4600 万行 TypeScript 中用 Kysely 做类型安全 SQL,用 Zod v4 做 schema 校验,Turbo + Biome 管构建与 lint,tsup 打包。全流程不需要 GPU,无本地模型推理,硬件门槛极低。真正的门槛在于概念成本:tenant、plugin、permission、Hub、KEK 五套概念要同时装进脑子。
NOASSERTION(因为 LICENSE 文件是标准 Apache-2.0 全文但仓库元数据未正确解析),实际内容为 Apache License 2.0,各插件包 package.json 也标注 Apache-2.0。Corsair 代表的趋势可以概括为:AI Agent 的瓶颈正从"模型能力"转向"行动能力的工程化"。模型侧已经卷得差不多了,真正的稀缺资源是"安全、合规、可审计地代表用户操作第三方系统"的能力层。
从产品节奏看,Corsair 2025 年 10 月建仓、2026 年 10 月仍在以每天多次提交的速度推进,同时提供 Python/Go/Swift 客户端、LangChain/LlamaIndex/Mastra 三套适配器、给编码代理专用的 SKILL.md,以及一个带预算控制的 LLM 网关——这套组合说明它想做的不是某个单点工具,而是跨语言、跨框架、跨部署形态的集成基础设施。

图:Corsair 完整品牌标识(来自仓库 www/public 目录)
对国内团队而言,它的价值尤其在于自持数据 + Apache-2.0 + 完整多语言客户端这三点:把 OAuth 回调、令牌刷新、多租户隔离这些"每次重做一遍"的脏活沉淀成一层可自托管的中间件,在金融、政企等对数据出境敏感的场景里,比闭源 SaaS 更容易过合规评审。
值得留意的是它与 MCP 的关系——Corsair 没有否定 MCP,而是在其上补了一层 REST 与租户语义。这暗示行业正在形成的格局是:MCP 负责"协议层对话",而 OAuth 托管层负责"身份与凭证治理",两者最终会在同一个 Agent 运行时里合流。
项目速览
| 维度 | 数据 |
|---|---|
| 仓库 | corsairdev/corsair |
| Stars / Forks | 15,564 / 704 |
| Contributors | 299 |
| 主语言 | TypeScript(45.9MB,另有 JS/Go/Swift/Python) |
| 集成插件 | 400+ 个独立 npm 包,explorer 含 401 个图标 |
| 许可证 | Apache-2.0(GitHub API 误报 NOASSERTION) |
| 架构 | pnpm monorepo + Turborepo + Biome + tsup |
| 测试 | Jest,含 api/client/integration/webhooks 用例,仓库内 103 个测试文件 |
| 适配器 | LangChain / LlamaIndex / Mastra + Vercel AI SDK / Claude Agents SDK / OpenAI Agents SDK |
| 客户端 | TypeScript、Python、Go、Swift |
| 部署 | Node 服务 + Postgres/SQLite + KEK;仓库仅提供 demo/testing 的 Postgres compose |
| 硬件需求 | 无 GPU,512MB 内存起 |