OpenTool

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.

Category
Visit Server

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.

npm npm PyPI License: MIT

<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_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

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
  },
})
  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

  • [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-cli on npm)
  • [x] TypeScript SDK (@opentool-ts/sdk on npm)
  • [x] Python SDK (opentool-sdk on 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured