open-connector: connect your AI agents to 1,500+ apps without handing them your credentials
AI agents are only as useful as the tools they can reach. An agent that can read your GitHub issues, post to Slack, update a Notion page, and pull a BigQuery report can do real work. The usual way to get there is also the riskiest: paste API keys and OAuth tokens into the agent's environment and hope nothing leaks into a prompt, a log, or a model's context window.
By Platform Super Admin • • AI Agents · Open Source
Published: September 27, 2026 Category: AI Agents · Open Source Reading time: 9 minutes Author: NEXUS AI Team
AI agents are only as useful as the tools they can reach. An agent that can read your GitHub issues, post to Slack, update a Notion page, and pull a BigQuery report can do real work. The usual way to get there is also the riskiest: paste API keys and OAuth tokens into the agent's environment and hope nothing leaks into a prompt, a log, or a model's context window.
open-connector is an open-source answer to that problem. It sits between your agents and the apps they use, holds every credential behind its own boundary, and gives agents a clean catalog of Actions they can discover and call. This guide covers what it is, what to use it for, how to use it, and how to deploy your own instance on NEXUS AI in one click with authentication switched on from the first start.
open-connector is built and maintained by OOMOL under the Apache-2.0 license. NEXUS AI is not affiliated with OOMOL. The open-connector project lists NEXUS AI as a one-click deploy option in its deployment docs.
What is open-connector?
open-connector is a connector gateway for AI agents, and an open-source alternative to hosted tools such as Pipedream and Composio. You connect app accounts to it once. Your agents and applications then call those apps through it, using a shared catalog of providers and prebuilt Actions.
As of September 2026 the public catalog lists 1,566 providers and 18,267 Actions, covering products such as GitHub, Gmail, Notion, Slack, Airtable, Supabase, BigQuery, and Google Analytics.
What it gives you:
- A credential boundary. API keys, OAuth tokens, and custom credentials live inside the runtime, encrypted at rest. Agents receive Action results and safe account labels, never the secrets themselves.
- Inspectable Action contracts. Every Action has request and response schemas and its required scopes, so an agent (or a developer) can see exactly what a call does before running it.
- Runtime controls. Runtime tokens, scopes, allow and block policies per Action, named connections for multiple accounts, and redacted run logs.
- A web console for browsing the catalog, configuring credentials, creating runtime tokens, debugging Actions, and reviewing recent runs.
How it works
An agent or app calls open-connector. open-connector checks the caller's token and policy, looks up the right connection, runs the Action against the provider, and returns the result. The provider credential never leaves the gateway.
AI agent / app ──SDK · CLI · MCP · HTTP──▶ open-connector ──▶ GitHub, Slack, Notion, ...
│
├─ credentials (encrypted)
├─ tokens, scopes, allow/block policies
└─ run logs
What to use open-connector for
- Give coding agents safe access to your tools. Point Claude Code, Cursor, or any MCP client at open-connector and let it search and run Actions across your apps, without putting a single provider token in the agent's config.
- Build agent products that act on your users' apps. If your product needs to create issues, send emails, or read spreadsheets on a user's behalf, open-connector gives you one API and consistent Action contracts instead of dozens of separate integrations.
- Keep integrations under your control. Self-hosting means credentials, logs, and policies stay on infrastructure you run, which matters for security reviews and compliance.
- Start hosted, move private later. OOMOL also offers a hosted runtime with managed OAuth. Provider ids, Action ids, and schemas are the same across hosted and self-hosted, so you can switch without rewriting your agent.
Four ways to call it
| Interface | Best for |
|---|---|
MCP (/mcp) |
Agent hosts such as Claude Code and Cursor. Tools: list_apps, list_connections, search_actions, get_action_guide, execute_action |
HTTP / OpenAPI (/v1/actions/*, /openapi.json) |
Custom clients, scripts, and backends |
| Connector SDK | TypeScript application code |
| oo CLI | Running Actions from a local terminal or agent relay |
How to deploy open-connector on NEXUS AI
A fresh open-connector with no tokens configured accepts every request: anyone who finds the URL can use the console and run Actions. The NEXUS AI template closes that gap at deploy time. It requires an admin token, generates the encryption key and a runtime token on the server, and sets the public origin to your deployment's URL, so every surface requires authentication from the first start.
Step 1 - Open the one-click deploy link
Go to the open-connector template and click Deploy, or use the Deploy to NEXUS AI button in open-connector's own deployment docs. Sign in or create a free NEXUS AI account; no credit card is needed.
The link builds the repository's docker/Dockerfile from source, so you always get the current version.
Step 2 - Choose your admin token
The deploy form asks for one value: OOMOL_CONNECT_ADMIN_TOKEN. Pick a long random string and save it in your password manager. It is how you sign in to the console and the admin API.
Everything else is handled for you:
OOMOL_CONNECT_ENCRYPTION_KEYis generated on the server and encrypts stored credentials.OOMOL_CONNECT_RUNTIME_TOKENis generated on the server, which switches on authentication for/v1and/mcp.OOMOL_CONNECT_ORIGINis set to your deployment URL, so OAuth callbacks point at the right place.
None of these secrets appear in the deploy link. Click Deploy and watch the build. When it reaches Running, you have a public HTTPS URL such as https://open-connector-abc.nexusai.run.
Step 3 - Sign in to the web console
Open your URL and enter your admin token. The Overview page shows runtime readiness, available providers, executable Actions, and recent calls.
To confirm the runtime works, run a no-auth Action. Runtime calls need a runtime token, which you create in the next step, so you can also try it from the console's Action debugger first.
Step 4 - Connect your first provider
GitHub is the simplest credentialed example because it accepts a personal access token. In the console, open GitHub and paste the token. Or use the admin 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_..."}}'
For OAuth providers such as Google or Slack, register an OAuth app with that provider and use this callback URL:
https://<your-app>.nexusai.run/oauth/callback
The console (or GET /api/oauth/configs) shows the exact expectedRedirectUri for each provider. Paste the client ID and secret into the console, then authorize.
Step 5 - Create a runtime token for each agent
In the console's Access tab, create a runtime token for each agent or app. Tokens start with oct_ and can be limited to specific Actions and connections, so a reporting agent never gets write access to your repos.
Call an Action over HTTP:
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":{}}'
Step 6 - Connect your agent over MCP
Claude Code:
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_..." }
}
}
}
Now ask your agent to "list my connected apps" or "find the Action that creates a GitHub issue". It discovers Actions with search_actions, reads the guide with get_action_guide, and runs them with execute_action, while the GitHub token stays inside open-connector.
Taking it to production
The template stores data in SQLite inside the container. That is fine for trying it out: data survives restarts, but a rebuild starts fresh. For data that has to last:
- Use PostgreSQL. Set
OOMOL_CONNECT_DATABASE_URLto a PostgreSQL connection URL, such as a NEXUS AI managed database. - Run migrations first. PostgreSQL migrations are explicit. Run
npm run runtime:migratebefore the first start and before each new version that adds migrations; the server refuses to start until the schema is current. See the runtime database guide. - Keep the encryption key. Stored credentials are encrypted with
OOMOL_CONNECT_ENCRYPTION_KEY. Copy the generated value from your deployment's environment into your secrets manager, and keep it unchanged when you move or redeploy. - Use a custom domain on a paid NEXUS AI plan, and update your OAuth apps' callback URLs to match.
Frequently asked questions
Is open-connector free?
Yes. open-connector is open source under Apache-2.0. You can run it on the NEXUS AI Free plan, which includes one active deployment with a public HTTPS URL and no credit card.
Do I need to register my own OAuth apps?
For OAuth providers on a self-hosted runtime, yes: you register an OAuth app with each provider and point it at your /oauth/callback URL. API-key providers such as GitHub (personal access tokens) and no-auth providers work without one. If you want managed OAuth without registering apps, OOMOL offers a hosted runtime.
Can Claude Code and Cursor use open-connector?
Yes. Both connect to the /mcp endpoint with a runtime token in the Authorization header, as shown in Step 6. Any MCP client that supports HTTP transport and custom headers works the same way.
Where are my credentials stored, and who can see them?
Inside your open-connector database, encrypted with your encryption key. Agents never receive provider secrets, only Action results and safe account labels. Runtime tokens can be limited to specific Actions and connections.
What happens to my data if I rebuild the deployment?
With the default SQLite storage, a rebuild starts with an empty database, so connections need to be added again. Stopping and starting keeps the data. Use PostgreSQL for anything you need to keep.
Is the Deploy to NEXUS AI button official?
Yes. The open-connector project lists NEXUS AI in its README and deployment docs, alongside Cloudflare, Fly.io, and other platforms.
Deploy your own open-connector: nexusai.run/templates/open-connector
More one-click open-source apps: nexusai.run/templates
Maintain an open-source project? Add a Deploy to NEXUS AI button to your README: nexusai.run/kb/deploy-button