About MySQL MCP Server
MySQL MCP Server provides MCP clients with read-only access to MySQL and PostgreSQL schemas and queries. Its tools cover metadata inspection, schema relationships, query plans, and schema visualizations.
Key features
- 01Inspect schemas, indexes, and constraints
- 02Compare schemas and detect relationships
- 03Run read-only SQL queries
- 04Prepare parameterized statements
- 05Explain query plans
- 06Export schema diagrams as JSON, DOT, or Mermaid
Use cases
- 01Inspect database structure before querying
- 02Explore relationships between tables
- 03Review a read-only query plan
- 04Generate schema diagrams
MCP support
Exposes read-only database inspection and query tools to MCP clients for MySQL and PostgreSQL.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMySQL & PostgreSQL MCP Server
Overview
This project provides a read-only Model Context Protocol (MCP) server for interacting with MySQL & PostgreSQL databases. It allows clients compatible with MCP to inspect database schemas, retrieve metadata, and execute read-only SQL queries through a set of defined tools. The server is built with extensibility in mind and enforces read-only operations for safety.
Features & Implemented Tools
The server exposes several tools via MCP for database interaction. All tools are designed for read-only operations.
Schema & Metadata Tools
get_table_columns: Retrieves column definitions for a specific table.get_schema: Fetches detailed schema information including tables, columns, indexes, and constraints, with varying detail levels.get_indexes: Retrieves index information for a specific table or all tables.get_constraints: Fetches constraint information (Primary Key, Foreign Key, Unique, Check) for a specific table or all tables.compare_schemas: Compares the structure (tables and columns) of two different database schemas.explain_schema: Generates a textual or structured (JSON) description of the database schema.detect_schema_changes: Returns a snapshot of the current schema. (Note: Does not compare against a specific past time).find_relationships: Discovers explicit foreign key relationships. Can optionally attempt to find implicit relationships based on naming conventions (use with caution).find_navigation_paths: Finds paths between two tables using explicit foreign key relationships (BFS algorithm).
Query Execution Tools
execute_query: Executes a given read-only SQL query (SELECT, SHOW, DESCRIBE, EXPLAIN).execute_batch: Runs multiple read-only SQL queries sequentially. Can stop on the first error or attempt all.prepare_statement: Prepares and executes a read-only SQL statement with parameters.explain_query: ExecutesEXPLAINon a given SQL statement to show the query execution plan (TEXT or JSON format).get_query_history: Placeholder tool. Server-side query history is not currently implemented.
Visualization Tools
visualize_schema: Generates schema representations (tables, columns, relationships) in JSON, DOT (Graphviz), or Mermaid syntax suitable for creating ER diagrams.
Performance Tools
get_performance_metrics: Retrieves selected global status variables from MySQL (e.g., Uptime, Threads, Queries). Does not provide query-specific history.
Setup & Installation
-
Prerequisites:
- Node.js
- npm
- Access to a MySQL or PostgreSQL database
-
Clone the Repository:
git clone https://github.com/kaulvimal/mysql-mcp cd mysql-mcp -
Install Dependencies:
npm install -
Build the Project:
npm run buildThis will create a
builddirectory with the compiled code. -
Using the server
-
Create a shell script (e.g.,
mysql-mcp.sh) in the project root or a convenient location:#!/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 -
Make the script executable:
chmod +x mysql-mcp.sh -
Integration Example (Cursor)
To integrate this server with an Cursor, you can configure the client to run the server's execution script:
{ "mcpServers": { "mysql-mcp": { "command": "/path/to/your/mysql-mcp.sh" // Replace with the actual path to your script } } }
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.