Skip to content

Anarkh-Lee/universal-db-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Universal DB MCP Logo

Universal DB MCP

Connect AI to Your Database with Natural Language

A universal database connector implementing the Model Context Protocol (MCP) and HTTP API, enabling AI assistants to query and analyze your databases using natural language. Works with Claude Desktop, Cursor, Windsurf, VS Code, ChatGPT, and 50+ other platforms.

npm version npm downloads License: MIT Node.js Version GitHub Stars

FeaturesQuick StartDatabasesDocsContributing

English | 中文文档


Why Universal DB MCP?

Imagine asking your AI assistant: "Show me the top 10 customers by order value this month" and getting instant results from your database - no SQL writing required. Universal DB MCP makes this possible by bridging AI assistants with your databases through the Model Context Protocol (MCP) and HTTP API.

You: "What's the average order value for users who signed up in the last 30 days?"

AI: Let me query that for you...

┌─────────────────────────────────────┐
│ Average Order Value: $127.45        │
│ Total New Users: 1,247              │
│ Users with Orders: 892 (71.5%)      │
└─────────────────────────────────────┘

✨ Features

  • 17 Database Support - MySQL, PostgreSQL, Redis, Oracle, SQL Server, MongoDB, SQLite, and 10 Chinese domestic databases
  • 55+ Platform Integrations - Works with Claude Desktop, Cursor, VS Code, ChatGPT, Dify, and 50+ other platforms
  • Flexible Architecture - 2 startup modes (stdio/http) with 4 access methods: MCP stdio, MCP SSE, MCP Streamable HTTP, and REST API
  • Security First - Read-only mode by default prevents accidental data modifications
  • Intelligent Caching - Schema caching with configurable TTL for blazing-fast performance
  • Batch Query Optimization - Up to 100x faster schema retrieval for large databases
  • Schema Enhancement - Table comments, implicit relationship inference for better Text2SQL accuracy
  • Multi-Schema Support - Automatic discovery of all user schemas (PostgreSQL, SQL Server, Oracle, DM, and more)
  • Data Masking - Automatic sensitive data protection (phone, email, ID card, bank card, etc.)
  • Connection Stability - Connection pooling, TCP Keep-Alive, and automatic reconnection for long-running sessions

Performance Improvements

Tables Before After Improvement
50 tables ~5s ~200ms 25x faster
100 tables ~10s ~300ms 33x faster
500 tables ~50s ~500ms 100x faster

🚀 Quick Start

Installation

npm install -g universal-db-mcp

MCP Mode (Claude Desktop)

Add to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "my-database": {
      "command": "npx",
      "args": [
        "universal-db-mcp",
        "--type", "mysql",
        "--host", "localhost",
        "--port", "3306",
        "--user", "root",
        "--password", "your_password",
        "--database", "your_database"
      ]
    }
  }
}

Restart Claude Desktop and start asking questions:

  • "Show me the structure of the users table"
  • "Count orders from the last 7 days"
  • "Find the top 5 products by sales"

HTTP API Mode

# Set environment variables
export MODE=http
export HTTP_PORT=3000
export API_KEYS=your-secret-key

# Start the server
npx universal-db-mcp
# Test the API
curl http://localhost:3000/api/health

MCP SSE Mode (Dify and Remote Access)

When running in HTTP mode, the server also exposes MCP protocol endpoints via SSE (Server-Sent Events) and Streamable HTTP. This allows platforms like Dify to connect using the MCP protocol directly.

SSE Endpoint (Legacy):

GET http://localhost:3000/sse?type=mysql&host=localhost&port=3306&user=root&password=xxx&database=mydb

Streamable HTTP Endpoint (MCP 2025 Spec, Recommended):

POST http://localhost:3000/mcp
Headers:
  X-DB-Type: mysql
  X-DB-Host: localhost
  X-DB-Port: 3306
  X-DB-User: root
  X-DB-Password: your_password
  X-DB-Database: your_database
Body: MCP JSON-RPC request
Endpoint Method Description
/sse GET Establish SSE connection (legacy)
/sse/message POST Send message to SSE session
/mcp POST Streamable HTTP endpoint (recommended)
/mcp GET SSE stream for Streamable HTTP
/mcp DELETE Close session

