Skip to main content
Glama
shibbirweb

mcp-mysql-read-only

by shibbirweb

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MYSQL_HOSTNoMySQL host. Defaults to host.docker.internal. Single-connection fallback.host.docker.internal
MYSQL_PORTNoMySQL port. Defaults to 3306.3306
MYSQL_USERNoMySQL user. If set with MYSQL_DATABASE, registers a profile named 'default'.
MYSQL_DATABASENoMySQL database name. If set with MYSQL_USER, registers a profile named 'default'.
MYSQL_PASSWORDNoMySQL password. Defaults to empty.
MYSQL_PROFILESNoJSON object of named profiles. Example: {"local":{"host":"host.docker.internal","user":"root","password":"","database":"app_dev"}}
MYSQL_DEFAULT_PROFILENoWhich profile starts active. Defaults to 'default' if it exists, otherwise the first profile.
MYSQL_QUERY_TIMEOUT_MSNoStatement timeout in milliseconds. Defaults to 30000.30000
MYSQL_CONNECT_TIMEOUT_MSNoConnection timeout in milliseconds. Defaults to 10000.10000

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
current_connectionA

Show which MySQL server and database the read-only tools are currently pointed at

list_connectionsA

List the connection profiles available to switch to, including any added during this session

list_databasesA

List databases on the currently connected MySQL server

use_databaseA

Switch the active database on the current MySQL server. Takes effect immediately, no restart needed

use_connectionA

Switch to a named connection profile. Takes effect immediately, no restart needed

connectA

Connect to any MySQL server at runtime with explicit credentials. Not persisted to disk, but kept for the rest of the session under an alias

list_tablesA

List all tables in the active database

describe_tableA

Show columns and schema for a specific table

get_table_indexesA

Show indexes for a specific table

get_foreign_keysA

Show foreign key relationships for a specific table

get_table_sampleB

Get sample rows from a table

run_queryA

Execute a read-only SQL query (SELECT, WITH, SHOW, DESCRIBE, EXPLAIN only) against the active connection

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clear, distinct purposes: connection management (connect, use_connection, list_connections, current_connection), database selection (list_databases, use_database), schema inspection (list_tables, describe_table, get_table_indexes, get_foreign_keys), and data sampling (get_table_sample, run_query). However, there is slight overlap between get_table_sample and run_query (both can retrieve data), and between list_connections and current_connection, though descriptions clarify the difference.

Naming Consistency4/5

The naming is mostly consistent with verb_noun (e.g., list_tables, describe_table, use_database, get_table_indexes). The only minor deviation is the use of 'current_connection' as a noun phrase instead of a verb, and 'run_query' is fine. The pattern is predictable and readable.

Tool Count4/5

12 tools is a reasonable number for a database inspection server. Each tool serves a clear purpose, and the count is within the typical 3-15 range, though it's on the higher end. No tool feels extraneous, and the set covers connection management and schema exploration comprehensively.

Completeness3/5

The server covers connection management and schema inspection well, but it lacks write operations (by design, since it's read-only) and query execution is limited to read-only. Missing tools like 'list_views' or 'get_table_data' (full table dump) would be nice, but the core read-only workflow is covered. The read-only limitation is intentional, so the surface is fairly complete for its stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues