MCP MySQL
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MYSQL_HOST | No | MySQL server host (default: localhost) | localhost |
| MYSQL_PORT | No | MySQL server port (default: 3306) | 3306 |
| MYSQL_USER | Yes | MySQL username | |
| MYSQL_DATABASE | Yes | MySQL database name | |
| MYSQL_PASSWORD | Yes | MySQL password |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| test_connectionA | Test the MySQL connection and return database name and version. |
| list_tablesA | List all tables in the configured MySQL database. |
| list_viewsA | List all views in the configured MySQL database. |
| describe_tableC | Describe the columns of a MySQL table. Args: table_name: Name of the table to inspect. |
| list_indexesC | List indexes for a MySQL table. Args: table_name: Name of the table. |
| list_foreign_keysA | List foreign keys for one table, or all in the current database. Args: table_name: Optional table name. Empty = all foreign keys. |
| find_columnA | Find tables that contain a column name (supports % wildcards). Args: column_name: Exact name or pattern, e.g. customer_id or %email%. |
| sample_rowsB | Return sample rows from a table. Args: table_name: Table name. limit: Max rows (1-100). Default 10. |
| count_rowsC | Count rows in a table. Args: table_name: Table name. |
| execute_queryA | Execute a read-only SQL query (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH). Args: query: SQL query to run. limit: Max rows when the query has no LIMIT (1-1000). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes (list_tables vs list_views vs describe_table, etc.), but execute_query overlaps with nearly all specialized tools since it can run arbitrary read-only SQL including SHOW, DESCRIBE, and SELECT. The descriptions help, but an agent might still choose execute_query instead of the dedicated tool for some tasks.
All tool names follow a consistent snake_case verb_noun pattern (test_connection, list_tables, describe_table, find_column, etc.), making the set highly predictable and readable.
With 10 tools, the server is well-scoped for read-only MySQL introspection and querying. Each tool serves a specific purpose, and the count is neither too thin nor too heavy.
The surface covers connection testing, schema listing (tables, views, indexes, foreign keys), column discovery, and data sampling/counting. Minor gaps like retrieving DDL (SHOW CREATE TABLE) or listing triggers/procedures exist, but these can be handled via execute_query.