ONE
Integrates with GitHub via OAuth, providing read access to repositories and enabling repository-related tool calls.
Integrates with Gmail via Google OAuth, providing tools to search and read email messages.
Integrates with Google services via OAuth, including Gmail, Drive, and Calendar, to search and read Gmail, search Drive metadata, and list Calendar events.
Integrates with Slack via OAuth, providing tools to list channels and send messages.
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., "@ONEsearch my granted tools for Gmail and read my latest email"
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.
ONE
Connect once. Use everywhere.
An independent, self-hosted connection layer for AI applications. Users own upstream connections; every MCP client receives a separate key and explicit tool grants. ONE is not an AI agent.
Developer preview. ONE is a provisional name. Native OAuth adapters are implemented and tested with synthetic providers; real Google/GitHub/Slack authorization is an operator acceptance gate, not a verified live integration. URL-only MCP OAuth authorization is not implemented. Do not expose this preview publicly without reviewing the security and deployment guides.
Run locally
Requires Docker Compose and Node.js 22.22+ (Node is used to generate initial configuration).
git clone https://github.com/VirtechSRL-ai/one-mcp.git
cd one-mcp
npm run setup
docker compose up -d --buildOpen localhost:3000. Create an account, enable Connections → Built-in verification, create a client in AI Clients, save its key and grant demo.echo. Provider credentials are not needed for this verification flow.
npm run setup creates .env with random database and vault credentials and preserves existing configuration. Copying .env.example alone is insufficient: its placeholders deliberately do not work. Vault keys must be backed up securely with the database. Losing the key loses upstream credentials.
For development:
npm ci
npm run setup
docker compose up -d db
npm run migrate
npm run dev
# separate terminal
npm run dev:dashboardRelated MCP server: MCP Tool Gateway
What works and what remains
Capability | Status |
Account registration/login, browser session revocation | Implemented; PostgreSQL integration tests |
Official SDK Streamable HTTP endpoint | Implemented; real SDK-client tests |
Separate client keys, expiry, revocation, deny-by-default grants | Implemented; two-client scenario tested |
Per-account tool discovery and invocation | Implemented; deterministic keyword ranking |
Encrypted credentials and serialized refresh | Implemented; synthetic refresh tests |
GitHub, Google and Slack OAuth adapters | Implemented; credentials and live provider acceptance still required |
Gmail search/read, Drive metadata search, Calendar list, GitHub repository read, Slack channels/send | Implemented adapters; synthetic HTTP tests; live coverage pending |
External MCP public HTTPS, bearer/no-auth | Implemented; limited to 200 tools, one catalog page; all calls require approval |
Durable human approvals and activity ledger | Implemented; replay and grant recheck tests |
Eight dashboard views, responsive layout, light/dark | Implemented; browser QA |
MCP OAuth authorization server / URL-only enrollment | Planned; static header-capable clients only |
External MCP OAuth, stdio/process execution | Planned |
Named reusable client profiles, semantic search, discovery cache | Planned |
Periodic upstream health probes / proactive reconnect detection | Planned; current status changes on authentication failure |
OTel exporter, key rotation/KMS, password recovery/MFA | Planned |
Production security review and live principal acceptance scenario | Pending |
MCP tools
The initial tool list is deliberately stable:
one_search_tools({query}): returns only tools granted to the caller, with account and connection identifiers, ranked deterministically.one_call_tool({connectionId, name, arguments}): rechecks authorization, validates input and executes or creates a pending approval.one_approval_status({id}): returns the state of an approval belonging to that client.
Namespaces are the tuple (connectionId, tool name), avoiding collisions between accounts and external servers. Untrusted upstream descriptions are data, never instructions. No client token is forwarded upstream.
Read client configuration, provider setup, architecture/research, threat model, deployment and verification.
Tests
Use a disposable PostgreSQL database. Tests create synthetic users and clean up integration fixtures; browser tests leave identifiable qa-…@example.test accounts in the test database. Never run the suite against production.
npm ci
npm run setup
docker compose up -d db
npm run migrate
npm run typecheck
npm test
npm run build
npx playwright install chromium
# start API and dashboard in separate terminals, then:
npm run test:e2eStructure
apps/api owns HTTP authentication, MCP transport, connection lifecycle, OAuth and policy execution. packages/core owns encryption, network restrictions and the identity schema. apps/dashboard owns the browser application and same-origin streaming proxy. infrastructure contains versioned, advisory-locked SQL migrations and containers. Modules are split further only when they acquire a real independent responsibility.
License
Apache-2.0 for original code. Dependency license inventory and lockfile are included. No Nango or other hosted integration engine is required. See CONTRIBUTING.md and SECURITY.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
One MCP endpoint for your company's tools, with per-person sign-in, policy and audit.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables clients to access multiple backend MCP servers through a single endpoint, with OAuth 2.1 authorization, namespaced tools, and secure credential management.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables centralized proxy and orchestration of MCP servers, providing unified tool discovery, authentication, and secure request routing. It adds a human-in-the-loop approval gate for high-risk actions and audit logging.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides a single MCP server endpoint that lets AI agents connect to many real third-party services through OAuth, with user approvals, activity logs, scoped read/write grants, and one-tap access removal.4 npmAGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to call upstream MCP tools under each user's own identity, with guardrails, approvals, data filtering, and tamper-evident audit streaming to SIEM.AGPL 3.0