Token导航 LogoToken导航

MCP Server · 数据服务

Common Database MCP Server

一个提供多数据库连接支持的MCP服务器,支持PostgreSQL、MySQL、SQLite和DB2 iSeries数据库,适用于安全的数据探索和查询。

stdio官方级别未说明来源级核验工具 0
数据库连接PythonClaude多数据库支持Claude DesktopWindsurf

快速开始

作者 / 组织
drainney-jrt
提供方
drainney-jrt

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

2 个

MCP World

选型结论

Common Database MCP Server 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Windsurf,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

通用数据库MCP服务器

一个模型上下文协议(MCP)服务器,提供与Claude Code、Claude Desktop和Windsurf IDE的数据库连接。通过原生Python驱动程序支持PostgreSQL、MySQL、SQLite和DB2 iSeries数据库。

特性

  • ✅ 多数据库支持:PostgreSQL、MySQL、SQLite、DB2 iSeries
  • ✅ 默认情况下为只读:安全的数据库探索,没有数据修改的风险
  • ✅ 连接池:网络数据库的高效连接管理
  • ✅ SQL注入防护:参数化查询和查询验证
  • ✅ 交叉平台的:适用于macOS、Linux和Windows
  • ✅ MCP工具:执行查询、检查模式、浏览表
  • ✅ MCP资源:数据库模式作为资源
  • ✅ MCP提示:数据库探索的指导工作流程

安装

先决条件

  • Python 3.9或更高版本
  • 点

从源代码安装

cd /Users/dave/claude-projects/jdbc-mcp-server
pip install -e .

安装可选依赖项

对于开发和测试:

pip install -e ".[dev]"

数据库驱动程序安装

服务器会自动安装以下驱动程序:

  • PostgreSQL(psycopg2-binary)
  • MySQL(mysql-connector-python)
  • SQLite(sqlite3 -内置于Python中)

对于 macOS上的DB2 iSeries:

# DB2 driver installation
pip install --no-cache-dir ibm_db

注: ibm_db 适用于macOS(英特尔和苹果Silicon M1/M2/M3)。

配置

Claude代码配置

将服务器添加到您的 ~/.claude/mcp.json 或克劳德桌面配置:

{
  "mcpServers": {
    "database": {
      "command": "python",
      "args": ["-m", "jdbc_mcp_server"],
      "env": {
        "DB_POSTGRES_TYPE": "postgresql",
        "DB_POSTGRES_HOST": "localhost",
        "DB_POSTGRES_PORT": "5432",
        "DB_POSTGRES_DATABASE": "myapp",
        "DB_POSTGRES_USERNAME": "readonly_user",
        "DB_POSTGRES_PASSWORD": "secure_password",
        "DB_POSTGRES_READ_ONLY": "true",
        "DB_POSTGRES_POOL_SIZE": "10"
      }
    }
  }
}

环境变量

使用以下格式的环境变量配置数据库:

DB__TYPE=postgresql|mysql|sqlite|db2
DB__HOST=hostname
DB__PORT=port
DB__DATABASE=database_name
DB__USERNAME=username
DB__PASSWORD=password
DB__READ_ONLY=true|false
DB__POOL_SIZE=5

或者使用连接字符串:

DB__TYPE=postgresql
DB__CONNECTION_STRING=postgresql://user:pass@localhost:5432/database

多数据库示例

配置多个数据库:

{
  "mcpServers": {
    "database": {
      "command": "python",
      "args": ["-m", "jdbc_mcp_server"],
      "env": {
        "DB_PROD_TYPE": "postgresql",
        "DB_PROD_CONNECTION_STRING": "postgresql://readonly@prod-server:5432/production",
        "DB_PROD_READ_ONLY": "true",

        "DB_LOCAL_TYPE": "sqlite",
        "DB_LOCAL_PATH": "/Users/dave/data/local.db",
        "DB_LOCAL_READ_ONLY": "false",

        "DB_ANALYTICS_TYPE": "mysql",
        "DB_ANALYTICS_HOST": "analytics.example.com",
        "DB_ANALYTICS_PORT": "3306",
        "DB_ANALYTICS_DATABASE": "analytics",
        "DB_ANALYTICS_USERNAME": "analyst",
        "DB_ANALYTICS_PASSWORD": "password"
      }
    }
  }
}

用法

可用的MCP工具

list_databases()

列出所有已配置的数据库连接。

list_databases()
# Returns: {"success": True, "databases": [{"name": "prod", "type": "postgresql", "read_only": True}, ...]}
test_connection(database)

测试数据库连接。

test_connection(database="prod")
# Returns: {"success": True, "connected": True, "database_type": "PostgreSQL", "version": "15.2", ...}
list_schemas(database)

列出所有模式/数据库(仅限PostgreSQL/MySQL)。

