open-connector 是 AI Agent 与外部应用之间的凭证网关,凭证保存在网关侧而非 Agent 环境中,Agent 只能发现和调用预定义的 Actions,避免 API Key 泄露到 prompt 或日志中。
AI agents 的能力取决于它们能访问哪些工具。一个能读取 GitHub issues、发 Slack 消息、更新 Notion 页面、拉取 BigQuery 报表的 agent,才能真正完成工作。而实现这些能力的常见方式也是最危险的方式:把 API keys 和 OAuth tokens 粘贴到 agent 的运行环境,然后祈祷它们不会泄露到 prompt、日志或模型的上下文窗口中。
open-connector 就是针对这个问题的开源解决方案。它架设在 agent 与它们调用的应用之间,将所有凭证隔离在自己边界之内,并向 agent 提供一个干净的 Actions 目录,供它们发现和调用。本文涵盖:它是什么、适用于什么场景、如何使用,以及如何在 NEXUS AI 上一键部署一个从启动起就开启认证的实例。
open-connector 由 OOMOL 构建和维护,采用 Apache-2.0 许可证。NEXUS AI 与 OOMOL 无隶属关系。open-connector 项目在其部署文档中将 NEXUS AI 列为一键部署选项。
open-connector 是一个面向 AI agents 的连接器网关,也是 Pipedream 和 Composio 等托管工具的开源替代方案。你只需将应用账号连接一次,agent 和应用就可以通过它调用这些应用,使用共享的 providers 目录和预构建的 Actions。
截至 2026 年 9 月,公共目录列出了 1,566 个 providers 和 18,267 个 Actions,覆盖 GitHub、Gmail、Notion、Slack、Airtable、Supabase、BigQuery、Google Analytics 等产品。
凭证边界。API keys、OAuth tokens 和自定义凭证存在于运行时内部,采用静态加密。Agent 收到的是 Action 结果和安全账号标签,绝不会是凭证本身。
可审查的 Action 契约。每个 Action 都有请求和响应 schema 及其所需的作用域,因此 agent(或开发者)可以在执行前清楚地看到一次调用会做什么。
运行时控制。运行时 tokens、scopes、每个 Action 的允许和阻止策略、多账号的命名连接,以及运行日志脱敏。
用于浏览目录、配置凭证、创建运行时 tokens、调试 Actions 和审查最近运行的 Web 控制台。
Agent 或应用调用 open-connector。open-connector 检查调用者的 token 和策略,查找正确的连接,对 provider 执行 Action,然后返回结果。Provider 凭证永远不会离开网关。
AI agent / app ──SDK · CLI · MCP · HTTP──▶ open-connector ──▶ GitHub, Slack, Notion, ...
│
├─ credentials (encrypted)
├─ tokens, scopes, allow/block policies
└─ run logs
给编码 agents 提供安全的工具访问。将 Claude Code、Cursor 或任何 MCP client 指向 open-connector,让它搜索和执行跨应用的 Actions,而无需在 agent 的配置中放入任何 provider token。
构建在用户应用上执行操作的 agent 产品。如果你的产品需要代表用户创建 issues、发送邮件或读取电子表格,open-connector 为你提供一个统一的 API 和一致的 Action 契约,无需维护数十个独立集成。
保持集成在可控范围内。自托管意味着凭证、日志和策略都留在你自己运行的基础设施上,这对安全审查和合规性很重要。
先从托管开始,后续再转私有部署。OOMOL 也提供带托管 OAuth 的托管运行时。Provider ids、Action ids 和 schema 在托管版和自托管版之间是相同的,所以你可以切换而不必重写 agent。
一个没有任何 tokens 配置的新 open-connector 会接受所有请求:任何找到这个 URL 的人都可以使用控制台和执行 Actions。NEXUS AI 模板在部署时就堵住了这个漏洞。它要求 admin token,在服务器上生成加密密钥和运行时 token,并将公共 origin 设置为你的部署 URL,从而让每个入口从启动起就要求认证。
打开 open-connector 模板并点击 Deploy,或者使用 open-connector 自己的部署文档中的 Deploy to NEXUS AI 按钮。登录或创建一个免费的 NEXUS AI 账号;无需信用卡。
该链接从源码构建仓库的 docker/Dockerfile,因此你总是获得当前版本。
部署表单要求一个值:OOMOL_CONNECT_ADMIN_TOKEN。选择一个长的随机字符串并保存到密码管理器中。这是登录控制台和管理 API 的凭证。
其他所有内容都由系统处理:
OOMOL_CONNECT_ENCRYPTION_KEY 在服务器上生成,用于加密存储的凭证。
OOMOL_CONNECT_RUNTIME_TOKEN 在服务器上生成,这会为 /v1 和 /mcp 开启认证。
OOMOL_CONNECT_ORIGIN 设置为你的部署 URL,这样 OAuth callbacks 就会指向正确的地址。
这些 secrets 都不会出现在部署链接中。点击 Deploy 并观察构建过程。当状态变为 Running 时,你将获得一个公共 HTTPS URL,例如 https://open-connector-abc.nexusai.run。
打开你的 URL 并输入 admin token。Overview 页面显示运行时就绪状态、可用的 providers、可执行的 Actions 以及最近的调用。
要确认运行时工作正常,可以运行一个无需认证的 Action。运行时调用需要运行时 token(你将在下一步创建),因此你也可以先从控制台的 Action debugger 尝试。
GitHub 是最简单的带凭证示例,因为它接受 personal access token。在控制台中打开 GitHub 并粘贴 token。或者使用管理 API:
curl -s -X PUT https://<your-app>.nexusai.run/api/connections/github \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H 'content-type: application/json' \
-d '{"authType":"api_key","values":{"apiKey":"github_pat_..."}}'
对于 Google 或 Slack 等 OAuth providers,在该 provider 处注册一个 OAuth app 并使用此回调 URL:
https://<your-app>.nexusai.run/oauth/callback
控制台(或 GET /api/oauth/configs)显示每个 provider 确切期望的 expectedRedirectUri。将 client ID 和 secret 粘贴到控制台,然后授权。
在控制台的 Access 选项卡中,为每个 agent 或应用创建一个运行时 token。Tokens 以 oct_ 开头,可以限制到特定的 Actions 和连接,这样一个报表 agent 就永远不会获得对你仓库的写访问权。
通过 HTTP 调用一个 Action:
curl -s -X POST https://<your-app>.nexusai.run/v1/actions/github.get_current_user \
-H "Authorization: Bearer oct_..." \
-H 'content-type: application/json' \
-d '{"input":{}}'
claude mcp add --transport http open-connector https://<your-app>.nexusai.run/mcp \
--header "Authorization: Bearer oct_..."
Cursor(.cursor/mcp.json):
{
"mcpServers": {
"open-connector": {
"url": "https://<your-app>.nexusai.run/mcp",
"headers": { "Authorization": "Bearer oct_..." }
}
}
}
现在让 agent 执行"列出我连接的应用"或"找到创建 GitHub issue 的 Action"。它通过 search_actions 发现 Actions,通过 get_action_guide 阅读指南,通过 execute_action 执行它们,而 GitHub token 始终留在 open-connector 内部。
模板将数据存储在容器内的 SQLite 中。这对于试用来说没问题:数据在重启后保留,但重新构建就会从空白开始。对于需要持久化的数据:
使用 PostgreSQL。将 OOMOL_CONNECT_DATABASE_URL 设置为 PostgreSQL 连接 URL,例如 NEXUS AI 托管数据库。
先运行迁移。PostgreSQL 迁移是显式的。在首次启动前以及每个添加了新迁移的新版本前运行 npm run runtime:migrate;在 schema 变为最新之前服务器拒绝启动。参见运行时数据库指南。
保留加密密钥。存储的凭证使用 OOMOL_CONNECT_ENCRYPTION_KEY 加密。将生成的密钥从部署的环境变量复制到你的 secrets 管理器中,并在迁移或重新部署时保持不变。
在付费 NEXUS AI 计划上使用自定义域名,并将 OAuth apps 的回调 URL 更新为匹配地址。
Is open-connector free?
是的。open-connector 采用 Apache-2.0 许可证开源。你可以运行在 NEXUS AI Free 计划上,该计划包含一个带公共 HTTPS URL 的活跃部署,无需信用卡。
Do I need to register my own OAuth apps?
对于自托管运行时上的 OAuth providers,是的:你需要在每个 provider 处注册一个 OAuth app 并将其指向你的 /oauth/callback URL。像 GitHub(personal access tokens)这样的 API-key providers 和无需认证的 providers 可以在不注册的情况下工作。如果你想要托管 OAuth 而不注册 apps,OOMOL 提供托管运行时。
Can Claude Code and Cursor use open-connector?
可以。两者都通过 Authorization header 中的运行时 token 连接到 /mcp 端点,如 Step 6 所示。任何支持 HTTP transport 和自定义 headers 的 MCP client 都以相同方式工作。
Where are my credentials stored, and who can see them?
存储在你自己的 open-connector 数据库中,用你的加密密钥加密。Agent 永远不会收到 provider secrets,只收到 Action 结果和安全账号标签。运行时 tokens 可以限制到特定的 Actions 和连接。
What happens to my data if I rebuild the deployment?
使用默认的 SQLite 存储,重新构建会从空数据库开始,因此连接需要重新添加。停止和启动会保留数据。对于需要保留的数据,请使用 PostgreSQL。
Is the Deploy to NEXUS AI button official?
是的。open-connector 项目在其 README 和部署文档中将 NEXUS AI 列出,与 Cloudflare、Fly.io 和其他平台并列。