DB MCP Server
Database MCP server for MySQL, PostgreSQL, MongoDB, and SQLite with SSH tunneling support.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
db-mcp-serverclaude mcp add db-mcp-server -e 'DB_TYPE=<DB_TYPE>' -e 'DB_DATABASE=<DB_DATABASE>' -e 'DB_MODE=read-only' -e 'DB_HOST=localhost' -e 'DB_PORT=<DB_PORT>' -e 'DB_USER=<DB_USER>' -e 'DB_PASSWORD=<your db_password>' -e 'DB_URL=<your db_url>' -e 'SSH_HOST=<SSH_HOST>' -e 'SSH_PORT=22' -e 'SSH_USER=<SSH_USER>' -e 'SSH_KEY=<SSH_KEY>' -e 'SSH_PASSWORD=<your ssh_password>' -- uvx db-mcp-server==1.2.1
{
"mcpServers": {
"db-mcp-server": {
"command": "uvx",
"args": [
"db-mcp-server==1.2.1"
],
"env": {
"DB_TYPE": "<DB_TYPE>",
"DB_DATABASE": "<DB_DATABASE>",
"DB_MODE": "read-only",
"DB_HOST": "localhost",
"DB_PORT": "<DB_PORT>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<your db_password>",
"DB_URL": "<your db_url>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PORT": "22",
"SSH_USER": "<SSH_USER>",
"SSH_KEY": "<SSH_KEY>",
"SSH_PASSWORD": "<your ssh_password>"
}
}
}
}
متغيرات البيئة
DB_TYPEإلزامي Database typeDB_DATABASEإلزامي Database nameDB_MODEAccess modeDB_HOSTDatabase host (MySQL/PostgreSQL)DB_PORTDatabase port (MySQL: 3306, PostgreSQL: 5432)DB_USERDatabase user (MySQL default: root, PostgreSQL default: postgres)DB_PASSWORDسري Database password (MySQL/PostgreSQL, optional)DB_URLسري MongoDB connection URL (required for MongoDB, e.g. mongodb://...)SSH_HOSTSSH bastion host for tunneling (MySQL/PostgreSQL only)SSH_PORTSSH portSSH_USERSSH username (default: current OS user)SSH_KEYPath to SSH private key (e.g. ~/.ssh/id_rsa)SSH_PASSWORDسري SSH password (if no key provided)
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
db-mcp-server
MCP server for MySQL, PostgreSQL, MongoDB, and SQLite databases. One instance per database, no Docker required.
Installation
uvx db-mcp-server
Configuration
Configure via environment variables. Each instance connects to a single database.
MySQL
| Variable | Required | Default | Description |
|---|---|---|---|
DB_TYPE | Yes | — | mysql |
DB_DATABASE | Yes | — | Database name |
DB_PASSWORD | Yes | — | Password |
DB_HOST | No | localhost | Host |
DB_PORT | No | 3306 | Port |
DB_USER | No | root | User |
DB_MODE | No | read-only | read-only or read-write |
PostgreSQL
| Variable | Required | Default | Description |
|---|---|---|---|
DB_TYPE | Yes | — | postgresql |
DB_DATABASE | Yes | — | Database name |
DB_PASSWORD | Yes | — | Password |
DB_HOST | No | localhost | Host |
DB_PORT | No | 5432 | Port |
DB_USER | No | postgres | User |
DB_MODE | No | read-only | read-only or read-write |
MongoDB
| Variable | Required | Default | Description |
|---|---|---|---|
DB_TYPE | Yes | — | mongodb |
DB_DATABASE | Yes | — | Database name |
DB_URL | Yes | — | Connection URL (mongodb://...) |
DB_MODE | No | read-only | read-only or read-write |
SQLite
| Variable | Required | Default | Description |
|---|---|---|---|
DB_TYPE | Yes | — | sqlite |
DB_PATH | Yes | — | Path to .db file (local or remote with SSH) |
DB_DATABASE | No | filename | Display name |
DB_MODE | No | read-only | read-only or read-write |
SSH Tunnel (MySQL / PostgreSQL)
Optionally connect through an SSH bastion host. Set SSH_HOST to activate.
For SQLite over SSH, the remote .db file is downloaded via SFTP before querying. In read-write mode, changes are uploaded back on shutdown.
| Variable | Required | Default | Description |
|---|---|---|---|
SSH_HOST | No | — | SSH bastion host (activates tunneling) |
SSH_PORT | No | 22 | SSH port |
SSH_USER | No | Current OS user | SSH username |
SSH_KEY | No | — | Path to private key (~/.ssh/id_rsa) |
SSH_PASSWORD | No | — | SSH password (if no key) |
At least one of SSH_KEY or SSH_PASSWORD is required when SSH_HOST is set. SSH tunneling is not supported for MongoDB.
Usage in .mcp.json
SQLite (local)
{
"mcpServers": {
"db-local": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": {
"DB_TYPE": "sqlite",
"DB_PATH": "/path/to/database.db"
}
}
}
}
SQLite over SSH
{
"mcpServers": {
"db-remote": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": {
"DB_TYPE": "sqlite",
"DB_PATH": "/remote/path/to/database.db",
"SSH_HOST": "server.example.com",
"SSH_USER": "deploy",
"SSH_KEY": "~/.ssh/id_rsa"
}
}
}
}
{
"mcpServers": {
"db-prod": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": {
"DB_TYPE": "mysql",
"DB_MODE": "read-only",
"DB_HOST": "db.example.com",
"DB_PORT": "3306",
"DB_USER": "root",
"DB_PASSWORD": "secret",
"DB_DATABASE": "myapp"
}
}
}
}
With SSH tunnel
{
"mcpServers": {
"db-behind-bastion": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": {
"DB_TYPE": "postgresql",
"DB_HOST": "10.0.0.5",
"DB_PORT": "5432",
"DB_USER": "postgres",
"DB_PASSWORD": "secret",
"DB_DATABASE": "myapp",
"SSH_HOST": "bastion.example.com",
"SSH_USER": "deploy",
"SSH_KEY": "~/.ssh/id_rsa"
}
}
}
}
For multiple databases, add multiple instances:
{
"mcpServers": {
"db-prod": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": { "DB_TYPE": "mysql", "DB_DATABASE": "prod", "..." : "..." }
},
"db-analytics": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": { "DB_TYPE": "postgresql", "DB_DATABASE": "analytics", "..." : "..." }
},
"db-staging": {
"command": "uvx",
"args": ["db-mcp-server"],
"env": { "DB_TYPE": "mongodb", "DB_DATABASE": "staging", "..." : "..." }
}
}
}
Tools
MySQL
- query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)
- execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires
DB_MODE=read-write - describe — Describe table structure
- list_tables — List all tables
- status — Show connection info
PostgreSQL
- query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)
- execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires
DB_MODE=read-write - describe — Describe table structure (column info from information_schema)
- list_tables — List all tables in the public schema
- status — Show connection info
SQLite
- query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)
- execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires
DB_MODE=read-write - describe — Describe table structure (PRAGMA table_info)
- list_tables — List all tables
- status — Show connection info
MongoDB
- query — Find documents in a collection
- describe — Collection stats ($collStats)
- list_collections — List all collections
- aggregate — Execute aggregation pipelines ($out/$merge blocked on read-only)
- status — Show connection info
License
MIT
الأسئلة الشائعة
ما هو DB MCP Server؟
Database MCP server for MySQL, PostgreSQL, MongoDB, and SQLite with SSH tunneling support.
كيف أثبّت DB MCP Server؟
يعمل على جهازك. في Claude Code: claude mcp add db-mcp-server -e 'DB_TYPE=<DB_TYPE>' -e 'DB_DATABASE=<DB_DATABASE>' -e 'DB_MODE=read-only' -e 'DB_HOST=localhost' -e 'DB_PORT=<DB_PORT>' -e 'DB_USER=<DB_USER>' -e 'DB_PASSWORD=<your db_password>' -e 'DB_URL=<your db_url>' -e 'SSH_HOST=<SSH_HOST>' -e 'SSH_PORT=22' -e 'SSH_USER=<SSH_USER>' -e 'SSH_KEY=<SSH_KEY>' -e 'SSH_PASSWORD=<your ssh_password>' -- uvx db-mcp-server==1.2.1. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج DB MCP Server إلى مفتاح API؟
نعم. يتطلب DB_TYPE, DB_DATABASE, DB_PASSWORD, DB_URL, SSH_PASSWORD، وتضبطها في إعداداته.
هل DB MCP Server مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون DB MCP Server؟
ينشره stucchi. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.