oomol-lab/open-connector
GitHub: oomol-lab/open-connector
开源 AI Agent 认证网关,将 1000+ SaaS 服务的凭证管理与操作执行统一封装,让 Agent 安全地访问用户已有工具。
Stars: 1051 | Forks: 55

[English](README.md) | [简体中文](docs/README.zh-CN.md) | [日本語](docs/README.ja.md) | [Русский](docs/README.ru.md) | [Français](docs/README.fr.md)
[](LICENSE.txt)




[](https://oomol.com/apps)
[](https://oomol.com/apps)
OpenConnector 是一个开源的 AI agent 连接器网关,也是 Composio 的替代方案。
只需连接一次用户应用账户,即可向 agent 和应用公开一个包含 1,000 多个 Provider 和 9,400 多个预构建 Action 的共享目录。
在应用代码中使用 [Connector SDK](https://github.com/oomol-lab/connector-sdk),将 [oo CLI](https://github.com/oomol-lab/oo-cli) 用作本地 agent 中继,在 agent 主机端使用 MCP,在自定义客户端中使用 HTTP/OpenAPI,并使用 Web Console 进行管理和调试。
- 将凭证、scope、schema、策略和运行日志保留在可检查的 runtime 中。
- 支持本地运行,在 Fly.io 上运行,在兼容 Cloudflare 的基础设施上运行,或通过 OOMOL 托管的 runtime 运行。
- 在开源和商业 SaaS 部署中使用相同的 provider ID、Action ID、schema 和契约。
## 提供的功能
- 涵盖 GitHub、Gmail、Notion、BigQuery、Google Analytics、Supabase、Airtable、Slack 等产品的可用连接器目录。
- 支持 API key、OAuth2、自定义凭证和免授权 Provider 的凭证处理。
- 可检查的 Action 契约:请求/响应 schema、所需 scope 以及延迟加载的 executor 源码。
- 用于连接身份、scope、runtime token、Action 允许/阻止策略、临时文件传输和脱敏运行日志的 runtime 控制功能。
- 面向本地 Docker 或 Node.js、配合持久化 SQLite 存储的 Fly.io、配合 D1/R2/Static Assets 的 Cloudflare Workers 以及 OOMOL 托管 runtime 的多种部署选项。
## 适用场景
在 agent 需要持久访问用户已使用的工具,且不愿将 Provider 凭证交给 agent 进程的场景下,OpenConnector 非常适合相关产品。
- 需要跨工作应用、开发工具、数据系统、通信平台和 AI 服务进行复用访问的 Agent 产品。
- 正在添加 agent 工作流,且需要稳定、可检查的 Action 契约来实现用户应用访问的产品。
- 希望通过托管授权提升速度,同时保留未来向私有或自托管 runtime 控制迁移路径的团队。
## 开发者工具
| 工具 | 用途 |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Connector SDK](https://github.com/oomol-lab/connector-sdk) | 轻量级 TypeScript HTTP 客户端。将 `OpenConnector` 用于自托管 runtime,或将 `Connector` / `ProjectConnector` 用于 OOMOL 托管的个人和 SaaS 终端用户连接。 |
| [oo CLI](https://github.com/oomol-lab/oo-cli) | 用于连接器 Action 的本地 agent 中继。`oo connector` 可以针对 OOMOL 托管或自托管的 OpenConnector runtime 搜索、检查和运行 Action。 |
| MCP | 通过 `http://localhost:3000/mcp` 向支持 MCP 的 agent 主机公开应用 Action。 |
| HTTP / OpenAPI | 直接调用 `/v1/actions/*` 或检查生成的 `/openapi.json` 文档。 |
Endpoint 详情、响应封装、auth header、MCP 工具和 Action 指南示例位于
[docs/runtime-api.md](docs/runtime-api.md) 中。
## Dashboard 预览
OpenConnector 自带本地 Dashboard,可用于浏览连接器、配置凭证、创建 runtime token 以及检查 runtime 使用情况。
### 连接器目录
使用连接器目录可以查看可用的服务、搜索 Provider,并从一个统一的界面打开它们的 Action 和凭证设置。

### 使用情况概览
部署完成后,使用概览页面可以监控 runtime 的就绪状态、可用的 Provider、可执行的 Action、最近的失败记录、工具调用趋势以及最近的调用记录。

Provider 名称和商标归其各自所有者所有,仅用于标识和实现互操作性。
## 工作原理
```
flowchart LR
Agent["AI Agent / App"] -->|"SDK / CLI / MCP / HTTP"| Gateway["OpenConnector Gateway"]
Gateway --> Auth["Credential & OAuth Boundary"]
Gateway --> Catalog["Provider Catalog"]
Gateway --> Actions["Open-source Action Executors"]
Gateway --> Policy["Tokens, Scopes, Allow/Block Policy"]
Gateway --> Logs["Run Logs"]
Actions --> Providers["1,000+ Providers"]
Console["Web Console"] --> Gateway
Cloudflare["Cloudflare Workers, D1, R2"] -. deploy .-> Gateway
```
应用和 agent 会发现 Action、检查 schema 和 scope、选择连接别名,并通过网关执行。Provider 的密钥保留在 runtime 边界之后;agent 接收运行所需的元数据、安全的账户标签以及执行结果。
## 使用路径
| 路径 | 最适合 | 包含内容 |
| ---------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 开源自托管 | 希望获得完全控制权的开发者和团队 | 本地 Docker 或 Node runtime,SQLite 存储,MCP,HTTP,OpenAPI 和 Web Console |
| Fly.io 自托管 | 希望使用托管式 Docker runtime 的团队 | Node Docker runtime,Fly volume 上的 SQLite 存储,TLS,健康检查,MCP,HTTP,OpenAPI 和 Web Console |
| 兼容 Cloudflare 的部署 | 希望使用轻量级托管 runtime 的团队 | Workers runtime,D1 状态,R2 传输文件,以及用于 console 的 Static Assets |
| [OOMOL](https://oomol.com/) | 受限于 OAuth 审批或发布截止日期的团队 | 托管式 auth 和 runtime 基础设施,具有相同的 provider 和 Action 契约;与开源接口兼容,便于日后进行私有或自托管部署 |
## Cloudflare 快速入门视频
[](https://www.youtube.com/watch?v=R0V1ZdCuTgc)
[Cloudflare Workers 部署演示](https://www.youtube.com/watch?v=R0V1ZdCuTgc) 展示了如何通过 Workers、D1、R2 和 Web Console 在 Cloudflare 上启动 OpenConnector。该视频遵循与 [docs/cloudflare.md](docs/cloudflare.md) 相同的流程:创建 Cloudflare 资源,复制 `wrangler.example.jsonc` 为 `wrangler.local.jsonc`,应用 D1 迁移,设置所需的密钥,并运行 `npm run deploy:cloudflare`。
## 快速入门
使用 Docker Compose 启动 runtime:
```
docker compose up --build
```
打开本地 console 和生成的 API 参考文档:
```
http://localhost:3000
http://localhost:3000/docs
```
运行一个免授权 Action 来验证 runtime:
```
curl -s -X POST http://localhost:3000/v1/actions/hackernews.get_top_stories \
-H 'content-type: application/json' \
-d '{"input":{}}'
```
有关完整的本地设置、首次 Provider 连接、OAuth 流程和 runtime 设置,请参阅 [docs/quickstart.md](docs/quickstart.md)。
## 连接 Provider
GitHub 是最简单的凭证示例,因为它可以使用个人访问 token:
```
curl -s -X PUT http://localhost:3000/api/connections/github \
-H 'content-type: application/json' \
-d '{"authType":"api_key","values":{"apiKey":"github_pat_..."}}'
curl -s -X POST http://localhost:3000/v1/actions/github.get_current_user \
-H 'content-type: application/json' \
-d '{"input":{}}'
```
有关 OAuth2 应用、命名连接、凭证加密、token 刷新和 Action 策略,请参阅 [docs/credentials.md](docs/credentials.md) 和 [docs/configuration.md](docs/configuration.md)。
## Web Console
对于基于 npm 的本地开发,请打开 `http://localhost:5173`;Web Console 开发服务器会将 API 请求代理到 `http://localhost:3000` 的 runtime。对于 Docker 或构建好的 Node runtime,可以通过 `http://localhost:3000` 访问 console。
该 console 支持 Provider 浏览、API key 和 OAuth 客户端配置、runtime token 创建、Action schema 检查、Action 调试、近期运行审查,以及访问生成的 OpenAPI 和 MCP 元数据。
## Cloudflare 部署
OpenConnector 可以在 Cloudflare 上运行,使用 Workers 作为 runtime,使用 D1 进行状态管理,使用 R2 传输文件,以及使用 Static Assets 提供 Web Console。
有关资源创建、迁移、密钥、本地 Worker 预览和远程部署,请参阅 [docs/cloudflare.md](docs/cloudflare.md)。
## Fly.io 部署
OpenConnector 也可以在 Fly.io 上运行,使用 Node Docker runtime 和 Fly volume 上的持久化 SQLite 存储。
有关应用创建、volume 设置、密钥配置、部署、自定义域名和扩展的信息,请参阅 [docs/fly-io.md](docs/fly-io.md)。
## 想直接使用它?
上述路径适用于希望将连接器集成到其自身产品、runtime 或基础设施中的团队。如果您想先尝试 SaaS 连接体验,或者直接在日常工作中使用它,则无需先部署 OpenConnector 或集成 SDK、CLI、MCP 或 HTTP API。
[Wanta](https://wanta.ai/) 是使用同样共享的 1,000 多种 SaaS/Provider 覆盖范围的桌面产品入口。只需连接一次账户,即可使用自然语言在已连接的工具中进行搜索、组织、创建和同步。
| 如果您想 | Wanta 提供 |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| 直接尝试 1,000 多种 SaaS 连接 | 无需先部署 runtime 或集成 SDK/CLI,即可使用相同的 SaaS/Provider 覆盖范围。 |
| 在日常工作中使用 Agent | 通过自然语言跨邮件、聊天、文档、数据、项目、支持、开发工具和营销工具进行工作。 |
| 与团队共享已连接的功能 | 只需配置一次连接和访问 scope;队友无需设置即可使用它们,同时密钥、token 和凭证保持隐藏状态。 |
## 文档
- [快速入门](docs/quickstart.md)
- [开发者工具](docs/sdk-cli.md)
- [Gmail OAuth 和 SDK 教程](docs/gmail-oauth-sdk.md)
- [Runtime API 和 MCP](docs/runtime-api.md)
- [Fly.io 部署](docs/fly-io.md)
- [Cloudflare 部署](docs/cloudflare.md)
- [配置](docs/configuration.md)
- [凭证和 OAuth](docs/credentials.md)
- [目录格式](docs/catalog-format.md)
- [验证语言](docs/verification.md)
- [贡献指南](CONTRIBUTING.md)
- [行为准则](CODE_OF_CONDUCT.md)
- [安全](SECURITY.md)
## 开发
使用 Node.js 22 或更高版本:
```
npm install
npm run dev
```
本地 API runtime 监听 `http://localhost:3000`。Web Console 开发服务器监听 `http://localhost:5173`,并将 API 请求代理到 runtime。
在提交 Pull Request 之前:
```
npm run fix-check
npm test
```
Provider 代码位于 `src/providers/
` 下。有关 Provider 的贡献规则,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md#adding-providers)。
## 许可范围
除非另有说明,为本仓库编写的源代码、脚本、生成的项目脚手架、测试和文档均使用 Apache License, Version 2.0 进行授权。请参阅 [LICENSE.txt](LICENSE.txt)。
本仓库的 Apache-2.0 许可证不授予对第三方产品、Provider、应用、API、商标、服务标记、商业名称、徽标、图标、品牌资产、文档、屏幕截图或其他由各自所有者拥有的受版权保护材料的权利。
Provider 和应用名称、元数据、链接、scope、权限以及可选的徽标/图标仅为标识服务并实现互操作性而包含。所有第三方品牌和产品权利均保留归其各自所有者所有。包含在此目录中并不意味着获得这些所有者的认可、赞助、合作、认证或验证。
如果您贡献 Provider 元数据或资产,请仅提交您有权提交的材料。建议链接到官方公开资产,而不是将品牌文件复制到本仓库中。标签:MITM代理, 程序员工具, 自动化攻击, 请求拦截