返回市场
mysql-mcp

mysql-mcp

作者:kaulvimal2 星标更新:2025-07-07

项目介绍

MySQL & PostgreSQL MCP Server

概述

该项目提供了一个只读的模型上下文协议(MCP)服务器,用于与MySQL和PostgreSQL数据库进行交互。它允许兼容MCP的客户端通过一组定义的工具检查数据库模式、检索元数据并执行只读SQL查询。该服务器在设计时考虑了可扩展性,并强制执行只读操作以确保安全。

功能及实现工具

服务器通过MCP暴露了多个用于数据库交互的工具。所有工具都设计为只读操作。

模式及元数据工具

  • get_table_columns: 获取特定表的列定义。
  • get_schema: 获取详细的模式信息,包括表、列、索引和约束,具有不同的详细级别。
  • get_indexes: 获取特定表或所有表的索引信息。
  • get_constraints: 获取特定表或所有表的约束信息(主键、外键、唯一、检查)。
  • compare_schemas: 比较两个不同数据库模式的结构(表和列)。
  • explain_schema: 生成数据库模式的文本或结构化(JSON)描述。
  • detect_schema_changes: 返回当前模式的快照。(注意:不与特定过去时间进行比较)。
  • find_relationships: 发现显式的外键关系。可以尝试根据命名约定发现隐式关系(谨慎使用)。
  • find_navigation_paths: 使用显式的外键关系(广度优先搜索算法)查找两个表之间的路径。

查询执行工具

  • execute_query: 执行给定的只读SQL查询(SELECT, SHOW, DESCRIBE, EXPLAIN)。
  • execute_batch: 顺序执行多个只读SQL查询。可以在第一个错误时停止或尝试所有。
  • prepare_statement: 准备并执行带有参数的只读SQL语句。
  • explain_query: 对给定的SQL语句执行EXPLAIN,显示查询执行计划(文本或JSON格式)。
  • get_query_history: 占位符工具。服务器端查询历史尚未实现。

可视化工具

  • visualize_schema: 生成模式表示(表、列、关系),适用于创建ER图的JSON、DOT(Graphviz)或Mermaid语法。

性能工具

  • get_performance_metrics: 从MySQL中获取选定的全局状态变量(例如,运行时间、线程数、查询数)。不提供特定查询的历史记录。

安装设置

  1. 前提条件:

    • Node.js
    • npm
    • 访问MySQL或PostgreSQL数据库的权限
  2. 克隆仓库:

    git clone https://github.com/kaulvimal/mysql-mcp
    cd mysql-mcp
    
  3. 安装依赖项:

    npm install
    
  4. 构建项目:

    npm run build
    

    这将创建一个包含编译代码的build目录。

  5. 使用服务器

  • 在项目根目录或方便的位置创建一个shell脚本(例如,mysql-mcp.sh):

    #!/bin/bash
    # 设置环境变量(如果未使用.env或想要覆盖)
    export MYSQL_HOST=""
    export MYSQL_USER=""
    export MYSQL_PASSWORD=""
    export MYSQL_PORT=""
    
    export PG_HOST=""
    export PG_USER=""
    export PG_PASSWORD=""
    export PG_PORT=""
    export PG_DATABASE=""
    node $(dirname "$0")/build/index.js
    
  • 将脚本设为可执行:

    chmod +x mysql-mcp.sh
    
  • 集成示例(Cursor)

    要将此服务器集成到Cursor中,您可以配置客户端以运行服务器的执行脚本:

    {
    "mcpServers": {
    	"mysql-mcp": {
    	"command": "/path/to/your/mysql-mcp.sh" // 替换为实际脚本路径
    	}
    }
    }