list_schemas(database="prod")
# Returns: {"success": True, "schemas": ["public", "app", ...]}
list_tables(database, schema=None)

列出数据库中的所有表。

list_tables(database="prod", schema="public")
# Returns: {"success": True, "tables": ["users", "orders", ...]}
describe_table(database, table, schema=None)

获取详细的表架构。

describe_table(database="prod", table="users", schema="public")
# Returns: {"success": True, "columns": [{"name": "id", "type": "integer", "nullable": False, "primary_key": True}, ...]}
execute_query(database, query, parameters=None, limit=100)

使用参数化输入执行SELECT查询。

execute_query(
    database="prod",
    query="SELECT * FROM users WHERE status = %s AND created_at > %s",
    parameters=["active", "2024-01-01"],
    limit=50
)
# Returns: {"success": True, "columns": [...], "rows": [...], "row_count": 50}
get_sample_data(database, table, schema=None, limit=10)

从表中获取示例行。

get_sample_data(database="prod", table="users", limit=5)
# Returns: {"success": True, "columns": [...], "rows": [...]}

可用MCP资源

db://{database}/schema

以markdown的形式获取完整的数据库模式。

db://{database}/tables/{table}/schema

以markdown的形式获取特定的表模式。

可用MCP提示

explore_database

指导数据库探索的工作流程。

query_with_safety

生成安全参数化查询的说明。

analyze_table_structure

分析表结构并确定关系。

安全最佳实践

1.使用只读模式

在探索生产数据库时始终使用只读模式(默认):

DB_PROD_READ_ONLY=true

2.创建专用数据库用户

创建仅具有SELECT权限的数据库用户:

PostgreSQL:

CREATE USER readonly_user WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE myapp TO readonly_user;
GRANT USAGE ON SCHEMA public TO readonly_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly_user;

MySQL:

CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON myapp.* TO 'readonly_user'@'%';
FLUSH PRIVILEGES;

3.使用环境变量

将凭据存储在环境变量中,而不是代码中:

export DB_PROD_PASSWORD="$(cat ~/.secrets/db_password)"

4.网络安全

  • 使用SSL/TLS进行数据库连接
  • 按IP地址限制数据库访问
  • 对远程数据库使用SSH隧道

故障排除

连接被拒绝

PostgreSQL/MySQL:

Error: Cannot connect to server. Check if the server is running.

解决:

  • 验证数据库服务器是否正在运行
  • 检查主机名和端口是否正确
  • 确保防火墙允许连接
  • 测试用 psql 或 mysql 命令行工具

认证失败

Error: Invalid username or password

解决:

  • 验证凭据是否正确
  • 检查用户是否具有必要的权限
  • 对于PostgreSQL,请检查 pg_hba.conf 允许连接

SQLite数据库已锁定

Error: SQLite database is locked by another process.

解决:

  • 关闭使用数据库的其他应用程序
  • 请稍等,然后重试
  • 检查文件权限

ibm_db安装问题(macOS)

如果 ibm_db 安装失败:

# Try with no cache
pip install --no-cache-dir ibm_db

# For Apple Silicon, ensure using Python 3.9+
python3 --version

发展

运行测试

pytest tests/

使用调试日志运行

export LOG_LEVEL=DEBUG
python -m jdbc_mcp_server

项目结构

jdbc-mcp-server/
├── src/jdbc_mcp_server/
│   ├── __init__.py           # Package initialization
│   ├── __main__.py           # Entry point
│   ├── server.py             # FastMCP server and tools
│   ├── config.py             # Configuration management
│   ├── errors.py             # Exception hierarchy
│   ├── utils.py              # Utility functions
│   └── database/
│       ├── base.py           # Abstract database adapter
│       ├── postgresql.py     # PostgreSQL adapter
│       ├── mysql.py          # MySQL adapter
│       ├── sqlite.py         # SQLite adapter
│       └── db2.py            # DB2 adapter
└── tests/                    # Test suite

MVP状态

当前支持(v0.1.0)

  • ✅ PostgreSQL
  • ✅ MySQL
  • ✅ SQLite
  • ✅ DB2 iSeries
  • ✅ 只读查询
  • ✅ 连接池
  • ✅ 模式检查
  • ✅ 参数化查询
  • ✅ MCP工具、资源和提示

即将推出

  • 🔜 写入操作(选择加入)
  • 🔜 交易支持
  • 🔜 查询缓存
  • 🔜 存储过程执行

贡献

欢迎投稿!拜托:

  1. 复刻仓库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

对于问题、疑问或贡献:

致谢

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

数据库连接Python本地部署多数据库支持数据安全查询工具开发工具

支持客户端

Claude DesktopClaudeWindsurf

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Windsurf,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Common Database MCP Server

MCP World · 本页

0stdio有2 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Common Database MCP Server 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Common Database MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Common Database MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Common Database MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Common Database MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Windsurf;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP