Conector
Summary: Conector is a self-hosted MCP server that connects 1,178 apps (GitHub, Gmail, Slack, Notion, Stripe…) once and exposes their authenticated APIs as tools (1,416 of them) to 47 AI agents like Claude Code, Codex, Cursor and Copilot.
Discover available apps (
conector_apps, the only tool in this schema, read-only): lists the apps your token may use, each app's tools, and the panel URL where you connect more apps.Access any connected app's full API: every app gets an authenticated
<app>_requesttool for arbitrary API calls (e.g.github_request).Use purpose-built app tools: e.g.
outlook_search_mail,jira_search,slack_send_message.Connect apps in the web panel: one-click OAuth (107 apps), API key, username/password, device-code Microsoft 365, or no credentials at all.
Connect agents easily: per-agent tokens (
cnr_…) over Streamable HTTP at/mcp, or stdio viaconector stdio/conector mcp;conector install <agent>writes the config.Manage teams and security: admin/member roles, invitations, personal vs shared connections, per-token app limits, scrypt passwords, CSRF/CSP protection, encrypted (AES-256-GCM) credentials stored on your own server, audit log of every tool call.
Automate via REST API: the same tokens work with
/api/v1/appsand/api/v1/apps/<app>/request.Run it your way:
npx conector start, Docker, or Docker Compose, with a one-time admin setup link and env-var configuration.Extend it: app definitions are plain data files; add an app and run
npm run validate.
Provides tools for interacting with GitHub's API, enabling AI agents to manage repositories, issues, pull requests, and other GitHub resources.
Allows interaction with Gmail, enabling AI agents to search, read, and send emails through the Gmail API.
Provides OAuth-based integration with Google Workspace apps, covering Gmail, Google Drive, Calendar, Sheets, and more, allowing agents to access Google services through a single connection.
Provides tools for accessing and managing files and folders in Google Drive.
Allows interaction with HubSpot CRM for managing contacts, deals, and marketing data.
Provides tools for searching and managing Jira issues, projects, and workflows.
Provides tools for managing issues, projects, and teams in Linear.
Allows interaction with Notion, enabling AI agents to manage pages, databases, and content.
Allows interaction with Salesforce CRM for managing sales data, contacts, and opportunities.
Provides tools for sending messages and interacting with Slack channels and users.
Provides tools for managing payments, customers, subscriptions, and other Stripe resources.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Conectorcheck my unread Gmail and summarize the important ones"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Why Conector
AI agents can only use the tools they can reach. Wiring every agent to every app means juggling API keys, OAuth apps and config files on each machine, for each agent. Conector puts all of it in one place:
Connect an app once in the web panel, by signing in or pasting an API key.
Add Conector to your agents with one command or config snippet.
Every agent gets tools for every app you connected, over the Model Context Protocol.
Related MCP server: mcpgate
Features
Quick start
With Node.js 22 or later, in one command:
npx conector startInstalled from npm, Conector keeps its data in ~/.conector. For a permanent install, run npm install -g conector and
then conector start.
With Docker:
docker run -d --name conector -p 127.0.0.1:8790:8790 -v conector-data:/data ghcr.io/secra-solutions/conector
docker logs conector # shows the setup linkOr from source:
git clone https://github.com/Secra-Solutions/Conector.git
cd Conector
npm install
npm startThe first start prints a one-time setup link:
Conector 0.1.0 listening on http://127.0.0.1:8790 — public URL http://localhost:8790
No users yet. Create the admin account at:
http://localhost:8790/setup?code=…Open it, create the admin account, and then:
Apps: pick an app and connect it.
Connect agents: pick your agent, click Create a token, and copy the command or snippet.
Ask your agent to use the app, for example: "list my open GitHub pull requests".
With Docker Compose
From a clone of the repository:
docker compose up -d
docker compose logs conector # shows the setup linkThe data (users, tokens, encrypted credentials and the master key) lives in the conector-data volume. The compose
file only exposes the panel on 127.0.0.1:8790. Images for amd64 and arm64 are published at
ghcr.io/secra-solutions/conector: latest and X.Y.Z for releases, edge for the main branch.
Connect an agent
Each agent authenticates with its own access token (cnr_…) and talks to http://<server>/mcp over Streamable HTTP,
with an Authorization: Bearer header. Agents that can only start local (stdio) servers use the bundled bridge,
bin/stdio-bridge.js (or conector stdio), configured with CONECTOR_URL and CONECTOR_TOKEN. It has no
dependencies, so you can copy it to any machine with Node.js. On the machine where Conector stores its data, an agent
can also start conector mcp, which serves the same tools over stdio without the web server or a token.
Everything on one machine? Start the panel with npx conector start, connect your apps, and add Conector to your
editor in one click. The button adds npx -y conector mcp, which reads the same data in ~/.conector, so there's no
token to create:
Agents | |
CLIs | Claude Code, Codex, Gemini CLI, OpenCode, Amp, goose, Qwen Code, Factory Droid, Devin CLI, TRAE CLI, Mistral Vibe, Kimi Code CLI, Grok Build, Hermes Agent, Auggie CLI, CodeBuddy Code, Qoder CLI, MiniMax Code, Cortex Code, Deep Agents, fast-agent, Stakpak, ZCode, Pi, Oh My Pi, Muse Code, Autohand Code, CodeWhale, crow-cli, DimCode, Gajae Code, Minion Code, Nova, Poolside, siGit Code, VT Code, GLM Agent, Corust Agent |
Editors | Cursor, GitHub Copilot (VS Code), Cline, Kilo Code, Kiro, Junie, Google Antigravity |
Desktop and web | Claude Desktop, Hoplite |
Not supported yet | ChatGPT (it requires OAuth for MCP servers), Agoragentic and Dirac (they have no way to add MCP servers) |
From the panel, open Connect agents, pick your agent and click Create a token. Or, from a terminal on the server:
npm link # makes the `conector` command available
conector agents # list the supported agents
conector install claude-code # runs `claude mcp add …` with a new token
conector install cursor --user you@example.com
conector install codex --dry-run # show what it would doconector install uses the agent's own CLI when it is installed. Otherwise it merges the entry into the agent's JSON or
TOML config file and keeps a .conector-backup copy. When a file can't be merged safely (JSONC comments, YAML, an
existing table), it prints the snippet for you to paste.
Apps
Each app page offers the simplest way to connect it:
Continue with …: OAuth sign-in. An admin registers Conector's OAuth app once per provider under OAuth apps. The page shows the redirect URI and scopes to use. One registration covers all of the provider's apps: one Google OAuth app covers Gmail, Drive, Calendar, Sheets and the rest.
API key, or username and password: step-by-step instructions to find the key, and a connection test when you save.
Enable: public APIs that need no credentials.
Microsoft 365: sign-in with a device code, with no app registration needed.
Connections are personal (only you) or shared (everyone in the workspace; only admins can create them). When both exist, your personal connection wins.
Configuration
Set these environment variables, or put them in a .env file next to package.json (see .env.example). When
Conector is installed from npm, the .env file is read from the current directory instead.
Variable | Default | |
|
| Port to listen on. |
|
| Interface to bind. Use |
|
| Address that people and agents use. Some OAuth providers require |
| Extra | |
|
| Users, tokens, encrypted credentials, the master key and the audit log. |
|
| |
|
| With an |
|
| Idle time before panel sessions expire. Sessions also end when the server restarts. |
|
|
To reach Conector from other machines or from cloud agents, put an HTTPS reverse proxy or tunnel in front of it (Caddy,
nginx, Cloudflare Tunnel…) and set CONECTOR_PUBLIC_URL to its address.
Self-hosted apps must use https://, except on localhost. Many home servers have no certificate, so
CONECTOR_ALLOW_PRIVATE_HTTP=1 also accepts http:// for private network addresses: 10.x, 172.16–31.x, 192.168.x,
100.64–127.x (Tailscale), IPv6 unique local addresses, *.local, *.lan, *.home.arpa, host.docker.internal and
names without a dot. Two things to know before you turn it on: those apps' credentials then cross your network
unencrypted, and anyone who can create connections can make Conector call plain-HTTP services on your network. Cloud
metadata addresses stay blocked. In Docker, localhost is the container itself: use the host's LAN address or
host.docker.internal.
Users and security
Roles: admins manage users, OAuth apps and shared connections. Members connect their own apps and use the shared ones. Invitation and password reset links work once, and Conector never sends e-mail.
Tokens act as their user, can be limited to some apps and are shown only once. Conector stores only their SHA-256 hash.
Passwords are hashed with scrypt and must be at least 12 characters long. Repeated failed sign-ins are throttled.
The panel sets a strict Content Security Policy and checks a CSRF token and the origin on every form. It accepts only known
Hostheaders, which blocks DNS rebinding, and binds to127.0.0.1by default.App URLs built from user input (subdomains, self-hosted instances) are validated, so credentials can't be sent to another server.
The audit log records every tool call and every change made in the panel. It never stores request payloads or credentials.
Back up CONECTOR_DATA_DIR: without master.key, the stored credentials can't be decrypted. To report a
vulnerability, see SECURITY.md.
REST API
The same tokens work for scripts and automations:
curl -H "Authorization: Bearer $CONECTOR_TOKEN" http://localhost:8790/api/v1/apps
curl -H "Authorization: Bearer $CONECTOR_TOKEN" -H "Content-Type: application/json" \
-d '{"method":"GET","path":"/user"}' http://localhost:8790/api/v1/apps/github/requestCommand line
conector start Start the server
conector setup-link Print a link to create the first admin account
conector users | tokens List users or access tokens
conector invite <email> [--admin] Print an invitation link
conector reset-link <email> Print a password reset link
conector token <email> [--apps a,b] [--name N]
conector revoke <token id>
conector agents | install <agent> Add Conector to an agent
conector stdio stdio bridge for agents that only start local servers
conector mcp [--user <email>] MCP over stdio on this machine, without the web server or a token
conector apps [--connected] List the catalogAdding an app
Apps are plain data: a base URL, how to authenticate, a connection test and help text. A complete example:
{
id: "acme", name: "Acme", category: "productivity", description: "Projects and tasks in Acme",
website: "https://acme.example", docs: "https://developers.acme.example", logo: { favicon: "https://acme.example" },
baseUrl: "https://api.acme.example/v1",
fields: [{ id: "token", label: "API key", secret: true }],
auth: { type: "bearer" },
help: "1) In Acme open “Settings” → “API”. 2) Click “New key” and paste it here.",
test: { path: "/me", account: (d) => d.email },
}docs/ADDING_APPS.md documents every option (OAuth, client credentials, AWS signatures, custom
tools…). After editing, run npm run validate.
Development
npm run dev # restart on changes
npm test # unit and end-to-end tests
npm run validate # check every app definition (offline)
npm run validate:network # also call each app's API with fake credentials
npm run logos # regenerate app logos (npm run logos -- --agents for agents)The code is plain JavaScript (ES modules), with three runtime dependencies: Express, the MCP SDK and Zod. Pages are rendered on the server with an escaping template tag. The browser script is small, plain JavaScript.
bin/ conector CLI and the stdio bridge
src/ server, MCP, auth, encrypted store, OAuth
src/catalog app definitions (apps/*.js) and the engine that turns them into tools
src/ui pages, layout and icons
public/ CSS, JavaScript, fonts, brand and logos
scripts/ catalog validator and logo generator
test/ node:test suitesContributing
New apps, agent install guides, fixes and ideas are welcome. See CONTRIBUTING.md to get started, pick one of the good first issues (many are popular self-hosted apps that aren't in the catalog yet), or ask in Discussions. Everyone taking part follows the code of conduct.
Powered by Secra Solutions
Secra Solutions builds and maintains Conector, and releases it as open source so anyone can give their AI agents safe access to the tools they use.
Conector is our first open-source initiative for the community. If you find it useful, we'll launch more: star the repo, open an issue or send a pull request, and tell us what you'd like us to build next.
Credits
Inspired by Composio.
Geist fonts (SIL Open Font License 1.1), Phosphor icons (MIT) and brand glyphs from Simple Icons (CC0).
App and agent names and logos are trademarks of their owners. They are shown only to identify each service and don't imply endorsement.
License
Available Tools
1 toolconector_appsConnected appsARead-only
List the apps this Conector token can use, with their tools, and the panel address where the user connects more apps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description usefully discloses what the response contains (apps, their tools, the panel connection address), but says nothing about pagination, auth requirements, or behaviour when no apps are connected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that enumerates exactly what is returned, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value meaning, and it does describe the three things returned (apps, tools, panel address). It stops short of describing the shape of that data or edge cases, but it is adequate for a zero-parameter discovery call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate on the input side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (apps this Conector token can use), plus the payload contents (tools, panel address). There are no siblings to distinguish from, and the token-scoping makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named (none exist as siblings). Usage is only inferable from the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.1- First observed
conector_apps
TDQS
Scored across 1 tool
Only one tool exists, so there is no risk of selecting the wrong tool. Its purpose is clearly stated and distinct.
With a single tool named conector_apps, there is no inconsistency to assess. It uses snake_case and is readable.
A single tool is borderline thin for a server named Conector that implies broader app connection capabilities. It may be sufficient for discovery, but 1 tool is low.
The surface only lists apps and their tools, with no way to actually invoke or manage those app tools. This leaves a significant gap for an integration/connector server.
Maintenance
Related MCP Connectors
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with 220+ tools for building websites, sending email, managing contacts, invoicing, databases, automation, and more through a single secure connection. Features hardware-bound authentication and works with Claude Desktop, Claude Code, Cursor, and other MCP-compatible clients.MIT

mcpgateofficial
FlicenseNot gradedqualityAmaintenanceSelf-hosted MCP gateway that connects Claude, ChatGPT, and other AI agents to 20+ enterprise tools (GitLab, Jira, Notion, Google Workspace, Slack, Grafana, …) with OAuth, audit logs, and zero data leaving your infrastructure3-- AlicenseNot gradedqualityAmaintenanceConnects AI coding assistants and other clients to 2,000+ models and APIs — search, social, scraping, e-commerce, finance, plus LLM, image, video, and audio generation — through a local MCP bridge that needs no per-API keys. Users approve a single browser sign-in, then agents can discover, inspect pricing and schemas, run calls, track run status, and roll back configuration changes.556,724 npmMIT
- AlicenseNot gradedqualityBmaintenanceConnects a user's existing LinkedIn, WhatsApp, Instagram, Telegram, email and calendar accounts to any MCP-compatible agent so it can search, read and act on them without browser automation, including outreach, messaging, inbox triage and event management. It provides 170+ intent-named tools with OAuth 2.1 authentication, per-provider pacing, and approval prompts before sends, posts or deletions.MIT