See Dify Integration Guide for detailed setup instructions.

📊 Supported Databases

Database Type Default Port Category
MySQL mysql 3306 Open Source
PostgreSQL postgres 5432 Open Source
Redis redis 6379 NoSQL
Oracle oracle 1521 Commercial
SQL Server sqlserver 1433 Commercial
MongoDB mongodb 27017 NoSQL
SQLite sqlite - Embedded
Dameng (达梦) dm 5236 Chinese
KingbaseES kingbase 54321 Chinese
GaussDB gaussdb 5432 Chinese (Huawei)
OceanBase oceanbase 2881 Chinese (Ant)
TiDB tidb 4000 Distributed
ClickHouse clickhouse 8123 OLAP
PolarDB polardb 3306 Cloud (Alibaba)
Vastbase vastbase 5432 Chinese
HighGo highgo 5866 Chinese
GoldenDB goldendb 3306 Chinese (ZTE)

🏗️ Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                         Universal DB MCP                                 │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Startup Modes:                                                          │
│  ┌────────────────────────────┬────────────────────────────────────┐    │
│  │ stdio mode                 │ http mode                          │    │
│  │ (npm run start:mcp)        │ (npm run start:http)               │    │
│  └─────────────┬──────────────┴───────────────┬────────────────────┘    │
│                │                              │                          │
│                ▼                              ▼                          │
│  ┌─────────────────────────┐    ┌───────────────────────────────────┐   │
│  │      MCP Protocol       │    │           HTTP Server             │   │
│  │    (stdio transport)    │    │                                   │   │
│  │                         │    │  ┌─────────────────────────────┐  │   │
│  │  Tools:                 │    │  │      MCP Protocol           │  │   │
│  │  • execute_query        │    │  │  (SSE / Streamable HTTP)    │  │   │
│  │  • get_schema           │    │  │                             │  │   │
│  │  • get_table_info       │    │  │  Tools: (same as stdio)     │  │   │
│  │  • clear_cache          │    │  │  • execute_query            │  │   │
│  │  • get_enum_values      │    │  │  • get_schema               │  │   │
│  │  • get_sample_data      │    │  │  • get_table_info           │  │   │
│  │  • connect_database     │    │  │  • clear_cache              │  │   │
│  │  • disconnect_database  │    │  │  • get_enum_values          │  │   │
│  │  • get_connection_status│    │  │  • get_sample_data          │  │   │
│  │                         │    │  │  • connect_database         │  │   │
│  │  For: Claude Desktop,   │    │  │  • disconnect_database      │  │   │
│  │       Cursor, etc.      │    │  │  • get_connection_status    │  │   │
│  └─────────────┬───────────┘    │  │                             │  │   │
│                │                │  │  For: Dify, Remote Access   │  │   │
│                │                │  └──────────────┬──────────────┘  │   │
│                │                │                 │                 │   │
│                │                │  ┌──────────────┴──────────────┐  │   │
│                │                │  │        REST API             │  │   │
│                │                │  │                             │  │   │
│                │                │  │  Endpoints:                 │  │   │
│                │                │  │  • /api/connect             │  │   │
│                │                │  │  • /api/query               │  │   │
│                │                │  │  • /api/schema              │  │   │
│                │                │  │  • ... (10+ endpoints)      │  │   │
│                │                │  │                             │  │   │
│                │                │  │  For: Coze, n8n, Custom     │  │   │
│                │                │  └──────────────┬──────────────┘  │   │
│                │                └─────────────────┼─────────────────┘   │
│                │                                  │                     │
│                └──────────────────┬───────────────┘                     │
│                                   ▼                                     │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │                     Core Business Logic                           │  │
│  │  • Query Execution    • Schema Caching                           │  │
│  │  • Safety Validation  • Connection Management                    │  │
│  └──────────────────────────────────┬───────────────────────────────┘  │
│                                     ▼                                   │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │                    Database Adapter Layer                         │  │
│  │  MySQL │ PostgreSQL │ Redis │ Oracle │ MongoDB │ SQLite │ ...    │  │
│  │        (Connection Pool + TCP Keep-Alive + Auto-Retry)           │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

🔒 Security

By default, Universal DB MCP runs in read-only mode, blocking all write operations (INSERT, UPDATE, DELETE, DROP, etc.).

