MySQL MCP Server
Provides tools for interacting with MariaDB databases, enabling AI agents to query, analyze table structures, get sample data, and execute write operations when enabled.
Provides tools for interacting with MySQL databases, enabling AI agents to query, analyze table structures, get sample data, and execute write operations when enabled.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MySQL MCP Serverlist all tables in the current database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MySQL MCP Server
让AI安全地理解和操作你的MySQL/MariaDB数据库
✨ 特性
🔒 安全优先 — 默认只读模式,写操作需显式开启
📊 智能分析 — 表结构、统计信息、执行计划一键获取
🇨🇳 中文优先 — 文档、错误提示、注释全部中文化
🔌 即插即用 — 支持Claude Desktop、Cursor、Cline等MCP客户端
🛡️ 访问控制 — 可配置允许的数据库和禁止的表
🔄 连接池 — 自动管理数据库连接,高效复用
Related MCP server: MCP MySQL Server
🚀 快速开始
安装
pip install mysql-mcp-server配置
在Claude Desktop的配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mysql": {
"command": "python",
"args": ["-m", "mysql_mcp_server"],
"env": {
"MYSQL_MCP_HOST": "localhost",
"MYSQL_MCP_PORT": "3306",
"MYSQL_MCP_USER": "root",
"MYSQL_MCP_PASSWORD": "your_password",
"MYSQL_MCP_DATABASE": "your_database",
"MYSQL_MCP_READ_ONLY": "true"
}
}
}
}Cursor配置
在Cursor的MCP设置中添加:
{
"mcpServers": {
"mysql": {
"command": "python",
"args": ["-m", "mysql_mcp_server"],
"env": {
"MYSQL_MCP_HOST": "localhost",
"MYSQL_MCP_PORT": "3306",
"MYSQL_MCP_USER": "root",
"MYSQL_MCP_PASSWORD": "your_password",
"MYSQL_MCP_DATABASE": "your_database"
}
}
}
}🛠️ 工具列表
工具 | 说明 | 安全级别 |
| 列出所有可访问的数据库 | 🟢 只读 |
| 列出指定数据库的所有表 | 🟢 只读 |
| 获取表的详细结构(列、索引、建表语句) | 🟢 只读 |
| 执行SQL查询(仅SELECT/SHOW/DESCRIBE) | 🟢 只读 |
| 获取表的样本数据 | 🟢 只读 |
| 获取表的统计信息(行数、大小等) | 🟢 只读 |
| 获取SQL执行计划 | 🟢 只读 |
| 执行写操作(INSERT/UPDATE/DELETE) | 🔴 需关闭只读 |
⚙️ 环境变量
变量 | 默认值 | 说明 |
| localhost | MySQL主机地址 |
| 3306 | MySQL端口 |
| root | MySQL用户名 |
| (空) | MySQL密码 |
| (空) | 默认数据库 |
| true | 只读模式 |
| 100 | 查询结果最大行数 |
| 30 | 查询超时(秒) |
| (空=全部) | 允许访问的数据库列表 |
| (空=无) | 禁止访问的表列表 |
🔒 安全说明
默认只读 — 服务器启动后默认为只读模式,只能执行SELECT等查询
写操作需显式开启 — 设置
MYSQL_MCP_READ_ONLY=false才能使用execute_write访问控制 — 可通过
ALLOWED_DATABASES限制可访问的数据库表级屏蔽 — 可通过
BLOCKED_TABLES屏蔽敏感表(支持通配符)结果限制 — 默认最多返回100行,防止意外返回大量数据
超时保护 — 查询默认30秒超时,防止长时间运行的查询
📝 使用示例
在Claude中对话
你: 帮我看看数据库里有哪些表
Claude: [调用 list_databases → list_tables] 你的数据库中有以下表...
你: users表的结构是什么?
Claude: [调用 describe_table] users表有以下字段...
你: 帮我查一下最近注册的10个用户
Claude: [调用 query] SELECT * FROM users ORDER BY created_at DESC LIMIT 10
你: 这个查询为什么这么慢?
Claude: [调用 explain_query] 让我看看执行计划...🏗️ 开发
# 克隆仓库
git clone https://github.com/your-username/mysql-mcp-server.git
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest tests/📄 License
MIT License
Available Tools
8 toolsdescribe_tableDescribe TableA
获取表的详细结构信息,包括列定义、索引、建表语句
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | 表名称 | |
| database | Yes | 数据库名称 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The verb '获取' strongly implies a read-only retrieval, and the description states what is returned (columns, indexes, DDL). However, it does not explicitly disclose that no data is modified, nor does it mention prerequisites like table existence or required permissions. It is adequate but not rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one information-dense sentence: the primary action is stated first, followed by a specific list of returned components. There is absolutely no filler or repetition, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema fully documents both required parametersessed an output schema exists to describe return structure. The description communicates the tool's core purpose and return contents. The main gaps are lack of explicit usage guidance and any confirmation of read-only behavior, but for a simple metadata retrieval operation these are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters (database, table) already have clear Chinese descriptions in the input schema. The tool description adds no extra meaning or constraints beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (获取/get) and resource (表的详细结构信息/detailed table structure), then enumerates the exact content returned: column definitions, indexes, and DDL. This clearly distinguishes it from siblings like query (row data), get_table_sample (sample rows), and get_table_stats (statistics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when schema details are needed, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. It names no sibling tools and gives no 'when not to use' guidance, so the usage context is only implied through the description's wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_writeExecute WriteA
执行写操作(INSERT/UPDATE/DELETE),需要关闭只读模式
⚠️ 此工具仅在只读模式关闭时可用(MYSQL_MCP_READ_ONLY=false)
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL写操作语句(INSERT/UPDATE/DELETE) | |
| database | No | 可选,指定数据库 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it does disclose the core mutation side effect and the read-only gate. It flags a critical configuration-dependent behavior that an agent must know before calling. It does not detail transaction/commit behavior or destructive-statement impact, which would push it to a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The key warning about read-only mode is front-loaded after the core purpose. Every word contributes to either defining the operation or preventing misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, the acceptable SQL statement types, and the critical gating condition, while the output schema handles return values. The main gaps are transactionality and the consequences of destructive statements, but these are secondary given the clear mutation warning. Overall, an agent has enough to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already carry descriptive text, so the description adds little beyond the structured schema. The mention of INSERT/UPDATE/DELETE reinforces what the sql parameter accepts, but that same constraint is already in the parameter description. Baseline 3 is appropriate given the full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool executes write operations (INSERT/UPDATE/DELETE), which is a specific verb-resource pairing. This clearly distinguishes it from the read-only siblings such as query and list_tables. The tool is unambiguously the write counterpart in the set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear precondition: the tool is only available when read-only mode is disabled, with the exact environment variable named. It does not explicitly say 'use query for SELECT', but the restriction to INSERT/UPDATE/DELETE makes the usage boundary clear. This is solid context without an explicit alternatives section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_queryExplain QueryA
获取SQL查询的执行计划,用于分析查询性能
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | 需要分析的SQL查询语句 | |
| database | No | 可选,指定数据库 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. '获取执行计划' conveys a read-only diagnostic action, but it does not explicitly state whether the query is executed, whether there are side effects, or any cost/performance implications beyond the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence in Chinese that front-loads the operation and purpose. There is no filler or redundant restatement of the tool name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with a documented output schema, the description is largely sufficient: it states what the tool does and when it is useful. It could add a note about not modifying data, but the read-only nature is strongly implied by '获取执行计划'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the sql and database parameters. The description does not add parameter-level semantics beyond the purpose, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('获取') and resource ('SQL查询的执行计划'), and adds the purpose '用于分析查询性能'. This clearly identifies the tool as an explain/plan analysis utility rather than a data-returning query tool, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the context: analyzing query performance. It does not provide exclusions or compare itself to alternatives like query or execute_write, so it misses the explicit when/when-not guidance, but the stated purpose gives clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_sampleGet Table SampleA
获取表的样本数据(默认前5行),快速了解数据内容
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回行数,默认5,最大100 | |
| table | Yes | 表名称 | |
| database | Yes | 数据库名称 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the default 5-row limit but does not address ordering guarantees, read-only nature explicitly, or behavior beyond the limit. For a sampling tool, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise Chinese sentence, front-loads the action, and includes the default behavior. There is no wasted wording or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and 100% parameter coverage, the description is complete for a simple sample tool. The only notable gap is the absence of explicit guidance on ordering or when to prefer this over query, but this is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (database, table, limit) already described. The description only repeats the default limit value and adds no extra parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '获取表的样本数据' (get sample data of a table) with a specific default of '前5行' (first 5 rows). This distinguishes it from siblings like query (custom queries) and describe_table (schema information).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '快速了解数据内容' implies a quick-preview use case, but it does not explicitly state when to use this tool over query or describe_table, nor does it mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_statsGet Table StatsA
获取表的统计信息,包括行数、数据大小、索引大小、列基数
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | 表名称 | |
| database | Yes | 数据库名称 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral disclosure burden. The verb '获取' indicates a non-mutating fetch, and the listed metrics clarify what the operation produces, but there is no mention of cost, freshness, approximation, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently written sentence that front-loads the core action and follows it with a clear comma-separated list of output categories. There is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-style tool with two required parameters and an output schema, the description is essentially complete for invoking the tool correctly. The only meaningful gap is the absence of explicit guidance for choosing this tool over closely related sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'database' and 'table' already documented as 数据库名称 and 表名称. The tool description adds no parameter-level detail beyond what the schema provides, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('获取') and resource ('表的统计信息'), and enumerates concrete output types (行数, 数据大小, 索引大小, 列基数). This is clear and helps distinguish it from generic query/describe siblings, though it does not explicitly name or contrast any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving table statistics and therefore carries contextual usage guidance. However, it does not state when to prefer this over describe_table or explain_query, nor does it provide any 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_databasesList DatabasesA
列出MySQL服务器上所有可访问的数据库
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose that only accessible databases are returned, but it does not explicitly state that the operation is read-only, requires specific privileges, or has any other behavioral traits an agent should know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, front-loaded sentence. Every word contributes to the meaning, and there is no padding, repetition, or unnecessary structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with an output schema, the description is sufficient to convey the core behavior and scope. It does not explain return values, but the output schema covers that, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema has 100% coverage, so there is no parameter ambiguity. The description correctly avoids describing nonexistent parameters, matching the baseline for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (列出/list) on a specific resource (databases) with a clear scope (all accessible databases on the MySQL server). It distinguishes this tool from siblings like list_tables and describe_table by making the database-level target explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what the tool does; it gives no explicit guidance on when to use it versus alternatives like list_tables or query. There are no exclusions, prerequisites, or contextual hints about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesList TablesA
列出指定数据库中的所有表
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | 数据库名称 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full behavioral burden. It clearly states the result is all tables in the specified database, but it does not disclose whether views/system tables are included, ordering, error behavior, or permission requirements. This is minimal but acceptable for a simple read-only enumeration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately sized for a one-parameter list operation and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The one required parameter is fully documented and an output schema exists, so return structure does not need to be explained in the description. The only gap is lack of scoping detail about what counts as 'all tables', but for a simple enumeration tool this is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single database parameter with 100% coverage as '数据库名称', so the description adds no new semantic detail. The description only restates that the target is the specified database, which matches the baseline expectation when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific operation (列出/list) applied to a clear resource (所有表/all tables in a specified database). This distinguishes it from sibling list_databases, which lists databases, and describe_table, which targets a single table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives are named. The wording implies it should be chosen when enumerating tables within a specific database rather than listing databases or inspecting a single table, but the agent is left to infer this from the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryQueryA
执行SQL查询(只读,仅支持SELECT/SHOW/DESCRIBE/EXPLAIN)
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL查询语句 | |
| database | No | 可选,指定数据库。如未指定则使用默认数据库 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It clearly discloses the read-only safety property and the allowed SQL statement set, which is the most important behavioral context. It does not detail result limits or error handling, but the output schema covers return-value expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that names the action, the read-only constraint, and the supported SQL statements. Every element carries signal and there is no repetition of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only SQL query tool with a complete input schema and an output schema, the description plus schema is sufficient to call the tool correctly. A small gap is that it does not clarify when to prefer specialized siblings like describe_table or explain_query, but this does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: sql and database already have meaningful descriptions. The tool description adds no parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: execute SQL queries, and further restricts the scope to read-only statements (SELECT/SHOW/DESCRIBE/EXPLAIN). This also separates it from sibling execute_write, whose purpose is write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when the tool is appropriate: any read-only SQL query among the listed statement types, and explicitly excludes write statements via '只读' and '仅支持'. However, it does not name the alternative tool (execute_write) for unsupported write operations, though that is inferable from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
describe_table - First observed
execute_write - First observed
explain_query - First observed
get_table_sample - First observed
get_table_stats - First observed
list_databases - First observed
list_tables - First observed
query
TDQS
Scored across 8 tools
Most tools are clearly distinct in purpose, but `query` overlaps with several specialized tools since it can run SELECT/SHOW/DESCRIBE/EXPLAIN directly. The specialized tools have clear output formats and use cases, so an agent can usually pick correctly, but some boundary overlap exists.
The naming pattern is mostly consistent with snake_case verb_noun names like `list_databases`, `describe_table`, and `explain_query`. The generic `query` tool breaks the pattern slightly, but the overall convention is predictable and readable.
Eight tools is a well-scoped set for a MySQL MCP server. Each tool covers a meaningful area of database interaction—discovery, inspection, sampling, statistics, querying, performance analysis, and writes—without unnecessary redundancy or bloat.
The server provides solid coverage for read operations, schema inspection, query execution, performance analysis, and write operations. Missing DDL operations like creating or altering tables and databases are a minor gap, but for typical database exploration and data manipulation workflows the surface is largely complete.
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
PostgreSQL, MySQL, OpenAPI/Swagger, and shared Agent Memory with scoped access.
AI agents propose database changes as reviewable requests — no direct write access.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables secure interaction with MySQL databases, allowing AI assistants to list tables, read data, and execute SQL queries through a controlled interface.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to safely query MySQL databases with read-only access by default, supporting table listing, structure inspection, and SQL queries with optional write operation control.10 npmMIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to securely interact with MySQL databases through tools for query execution, schema inspection, and transaction management. It features built-in safety controls like row limits and query validation to ensure safe and standardized database access.362 npm-
- AlicenseBqualityCmaintenanceEnables AI assistants to securely interact with MariaDB and MySQL databases using granular per-connection read/write permissions and transaction support. It allows users to manage multiple database connections, explore schemas, and execute controlled SQL queries through a standardized interface.69 npm5MIT