数据库查询工具

db-query-mcp是一个支持多种数据库查询和导出的工具,具有多数据库支持、安全访问、智能查询和数据导出功能。

  • by NewToolAI
  • Python
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 NewToolAI/db-query-mcp

使用说明

[英语| 中文 ]

数据库查询mcp

引言

db-query mcp是一个支持多种数据库查询和导出的mcp工具,其特点是:

  • 多数据库支持:与主流数据库(ElasticSearch、MySQL、PostgreSQL、Oracle、SQLite等)完全兼容
  • 安全访问:数据保护的默认只读模式
  • 智能查询:使用查询优化进行自然语言到SQL的转换
  • 数据导出:CSV/Json导出功能
  • 路线图:扩展对MongoDB和GraphDatabase的支持,成为全栈DB查询MCP

演示

https://github.com/user-attachments/assets/60771cda-8b52-41bd-90e3-523c836f6366

更新日志

  • 2025-06-02:增加了对ElasticSearch数据库查询的支持

安装

pip install db-query-mcp

ElasticSearch:

pip install "db-query-mcp[elasticsearch]"

从GitHub安装:

pip install git+https://github.com/NewToolAI/db-query-mcp

MySQL需要额外的依赖关系:

pip install pymysql

PostgreSQL需要额外的依赖关系:

pip install psycopg2-binary

对于其他数据库,请安装其各自的连接包:

数据库 连接包 连接字符串示例
数据库 内置Python sqlite:///example.db
MySQL pymysql 或 mysql-connector-python mysql+pymysql://user:password@localhost/dbname
PostgreSQL psycopg2 或 psycopg2-binary postgresql://user:password@localhost:5432/dbname
甲骨文 cx_Oracle oracle+cx_oracle://user:password@hostname:1521/sidname
SQL Server pyodbc 或 pymssql mssql+pyodbc://user:password@hostname/dbname

配置

注:​对于某些客户端,如Cursor,一次只能运行一个db查询mcp服务器。​​

使用uvx运行

{
  "mcpServers": {
      "sqlite_db_mcp": {
        "command": "uvx",
        "args": [
          "db-query-mcp",
          "--db",
          "sqlite",
          "--uri", 
          "sqlite:///sqlite_company.db"
        ]
      }
  }
}
{
  "mcpServers": {
      "es_db_mcp": {
        "command": "uvx",
        "args": [
          "db-query-mcp",
          "--db",
          "elasticsearch",
          "--uri", 
          "https://user:password@localhost:9200?index=test_data_index&ca_certs=/home/user/http_ca.crt"
        ]
      }
  }
}

使用命令运行

{
  "mcpServers": {
      "sqlite_db_mcp": {
        "command": "db-query-mcp",
        "args": [
          "--db",
          "sqlite",
          "--uri", 
          "sqlite:///sqlite_company.db"
        ]
      }
  }
}
{
  "mcpServers": {
      "es_db_mcp": {
        "command": "db-query-mcp",
        "args": [
          "--db",
          "elasticsearch",
          "--uri", 
          "https://user:password@localhost:9200?index=test_data_index&ca_certs=/home/user/http_ca.crt"
        ]
      }
  }
}