数据库管理服务器

Universal Database MCP Server是一个为PostgreSQL和MySQL数据库设计的模型上下文协议服务器,允许Claude查询和管理数据库。

  • by johnroshan2255
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 johnroshan2255/universal-db-mcp

使用说明

通用数据库MCP服务器

PostgreSQL和MySQL数据库的模型上下文协议服务器。使Claude能够查询和管理您的数据库。

安装

npm install -g @johnroshan/universal-db-mcp

配置

编辑Claude Desktop配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

PostgreSQL

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@johnroshan/universal-db-mcp"],
      "env": {
        "DB_TYPE": "postgres",
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

或者使用单个参数:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@johnroshan/universal-db-mcp"],
      "env": {
        "DB_TYPE": "postgres",
        "DB_HOST": "localhost",
        "DB_PORT": "5432",
        "DB_NAME": "mydb",
        "DB_USER": "postgres",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}

MySQL

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@johnroshan/universal-db-mcp"],
      "env": {
        "DB_TYPE": "mysql",
        "DATABASE_URL": "mysql://user:password@localhost:3306/mydb"
      }
    }
  }
}

可用工具

  • query -执行SQL查询
  • list_tables -列出所有表格
  • describe_table -获取表架构
  • list_databases -列出数据库
  • table_row_count -统计表中的行数
  • search_table -使用模式匹配搜索记录

使用示例

配置完成后,询问Claude:

  • “显示数据库中的所有表”
  • “用户表的架构是什么”
  • “订单表中有多少行”
  • “查找所有具有gmail地址的用户”
  • “显示最近10个订单”

环境变量

变量 必填 描述
DB_TYPE 是 postgres或mysql
DATABASE_URL 否 完整连接字符串
DB_HOST 否 数据库主机
DB_PORT 否 数据库端口
DB_NAME 否 数据库名称
DB_USER 否 数据库用户
DB_PASSWORD 否 数据库密码

需要DATABASE_URL或DB_NAME+DB_USER。

安全

此服务器在您的计算机上本地运行。数据库凭据仍保留在您的设备上。

考虑创建只读数据库用户:

PostgreSQL:

CREATE USER claude_readonly WITH PASSWORD 'password';
GRANT CONNECT ON DATABASE mydb TO claude_readonly;
GRANT USAGE ON SCHEMA public TO claude_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_readonly;

MySQL:

CREATE USER 'claude_readonly'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON mydb.* TO 'claude_readonly'@'localhost';
FLUSH PRIVILEGES;

故障排除

连接被拒绝:

  • 验证数据库是否正在运行
  • 检查主机和端口
  • 检查防火墙设置

身份验证失败:

  • 验证凭据
  • 检查用户权限
  • 对于PostgreSQL,请查看pg_hba.conf

Claude看不到服务器:

  • 重新启动克劳德桌面
  • 检查配置文件语法
  • 检查~/Library/logs/Claude/mcp*.log中的日志

许可证

麻省理工学院