返回市场
数据库分析mcp

数据库分析mcp

作者:khuyentran14015 星标更新:2025-08-15

项目介绍

数据库分析 MCP 服务器

这是一个使用 FastMCP 构建的实际数据库分析 MCP 服务器,通过模型上下文协议(MCP)提供 SQLite 数据库操作。非常适合与像 Claude 这样的 AI 助手一起进行数据分析工作流程。

该服务器提供的内容

🛠️ 工具(交互式操作)

  • connect_db - 连接到 SQLite 数据库文件
  • execute_query - 执行带有安全检查的 SQL 查询
  • list_tables - 列出数据库中的所有表

📊 资源(只读数据访问)

  • schema://tables/{table_name} - 获取表列信息和结构
  • data://tables/{table_name} - 获取表样本数据以预览

🔐 安全特性

  • 防止 SQL 注入,阻止危险操作
  • 只读资源访问,确保安全的模式探索
  • 全面的错误处理,带有描述性消息

安装和设置

  1. 克隆仓库:

    git clone https://github.com/khuyentran1401/database-analytics-mcp.git
    cd database-analytics-mcp
    
  2. 安装 UV(推荐):

    # 如果尚未安装,请安装 UV
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  3. 安装依赖项:

    # UV 自动管理来自 pyproject.toml 的依赖项
    uv sync
    
  4. 测试服务器:

    uv run example_usage.py
    
  5. 添加到 Claude Code

    # 快速设置
    claude mcp add database-analytics -- uv run database_mcp_server.py
    

    验证安装:

    # 检查服务器是否已注册
    claude m
    cpl list
    

其他 MCP 客户端

对于支持标准协议的任何 MCP 客户端:

servers:
  - name: database-analytics
    transport:
      type: stdio
      command: uv
      args: ["run", "database_mcp_server.py"]

示例工作流程

使用 Claude Code 进行数据探索

  1. 连接到数据库

    连接到位于 ./sample_database.db 的我的 SQLite 数据库
    
  2. 探索模式

    这个数据库中有哪些表?
    
  3. 查看表结构

    显示用户表的模式
    
  4. 预览数据

    显示用户表的一些样本数据
    
  5. 运行分析查询

    计算按产品类别划分的总销售额
    
  6. 导出结果

    将查询“SELECT product_name, SUM(quantity) as total_sold FROM orders GROUP BY product_name”导出到名为 sales_report.csv 的 CSV 文件
    
  7. 获取表统计信息

    显示用户表的统计信息
    

常见用例

  • 数据库模式发现:快速了解数据库结构
  • 数据质量检查:抽样数据以验证数据完整性
  • 临时分析:安全地运行自定义 SQL 查询
  • 报告生成:执行复杂的分析查询
  • 数据探索:浏览表和关系,带分页
  • 数据导出:将查询结果导出到 CSV 以便外部分析
  • 性能监控:跟踪查询执行时间

可用工具及资源

工具(交互式操作)

工具参数描述
connect_dbdatabase_path: str连接到 SQLite 数据库文件
execute_querysql: str执行带有安全检查和计时的 SQL 查询
list_tablesNone列出已连接数据库中的所有表
export_to_csvsql: str, filename: str将查询结果导出到 CSV 文件

资源(只读访问)

资源 URI描述
schema://tables/{table_name}获取列信息、类型、约束、外键
data://tables/{table_name}获取样本行,带分页和统计信息(限制、偏移量)
stats://tables/{table_name}获取全面的表统计信息和列分析