Permission Modes

Fine-grained permission control is supported for flexible configuration:

Mode Allowed Operations Description
safe (default) SELECT Read-only, safest
readwrite SELECT, INSERT, UPDATE Read/write but no delete
full All operations Full control (dangerous!)
custom Custom combination Specify via --permissions

Permission Types:

  • read - SELECT queries (always included)
  • insert - INSERT, REPLACE
  • update - UPDATE
  • delete - DELETE, TRUNCATE
  • ddl - CREATE, ALTER, DROP, RENAME

Usage Examples:

# Read-only mode (default)
npx universal-db-mcp --type mysql ...

# Read/write but no delete
npx universal-db-mcp --type mysql --permission-mode readwrite ...

# Custom: only read and insert
npx universal-db-mcp --type mysql --permissions read,insert ...

# Full control (equivalent to --danger-allow-write)
npx universal-db-mcp --type mysql --permission-mode full ...

Permission Configuration by Transport:

⚠️ Different transports use different parameter naming conventions!

Transport Parameter Location Permission Mode Custom Permissions
STDIO (Claude Desktop) CLI args --permission-mode --permissions
SSE (Dify, etc.) URL Query permissionMode permissions
Streamable HTTP HTTP Header X-DB-Permission-Mode X-DB-Permissions
REST API JSON Body permissionMode permissions

Best Practices:

  • Never enable write mode in production
  • Use dedicated read-only database accounts
  • Connect through VPN or bastion hosts
  • Regularly audit query logs

🔌 Supported Platforms

Universal DB MCP works with any platform that supports the MCP protocol or REST API. Here's a comprehensive list:

AI-Powered Code Editors & IDEs

Platform Access Method Description Guide
Cursor MCP stdio AI-powered code editor with built-in MCP support EN / 中文
Windsurf MCP stdio Codeium's AI IDE with Cascade agent EN / 中文
VS Code MCP stdio / REST API Via GitHub Copilot agent mode or Cline/Continue extensions EN / 中文
Zed MCP stdio High-performance open-source code editor EN / 中文
IntelliJ IDEA MCP stdio JetBrains IDE with MCP support (2025.1+) EN / 中文
PyCharm MCP stdio JetBrains Python IDE EN / 中文
WebStorm MCP stdio JetBrains JavaScript IDE EN / 中文
Android Studio MCP stdio Via JetBrains MCP plugin EN / 中文
Neovim MCP stdio Via MCPHub.nvim plugin EN / 中文
Emacs MCP stdio Via mcp.el package EN / 中文

AI Coding Assistants

Platform Access Method Description Guide
Claude Code MCP stdio Anthropic's agentic coding tool EN / 中文
GitHub Copilot MCP stdio Agent mode in VS Code/JetBrains EN / 中文
Cline MCP stdio / REST API Autonomous coding agent for VS Code EN / 中文
Continue MCP stdio Open-source AI code assistant EN / 中文
Roo Code MCP stdio Fork of Cline for VS Code EN / 中文
Sourcegraph Cody MCP stdio AI coding assistant EN / 中文
Amazon Q Developer MCP stdio AWS AI coding assistant EN / 中文
Devin MCP stdio AI software engineer EN / 中文
Goose MCP stdio Block's AI coding agent EN / 中文
Gemini CLI MCP stdio Google's command-line AI tool EN / 中文

Desktop AI Chat Applications

Platform Access Method Description Guide
Claude Desktop MCP stdio Anthropic's official desktop app EN / 中文
ChatGPT Desktop MCP SSE/Streamable HTTP OpenAI's desktop app with MCP connectors EN / 中文
Cherry Studio MCP stdio Multi-model desktop chat app EN / 中文
LM Studio MCP stdio Run local LLMs with MCP support EN / 中文
Jan MCP stdio Open-source ChatGPT alternative EN / 中文
Msty MCP stdio Desktop AI chat application EN / 中文
LibreChat MCP stdio Open-source chat interface EN / 中文
Witsy MCP stdio Desktop AI assistant EN / 中文
5ire MCP stdio Cross-platform AI chat EN / 中文
ChatMCP MCP stdio MCP-focused chat UI EN / 中文
HyperChat MCP stdio Multi-platform chat app EN / 中文
Tome MCP stdio macOS app for local LLMs EN / 中文

