ppengit/jj-multi-database-mcp
3.1
If you are the rightful owner of jj-multi-database-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
JJ MCP is a comprehensive Model Context Protocol server supporting multiple databases and file system operations.
Tools
5
Resources
0
Prompts
0
JJ MCP - 多数据库 MCP 服务器
一个全面的 MCP (Model Context Protocol) 服务器,支持多种数据库和文件系统操作。
功能特性
- SQL Server 支持: 查询、执行、表结构获取等完整功能
- Oracle 数据库支持: 完整的 Oracle 数据库操作支持
- MySQL 数据库支持: 完整的 MySQL 数据库操作支持
- Redis 支持: 基本的 Redis 操作(get、set、delete、keys 等)
- 文件系统操作: 安全的文件读写和目录操作
- 安全控制: 路径访问控制、文件扩展名限制等
- 环境变量配置: 灵活的配置管理
- 跨平台支持: Windows、Linux、macOS
安装
基础安装
pip install jj-multi-database-mcp
数据库支持安装(按需)
根据您需要使用的数据库,安装相应的扩展:
SQL Server 支持
# 安装 SQL Server 支持
pip install jj-multi-database-mcp[sqlserver]
# 需要安装 ODBC Driver for SQL Server
# 下载地址: https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server
Oracle 支持
# 安装 Oracle 支持
pip install jj-multi-database-mcp[oracle]
# 可能需要安装 Oracle Instant Client
# 下载地址: https://www.oracle.com/database/technologies/instant-client.html
MySQL 支持
# 安装 MySQL 支持
pip install jj-multi-database-mcp[mysql]
Redis 支持
# 安装 Redis 支持
pip install jj-multi-database-mcp[redis]
安装所有数据库支持
# 一次性安装所有数据库支持
pip install jj-multi-database-mcp[all-databases]
注意: 如果不安装某个数据库的扩展,对应的数据库功能将不可用,但不会影响其他功能的正常使用。
配置
1. 创建配置文件
复制示例配置文件并修改:
cp .env.example .env
2. 配置数据库连接
编辑 .env 文件,启用并配置需要的数据库:
# SQL Server
SQLSERVER_ENABLED=true
SQLSERVER_HOST=localhost
SQLSERVER_PORT=1433
SQLSERVER_DATABASE=mydb
SQLSERVER_USERNAME=myuser
SQLSERVER_PASSWORD=mypass
# Oracle
ORACLE_ENABLED=true
ORACLE_HOST=localhost
ORACLE_PORT=1521
ORACLE_SERVICE_NAME=ORCL
ORACLE_USERNAME=myuser
ORACLE_PASSWORD=mypass
# MySQL
MYSQL_ENABLED=true
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=mydb
MYSQL_USERNAME=myuser
MYSQL_PASSWORD=mypass
# Redis
REDIS_ENABLED=true
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=mypass
3. 文件系统安全配置
# 限制访问路径(推荐用于生产环境)
FS_ALLOWED_PATHS=/home/user/data,/tmp
# 限制文件类型
FS_ALLOWED_EXTENSIONS=.txt,.py,.json,.csv
# 禁用删除操作(推荐用于生产环境)
FS_ENABLE_DELETE=false
4. 云数据库配置示例
阿里云 RDS for MySQL
MYSQL_ENABLED=true
MYSQL_HOST=rm-xxxxxxxx.mysql.rds.aliyuncs.com
MYSQL_PORT=3306
MYSQL_DATABASE=mydb
MYSQL_USERNAME=myuser
MYSQL_PASSWORD=mypass
MYSQL_USE_SSL=true
MYSQL_RDS_INSTANCE_ID=rm-xxxxxxxx
MYSQL_REGION=cn-hangzhou
Azure SQL Database
SQLSERVER_ENABLED=true
SQLSERVER_HOST=myserver.database.windows.net
SQLSERVER_PORT=1433
SQLSERVER_DATABASE=mydb
SQLSERVER_USERNAME=myuser@myserver
SQLSERVER_PASSWORD=mypass
SQLSERVER_ENCRYPT=true
SQLSERVER_TRUST_CERT=false
SQLSERVER_AUTHENTICATION=ActiveDirectoryPassword
AWS RDS for MySQL
MYSQL_ENABLED=true
MYSQL_HOST=mydb.xxxxxxxx.us-east-1.rds.amazonaws.com
MYSQL_PORT=3306
MYSQL_DATABASE=mydb
MYSQL_USERNAME=myuser
MYSQL_PASSWORD=mypass
MYSQL_USE_SSL=true
MYSQL_REGION=us-east-1
使用方法
启动服务器
# 直接运行
jj-multi-database-mcp
# 或者使用短名称
jj-mcp
# 或者使用 Python 模块
python -m jj_mcp
MCP 工具
服务器提供以下工具:
SQL Server 工具
sql_query_mcp-sqlserver-filesystem: 执行 SELECT 查询sql_execute_mcp-sqlserver-filesystem: 执行 INSERT/UPDATE/DELETEget_table_schema_mcp-sqlserver-filesystem: 获取表结构list_tables_mcp-sqlserver-filesystem: 列出所有表
Oracle 工具
oracle_query: 执行 Oracle SELECT 查询oracle_execute: 执行 Oracle INSERT/UPDATE/DELETEoracle_table_schema: 获取 Oracle 表结构oracle_list_tables: 列出 Oracle 表
MySQL 工具
mysql_query: 执行 MySQL SELECT 查询mysql_execute: 执行 MySQL INSERT/UPDATE/DELETEmysql_table_schema: 获取 MySQL 表结构mysql_list_tables: 列出 MySQL 表
Redis 工具
redis_get: 获取键值redis_set: 设置键值redis_delete: 删除键redis_keys: 获取匹配的键列表redis_exists: 检查键是否存在
文件系统工具
read_file_mcp-sqlserver-filesystem: 读取文件内容write_file_mcp-sqlserver-filesystem: 写入文件内容list_directory_mcp-sqlserver-filesystem: 列出目录内容
前置条件
SQL Server
- 安装 ODBC Driver for SQL Server
- 确保 SQL Server 允许远程连接
- 配置正确的防火墙规则
- 支持 Azure SQL Database(使用 ActiveDirectory 认证)
- 支持高级连接选项(MARS、加密、应用程序意图等)
Oracle
- 安装 Oracle Instant Client(如果使用 thick 模式)
- 配置 TNS 或使用 Easy Connect 字符串
- 确保网络连接正常
MySQL
- MySQL 服务器运行中
- 配置正确的用户权限
- 确保网络连接和端口开放
- 支持云服务:
- 阿里云 RDS for MySQL
- AWS RDS for MySQL
- 腾讯云 CDB for MySQL
- 其他兼容 MySQL 协议的云数据库
- 支持 SSL/TLS 加密连接
- 支持自定义字符集和排序规则
Redis
- Redis 服务器运行中
- 配置正确的认证信息(如果启用)
故障排除
常见问题
-
SQL Server 连接失败
- 检查 ODBC 驱动是否正确安装
- 验证连接字符串和认证信息
- 确认 SQL Server 允许远程连接
-
Oracle 连接失败
- 检查 Oracle 客户端库是否安装
- 验证 TNS 配置或连接字符串
- 确认网络连接和端口开放
-
Redis 连接失败
- 检查 Redis 服务是否运行
- 验证主机、端口和认证信息
- 检查防火墙设置
-
文件系统权限错误
- 检查路径访问权限
- 验证
FS_ALLOWED_PATHS配置 - 确认文件扩展名在允许列表中
日志调试
启用调试日志:
MCP_LOG_LEVEL=DEBUG
安全注意事项
-
生产环境配置
- 限制文件系统访问路径
- 禁用不必要的数据库功能
- 使用强密码和加密连接
-
网络安全
- 配置防火墙规则
- 使用 VPN 或专用网络
- 启用数据库加密连接
-
访问控制
- 使用最小权限原则
- 定期审查配置
- 监控访问日志
许可证
MIT License
作者
PJ (peng.it@qq.com)
贡献
欢迎提交 Issue 和 Pull Request!