返回 MCP 目录
public公开dns本地运行

mysql-mcp-server-qrx

提供MySQL和PostgreSQL数据库的只读MCP服务,支持元数据查询、模式分析和可视化等功能。

article

README

🚀 只读的模型上下文协议(MCP)服务器

本项目提供了一个只读的模型上下文协议(MCP)服务器,用于与 MySQL 和 PostgreSQL 数据库进行交互。借助该服务器,兼容 MCP 的客户端能够通过一组定义好的工具,检查数据库架构、检索元数据并执行只读 SQL 查询。同时,该服务器具备可扩展性,且强制执行只读操作,充分保障了使用安全。

🚀 快速开始

此只读的 MCP 服务器允许兼容 MCP 的客户端对数据库架构进行检查、检索元数据并执行只读 SQL 查询。以下是使用该服务器的快速步骤:

  1. 确保满足先决条件,包括安装 Node.js、npm,并具有对 MySQL 或 PostgreSQL 数据库的访问权限。
  2. 克隆项目仓库并安装依赖项。
  3. 构建项目以生成编译后的代码。
  4. 创建 shell 脚本并设置环境变量,即可启动使用服务器。

✨ 主要特性

架构与元数据工具

  • 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:生成架构表示(表、列、关系)为 JSON、DOT(Graphviz)或 Mermaid 语法,适用于创建 ER 图。

性能工具

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

📦 安装指南

先决条件

  • Node.js
  • npm
  • 对 MySQL 或 PostgreSQL 数据库的访问权限

克隆仓库

git clone https://github.com/kaulvimal/mysql-mcp
cd mysql-mcp

安装依赖项

npm install

构建项目

npm run build

此命令将创建一个 build 目录,其中包含编译后的代码。

使用服务器

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

#!/bin/bash
# 设置环境变量(如果不想使用.env文件或要覆盖)
export MYSQL_HOST=""
export MYSQL_USER=""
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端