Sandbox
@oomol-lab/open-connector

Auth gateway for agent access to SaaS providers

OpenConnector exposes a shared catalog of provider Actions to agents and apps through SDK, CLI, MCP, HTTP, and OpenAPI. It handles OAuth, API keys, scoped access, and run logging behind a runtime boundary so the agent gets safe metadata and results instead of raw secrets.

5,679 stars488 forksTypeScriptUpdated 7d ago
Who it's for

Builders who want Claude Code, Codex, Cursor, or other agents to act on connected SaaS accounts.

What it delivers

You can connect an app once and reuse the same provider actions across agents and clients without reworking credentials each time.

What it does

Shared provider catalog

Browses 1,000+ providers and 10,000+ prebuilt Actions for services like GitHub, Gmail, Notion, Slack, and Supabase.

Credential and OAuth handling

Supports API keys, OAuth2, custom credentials, and no-auth providers inside the runtime boundary.

Inspectable action contracts

Shows request and response schemas, required scopes, and lazy-loaded executor source for each Action.

Runtime policy controls

Adds connection identity, runtime tokens, allow/block policies, temporary file transit, and redacted run logs.

Multiple access paths

Works through the Connector SDK, `oo` CLI, MCP at `/mcp`, direct HTTP endpoints, and generated OpenAPI.

Web console

Provides a local dashboard for browsing providers, configuring credentials, creating runtime tokens, and inspecting runs.

How to get it

  1. 1Start the runtime from the published image with Docker Compose
    docker compose up
  2. 2This pulls ghcr.io/oomol-lab/open-connector:latest. To build from source instead
    docker compose -f docker-compose.yml -f docker-compose.build.yml up --build
  3. 3Open the local console and generated API reference
    http://localhost:3000
    http://localhost:3000/docs
  4. 4Run a no-auth Action to verify the runtime
    curl -s -X POST http://localhost:3000/v1/actions/hackernews.get_top_stories \
      -H 'content-type: application/json' \
      -d '{"input":{}}'

README

OpenConnector is an open-source connector gateway for AI agents and an alternative to Pipedream/Composio. Connect user app accounts once, then expose a shared catalog of 1,000+ providers and 10,000+ prebuilt Actions to agents and applications.

OOMOLSelf-hostedMore platforms
Managed OAuth and hosted runtime, ready to use. No deployment or OAuth app setup.Run locally or on your own infrastructure with Docker or Node.js. You manage storage and OAuth apps.Cloudflare, Fly.io, RepoCloud, nibrun, and more.
🚀 OOMOL HostedSelf-hostMore platforms

Use the Connector SDK from app code, oo CLI as the local-agent relay, MCP from agent hosts, HTTP/OpenAPI from custom clients, and the Web Console for administration and debugging.

  • Keep credentials, scopes, schemas, policies, and run logs inside an inspectable runtime.
  • Run locally, on your own infrastructure, or through OOMOL's hosted runtime.
  • Use the same provider ids, Action ids, schemas, and contracts across open-source and commercial SaaS deployments.

What It Provides

  • A working connector catalog across products such as GitHub, Gmail, Notion, BigQuery, Google Analytics, Supabase, Airtable, Slack, and more.
  • Credential handling for API keys, OAuth2, custom credentials, and no-auth providers.
  • Inspectable Action contracts: request/response schemas, required scopes, and lazy-loaded executor source.
  • Runtime controls for connection identity, scopes, runtime tokens, action allow/block policies, temporary file transit, and redacted run logs.
  • Deployment options for local Docker or Node.js with SQLite or PostgreSQL state and local or S3-compatible transit storage, plus OOMOL's hosted runtime. Additional managed platforms are listed in deployment options.

Where It Fits

OpenConnector fits products where agents need durable access to the tools users already use, without handing provider credentials to the agent process.

  • Agent products that need reusable access across work apps, developer tools, data systems, communication platforms, and AI services.
  • Products adding agent workflows that need stable, inspectable Action contracts for user app access.
  • Teams that want hosted auth for speed while keeping a path to private or self-hosted runtime control.

Developer Tools

