使用说明
MySQL和PostgreSQL MCP服务器
概述
该项目提供了一个只读的模型上下文协议(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:使用显式外键关系(BFS算法)查找两个表之间的路径。
查询执行工具
execute_query:执行给定的只读SQL查询(SELECT、SHOW、DESCRIBE、EXPLAIN)。execute_batch:按顺序运行多个只读SQL查询。可以在第一个错误时停止或全部尝试。prepare_statement:准备并执行带有参数的只读SQL语句。explain_query:执行EXPLAIN在给定的SQL语句上显示查询执行计划(TEXT或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 # Set environment variables (if not using .env or want to override) 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集成,您可以配置客户端运行服务器的执行脚本:
{ "mcpServers": { "mysql-mcp": { "command": "/path/to/your/mysql-mcp.sh" // Replace with the actual path to your script } } }