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
访问服务器

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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选