Web-Based AI Platforms

Platform Access Method Description Guide
Claude.ai MCP SSE/Streamable HTTP Anthropic's web interface EN / 中文
ChatGPT MCP SSE/Streamable HTTP Via custom connectors EN / 中文
Dify MCP SSE/Streamable HTTP LLM app development platform EN / 中文
Coze REST API ByteDance's AI bot platform EN / 中文
n8n REST API / MCP Workflow automation platform EN / 中文
Replit MCP stdio Online IDE with AI agent EN / 中文
MindPal MCP SSE/Streamable HTTP No-code AI agent builder EN / 中文

Agent Frameworks & SDKs

Platform Access Method Description Guide
LangChain MCP stdio Popular LLM framework EN / 中文
Smolagents MCP stdio Hugging Face agent library EN / 中文
OpenAI Agents SDK MCP SSE/Streamable HTTP OpenAI's agent framework EN / 中文
Amazon Bedrock Agents MCP SSE/Streamable HTTP AWS AI agent service EN / 中文
Google ADK MCP stdio Google's Agent Development Kit EN / 中文
Vercel AI SDK MCP stdio Vercel's AI development kit EN / 中文
Spring AI MCP stdio Java/Spring AI framework EN / 中文

CLI Tools & Terminal

Platform Access Method Description Guide
Claude Code CLI MCP stdio Terminal-based coding agent EN / 中文
Warp MCP stdio AI-powered terminal EN / 中文
Oterm MCP stdio Chat with Ollama via CLI EN / 中文
MCPHost MCP stdio CLI chat with LLMs EN / 中文

Productivity & Automation

Platform Access Method Description Guide
Raycast MCP stdio macOS productivity launcher EN / 中文
Notion MCP SSE/Streamable HTTP Workspace with AI integration EN / 中文
Obsidian MCP stdio Via MCP Tools plugin EN / 中文
Home Assistant MCP stdio Home automation platform EN / 中文

Messaging Platform Integrations

Platform Access Method Description Guide
Slack MCP stdio / REST API Via Slack MCP bots EN / 中文
Discord MCP stdio / REST API Via Discord MCP bots EN / 中文
Mattermost MCP stdio Open-source messaging EN / 中文

Local LLM Runners

Platform Access Method Description Guide
Ollama MCP stdio Run local LLMs EN / 中文
LM Studio MCP stdio Local LLM desktop app EN / 中文
Jan MCP stdio Offline ChatGPT alternative EN / 中文

Development & Testing Tools

Platform Access Method Description Guide
MCP Inspector MCP stdio Official MCP debugging tool EN / 中文
Postman REST API / MCP API testing platform EN / 中文

Note: Any MCP-compatible client can connect via stdio (local) or SSE/Streamable HTTP (remote). Any HTTP client can use the REST API.

📚 Documentation

Getting Started

Deployment

Database Guides

HTTP API

Integrations

AI Editors & IDEs: Cursor | VS Code | JetBrains | Windsurf | Zed | Neovim | Emacs

AI Assistants: Claude Desktop | Claude Code | GitHub Copilot | Cline | Continue

AI Platforms: Dify | Coze | n8n | ChatGPT | LangChain

Desktop Apps: Cherry Studio | LM Studio | Jan | Ollama

Messaging: Slack | Discord

Tools: MCP Inspector | Postman

📁 View all 55 integration guides | 中文版本请在对应文档名后加 .zh-CN

Advanced

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide before submitting a Pull Request.

# Clone the repository
git clone https://github.com/Anarkh-Lee/universal-db-mcp.git

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

📄 License

This project is licensed under the MIT License.

🌟 Star History

If you find this project useful, please consider giving it a star! Your support helps us continue improving Universal DB MCP.

Star History Chart

📝 Changelog

See CHANGELOG.md for a detailed version history.


Made with ❤️ by Anarkh-Lee

About

通用数据库 MCP 连接器:支持 MySQL、PostgreSQL、Oracle、MongoDB 等 17 种数据库,支持 Claude Desktop、Cursor、Windsurf、VS Code、ChatGPT 等 50+ 平台,用自然语言查询和分析数据

Resources

License

Contributing

Stars

Watchers

Forks

Packages