← Discover MCPs and Agents
o
MCPAI & MLGitHub

opentool

Open-source MCP server. Give AI agents authenticated access to GitHub, Notion, Slack and 10+ tools via one connection.

Links

README

From the repo.

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.

npm npm PyPI License: MIT

OpenTool Architecture — User → AI Agent → MCP Runtime → Tool Registry → Auth Broker → Execution Layer → External Services

The original system design sketch. Hours of research distilled into one diagram — this is what the entire project was built from.


Why OpenTool

ArcadeComposioOpenTool
Open sourcePartialPartial✅ 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_URL and DASHBOARD_URL for 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

ProviderStatusToolsActions
GitHub✅7Create issue, list issues, create PR, comment, get repo, search code, get PR diff
GitLab✅8Create issue, get issue, create MR, get MR, list MR commits, list pipelines, get pipeline jobs, search
Linear✅3Create issue, update status, search issues
Vercel✅2List deployments, get deployment
Docker Hub✅4Search images, get image, list tags, get vulnerabilities
Sentry✅7List orgs, list projects, list/get/resolve issues, get event, search

Cloud Platforms

ProviderStatusToolsActions
AWS✅8List EC2/S3/Lambda/EKS, describe EC2, list S3 objects, invoke Lambda, CloudWatch metrics
GCP✅7List instances/GKE/functions/buckets, get instance, list bucket objects, get project
Azure✅7List subscriptions/resource groups/VMs/AKS/storage/functions, get VM
Cloudflare✅6List zones/DNS/workers, create/update DNS, purge cache

Productivity & Communication

ProviderStatusToolsActions
Gmail✅3Send, read, search emails
Google Calendar✅2Create event, list events
Google Drive✅6List/search/get/create/share/delete files
Google Meet✅3Create/list/get meetings
Microsoft 365✅8List/send/search emails, list/create events, list teams/channels, send channel message
Notion✅3Create page, query database, update block
Slack✅3Send message, read channel, search messages
Jira✅7List projects, search/get/create/update issues, add comment, list transitions
Confluence✅6List spaces/pages, search content, get/create/update page

Messaging & Notifications

ProviderStatusToolsActions
Telegram✅5Get bot info, send message/photo, get updates/chat
Discord✅5List guilds/channels, send/get/list messages
Twilio✅4Send SMS/WhatsApp, list/get messages

Payments & Data

ProviderStatusToolsActions
Stripe✅2Create payment link, list customers
PayPal✅8Create/list/send invoices, create/get orders, refund, list transactions, create product
Resend✅1Send email
PostgreSQL✅5Execute 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
  },
})
  1. Fork the repo
  2. Add your tool in apps/server/tools/yourprovider/
  3. Register it in apps/server/src/registry/index.ts
  4. Add OAuth config in .env.example
  5. 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/:


Roadmap

  • Core MCP server with 26 providers, 133 tools
  • OAuth auth broker with token encryption
  • Dashboard (Next.js)
  • CLI with interactive REPL (opentool-cli on npm)
  • TypeScript SDK (@opentool-ts/sdk on npm)
  • Python SDK (opentool-sdk on PyPI)
  • Production hardening (CSP, HSTS, retry logic, 211 tests)
  • CI/CD with automated releases (release-please + tag-based publishing)
  • curl installer (install.sh)
  • gRPC transport (streaming execution, batch tools, mTLS, Kubernetes-native)
  • Cloud providers (AWS, GCP, Azure)
  • Microsoft 365 integration (Outlook, Calendar, Teams)
  • Atlassian suite (Jira, Confluence)
  • Messaging providers (Telegram, Discord, Twilio)
  • PayPal payments integration
  • Token analytics and usage tracking
  • 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.

Collected info

  • ★ 5 stars
  • Language: TypeScript
  • Source updated: 7/13/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.