ToolPurpose
Connector SDKThin TypeScript HTTP client. Use OpenConnector for self-hosted runtimes, or Connector / ProjectConnector for OOMOL-hosted personal and SaaS end-user connections.
oo CLILocal agent relay for connector Actions. oo connector can search, inspect, and run Actions against OOMOL-hosted or self-hosted OpenConnector runtimes.
MCPExpose app Actions to MCP-capable agent hosts through http://localhost:3000/mcp.
HTTP / OpenAPICall /v1/actions/* directly or inspect the generated /openapi.json document.

Endpoint details, response envelopes, auth headers, MCP tools, and Action guide examples are in docs/runtime-api.md.

Dashboard Preview

OpenConnector ships with a local Dashboard for browsing connectors, configuring credentials, creating runtime tokens, and inspecting runtime usage.

Connector Catalog

Use the connector catalog to see available services, search for providers, and open their Actions and credential setup from one place.

OpenConnector connector catalog dashboard

Usage Overview

Use the Overview page after deployment to monitor runtime readiness, available providers, executable Actions, recent failures, tool call trends, and recent calls.

OpenConnector runtime overview dashboard

Provider names and trademarks belong to their respective owners and are used only for identification and interoperability.

How It Works

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

Apps and agents discover Actions, inspect schemas and scopes, select a connection alias, and execute through the gateway. Provider secrets stay behind the runtime boundary; agents receive the metadata, safe account labels, and execution results needed for the run.

Usage Paths

PathBest forIncludes
Open-source self-hostDevelopers and teams that want full controlLocal Docker or Node runtime, SQLite or PostgreSQL state, local or S3-compatible transit files, MCP, HTTP, OpenAPI, and Web Console
Kubernetes (Helm)Teams that run their own clustersHardened Helm chart with PVC-backed SQLite or PostgreSQL plus migration hooks, Ingress, autoscaling, and NetworkPolicy toggles
OOMOLTeams that want users to authorize accounts immediatelyOOMOL-provided OAuth apps, monthly included Connect credits, and hosted runtime infrastructure; the same provider and Action contracts keep a path open to later private or self-hosted deployment

Quick Start

[!NOTE] This starts a self-hosted runtime. OAuth providers require OAuth client credentials from apps you register with those providers. To let users authorize supported providers without setting up your own OAuth apps, use OOMOL-hosted connectors.

Start the runtime from the published image with Docker Compose:

docker compose up

This pulls ghcr.io/oomol-lab/open-connector:latest. To build from source instead:

docker compose -f docker-compose.yml -f docker-compose.build.yml up --build

Open the local console and generated API reference:

http://localhost:3000
http://localhost:3000/docs

Run a no-auth Action to verify the runtime:

curl -s -X POST http://localhost:3000/v1/actions/hackernews.get_top_stories \
  -H 'content-type: application/json' \
  -d '{"input":{}}'

See docs/quickstart.md for the full local setup, first provider connection, OAuth flow, and runtime settings.

Connect a Provider

GitHub is the simplest credentialed example because it can use a personal access 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":{}}'

For OAuth2 apps, named connections, credential encryption, token refresh, and action policies, see docs/credentials.md and docs/configuration.md.

Web Console

For npm-based local development, open http://localhost:5173; the Web Console dev server proxies API requests to the runtime on http://localhost:3000. For Docker or a built Node runtime, the console is served from http://localhost:3000.

The console supports provider browsing, API key and OAuth client configuration, runtime token creation, Action schema inspection, Action debugging, recent run review, and access to the generated OpenAPI and MCP metadata.

PostgreSQL Runtime Storage

The Node runtime uses SQLite by default and can use PostgreSQL 15 or newer when OOMOL_CONNECT_DATABASE_URL is configured. PostgreSQL migrations are explicit: run npm run runtime:migrate before starting a version with pending migrations. Server startup only checks schema readiness and never applies PostgreSQL DDL. See docs/configuration.md for configuration, permissions, TLS, and multi-instance requirements. The Docker image exposes the same runner as its migrate subcommand; see docs/docker-ghcr.md.

Docker Image (GHCR)

Run OpenConnector from a prebuilt image on GitHub Packages (GHCR): ghcr.io/oomol-lab/open-connector. Use latest for the newest release, a pinned released version for production, or tip for the latest main build.

See docs/docker-ghcr.md for tags, pulling, and running.

Build a Desktop Agent with Wanta

OpenConnector and Wanta are two open-source projects for AI Agents in the OOMOL ecosystem. OpenConnector connects Agents to external services such as Gmail, Slack, and Notion. Wanta provides a complete desktop Agent application powered by OpenCode and uses OpenConnector to work with connected SaaS services.

  • Run locally: Use your own OpenAI-compatible model without creating a Wanta account.
  • Build your own: Fork Wanta and customize its prompts, tools, interface, models, and branding.
  • Use hosted services: The optional hosted experience provides managed models, OAuth connections, and team workspaces.

Issues and pull requests are welcome.

Documentation

Development

Use Node.js 22 or newer:

npm install
npm run dev

The local API runtime listens on http://localhost:3000. The Web Console dev server listens on http://localhost:5173 and proxies API requests to the runtime.

Before opening a pull request:

npm run fix-check
npm test

Provider code lives under src/providers/<service>. See CONTRIBUTING.md for provider contribution rules.

License Scope

Unless otherwise noted, the source code, scripts, generated project scaffolding, tests, and documentation authored for this repository are licensed under the Apache License, Version 2.0. See LICENSE.txt.

The Apache-2.0 license for this repository does not grant rights to third-party products, providers, apps, APIs, trademarks, service marks, trade names, logos, icons, brand assets, documentation, screenshots, or other copyrighted materials owned by their respective holders.

Provider and app names, metadata, links, scopes, permissions, and optional logos/icons are included only to identify services and enable interoperability. All third-party brand and product rights remain with their respective owners. Inclusion in this catalog does not imply endorsement, sponsorship, partnership, certification, or verification by those owners.

If you contribute provider metadata or assets, only submit material you have the right to submit. Prefer linking to official public assets instead of copying brand files into this repository.

Community

Please keep issues and pull requests focused, respectful, and actionable. Participation in this project is governed by CODE_OF_CONDUCT.md.

Support OpenConnector

If OpenConnector is useful to you, giving it a ⭐ helps more developers discover the project.

How to star OpenConnector on GitHub

Contributors

Thanks to everyone who has helped build OpenConnector. Want to join them? See CONTRIBUTING.md.

OpenConnector contributors

Star History

Star historyStar history

Files in the repo

Repository payload34 top-level entries
  • .claude
  • .codex
  • .github
  • assets
  • deploy
  • docker
  • docs
  • examples
  • migrations
  • scripts
  • src
  • web
  • .bun-version
  • .dockerignore
  • .gitignore
  • .oxfmtrc.json
  • .oxlintrc.json
  • AGENTS.md
  • CLAUDE.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • docker-compose.build.yml
  • docker-compose.yml
  • fly.toml
  • LICENSE.txt
  • NOTICE.md
  • package-lock.json
  • package.json
  • README.md
  • SECURITY.md
  • tsconfig.json
  • vitest.config.ts
  • vitest.setup.ts
  • wrangler.example.jsonc

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k