OpenTool
OpenTool is an MCP server that provides AI agents with secure, authenticated access to a wide range of tools (GitHub, Notion, Slack, etc.) through a single MCP connection. It is fully open-source and self-hostable.
README
OpenTool
One MCP server. All your tools. Fully open-source and self-hosted.
OpenTool gives AI agents secure, authenticated access to your tools via a single MCP connection. Connect GitHub, Notion, Slack, and more — then point any MCP-compatible agent at OpenTool with one API key.
Built for solo developers building with AI agents.
<p align="center"> <img src="docs/architecture-origin.png" alt="OpenTool Architecture — User → AI Agent → MCP Runtime → Tool Registry → Auth Broker → Execution Layer → External Services" width="800" /> </p> <p align="center"><em>The original system design sketch. Hours of research distilled into one diagram — this is what the entire project was built from.</em></p>
Why OpenTool
| Arcade | Composio | OpenTool | |
|---|---|---|---|
| Open source | Partial | Partial | ✅ Full |
| Self-hostable | ❌ | ❌ | ✅ |
| MCP native | ✅ | ✅ | ✅ |
| Free forever (self-hosted) | ❌ | ❌ | ✅ |
| CLI with REPL | ❌ | ❌ | ✅ |
| TypeScript + Python SDKs | ✅ | ✅ | ✅ |
Install
CLI
# npm (recommended)
npm i -g opentool-cli
# or run without installing
npx opentool-cli
# or curl installer
curl -fsSL https://raw.githubusercontent.com/Aditya251610/opentool/main/install.sh | bash
SDKs
# TypeScript
npm i @opentool-ts/sdk
# Python
pip install opentool-sdk
Quickstart (Hosted)
1. Get your API key Sign up at opentool.space → Settings → Generate API key
2. Connect your tools Go to the dashboard → Tools → Connect GitHub, Notion, Slack etc.
3. Connect your agent
For VS Code / Copilot / Claude Code, add to mcp.json:
{
"servers": {
"opentool": {
"type": "http",
"url": "https://opentool.onrender.com/mcp",
"headers": {
"Authorization": "Bearer <TOKEN>"
}
}
}
}
Or use the CLI:
opentool init # guided setup
opentool login # authenticate
opentool tools # see your connected tools
opentool # launch interactive REPL
That's it. Your agent now has access to all your connected tools.
Self-Hosting
Prerequisites: Docker + Docker Compose
git clone https://github.com/Aditya251610/opentool
cd opentool
cp .env.example .env
# Fill in your OAuth app credentials in .env
docker-compose up -d
Dashboard available at http://localhost:3000
MCP server available at http://localhost:3001
Production Deployment
- Self-Hosting Guide — Docker Compose, manual setup, reverse proxy, health checks, backups
- Security Guide — Encryption, authentication, threat model, data handling
Key production checklist:
- Use HTTPS with valid SSL certificates
- Set a strong
TOKEN_ENCRYPTION_KEY(64 hex characters) - Configure
SERVER_URLandDASHBOARD_URLfor your domain - Back up your encryption key separately from database backups
- CSP and HSTS headers are enabled by default
Supported Tools
26 providers, 133 tools — and growing.
Developer & DevOps
| Provider | Status | Tools | Actions |
|---|---|---|---|
| GitHub | ✅ | 7 | Create issue, list issues, create PR, comment, get repo, search code, get PR diff |
| GitLab | ✅ | 8 | Create issue, get issue, create MR, get MR, list MR commits, list pipelines, get pipeline jobs, search |
| Linear | ✅ | 3 | Create issue, update status, search issues |
| Vercel | ✅ | 2 | List deployments, get deployment |
| Docker Hub | ✅ | 4 | Search images, get image, list tags, get vulnerabilities |
| Sentry | ✅ | 7 | List orgs, list projects, list/get/resolve issues, get event, search |
Cloud Platforms
| Provider | Status | Tools | Actions |
|---|---|---|---|
| AWS | ✅ | 8 | List EC2/S3/Lambda/EKS, describe EC2, list S3 objects, invoke Lambda, CloudWatch metrics |
| GCP | ✅ | 7 | List instances/GKE/functions/buckets, get instance, list bucket objects, get project |
| Azure | ✅ | 7 | List subscriptions/resource groups/VMs/AKS/storage/functions, get VM |
| Cloudflare | ✅ | 6 | List zones/DNS/workers, create/update DNS, purge cache |
Productivity & Communication
| Provider | Status | Tools | Actions |
|---|---|---|---|
| Gmail | ✅ | 3 | Send, read, search emails |
| Google Calendar | ✅ | 2 | Create event, list events |
| Google Drive | ✅ | 6 | List/search/get/create/share/delete files |
| Google Meet | ✅ | 3 | Create/list/get meetings |
| Microsoft 365 | ✅ | 8 | List/send/search emails, list/create events, list teams/channels, send channel message |
| Notion | ✅ | 3 | Create page, query database, update block |
| Slack | ✅ | 3 | Send message, read channel, search messages |
| Jira | ✅ | 7 | List projects, search/get/create/update issues, add comment, list transitions |
| Confluence | ✅ | 6 | List spaces/pages, search content, get/create/update page |
Messaging & Notifications
| Provider | Status | Tools | Actions |
|---|---|---|---|
| Telegram | ✅ | 5 | Get bot info, send message/photo, get updates/chat |
| Discord | ✅ | 5 | List guilds/channels, send/get/list messages |
| Twilio | ✅ | 4 | Send SMS/WhatsApp, list/get messages |
Payments & Data
| Provider | Status | Tools | Actions |
|---|---|---|---|
| Stripe | ✅ | 2 | Create payment link, list customers |
| PayPal | ✅ | 8 | Create/list/send invoices, create/get orders, refund, list transactions, create product |
| Resend | ✅ | 1 | Send email |
| PostgreSQL | ✅ | 5 | Execute query, list tables, describe table, run transaction, explain query |
Want a tool added? Open an issue or contribute a tool.
CLI
The CLI ships with an interactive REPL and scriptable subcommands:
opentool # Launch interactive REPL
opentool tools --json # List tools (machine-readable)
opentool exec github.list_issues --args '{"owner":"me","repo":"myrepo"}'
opentool doctor # Run 9-point diagnostics
opentool completion --install # Shell completions (bash/zsh/fish)
REPL features: Tab completion, ghost-text suggestions, Ctrl+R history search, fuzzy "did you mean?", readline keybindings, update notifications.
Full reference: docs/cli-reference.md
Project Structure
opentool/
├── apps/
│ ├── server/ # MCP server + Auth broker + REST API (Hono)
│ │ └── tools/ # Tool definitions (26 providers, 133 tools)
│ └── dashboard/ # Next.js dashboard
├── packages/
│ ├── cli/ # opentool-cli — interactive CLI + REPL
│ ├── sdk/ts/ # @opentool-ts/sdk — TypeScript SDK
│ ├── sdk/python/ # opentool — Python SDK
│ └── tool-schema/ # Shared tool definition types
├── install.sh # curl | sh installer
└── docker-compose.yml
Contributing a Tool
Tools are self-contained modules in apps/server/tools/. Each tool exports:
import { defineTool } from '@opentool/tool-schema'
export const myTool = defineTool({
id: 'my-tool.action',
name: 'My Tool Action',
description: 'What this tool does',
authType: 'oauth2',
inputSchema: z.object({
param: z.string().describe('What this param does'),
}),
execute: async ({ input, auth }) => {
// auth.accessToken available here
// return result
},
})
- Fork the repo
- Add your tool in
apps/server/tools/yourprovider/ - Register it in
apps/server/src/registry/index.ts - Add OAuth config in
.env.example - Open a PR
Full guide: docs/contributing-a-tool.md
Tech Stack
- Server — Hono, TypeScript, Prisma, Postgres, Redis
- Dashboard — Next.js 14, Auth.js
- CLI — TypeScript, Ink (React for terminals), Commander
- Protocol — MCP (Model Context Protocol) TypeScript SDK + gRPC (Protocol Buffers)
- SDKs — TypeScript (npm) + Python (PyPI)
- Monorepo — Turborepo + pnpm
- Security — AES-256-GCM encryption, CSP/HSTS headers, session obfuscation
Documentation
Full docs at docs/:
- Quickstart — Zero to connected tools in 5 minutes
- Self-Hosting — Docker or manual setup
- Configuration — Every env var and OAuth setup
- Architecture — How it all fits together
- Authentication — OAuth flows and token management
- Tools — All 26 providers, 133 tools
- MCP Integration — Claude, Cursor, any MCP client
- SDK Reference — TypeScript and Python
- CLI Reference — Terminal tool management
- API Reference — Every REST endpoint
- Contributing a Tool — Add a provider in ~100 lines
- Security — Encryption, tokens, threat model
- Troubleshooting — Common issues and fixes
- gRPC Transport — High-performance binary transport with streaming
Roadmap
- [x] Core MCP server with 26 providers, 133 tools
- [x] OAuth auth broker with token encryption
- [x] Dashboard (Next.js)
- [x] CLI with interactive REPL (
opentool-clion npm) - [x] TypeScript SDK (
@opentool-ts/sdkon npm) - [x] Python SDK (
opentool-sdkon PyPI) - [x] Production hardening (CSP, HSTS, retry logic, 211 tests)
- [x] CI/CD with automated releases (release-please + tag-based publishing)
- [x] curl installer (
install.sh) - [x] gRPC transport (streaming execution, batch tools, mTLS, Kubernetes-native)
- [x] Cloud providers (AWS, GCP, Azure)
- [x] Microsoft 365 integration (Outlook, Calendar, Teams)
- [x] Atlassian suite (Jira, Confluence)
- [x] Messaging providers (Telegram, Discord, Twilio)
- [x] PayPal payments integration
- [x] Token analytics and usage tracking
- [x] Team/org support (RBAC, invites, SSO, org-scoped keys and connections)
- [ ] Tool marketplace
- [ ] Webhook support
- [ ] Plugin system for custom tools
License
MIT — use it, fork it, self-host it, build on it.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.