@berthojoris/mcp-mysql-server 1.25.0 → 1.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,36 @@ All notable changes to the MySQL MCP Server will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.26.2] - 2025-12-19
9
+
10
+ ### Fixed
11
+ - Updated manifest.json version from 1.17.0 to 1.26.2 to match package.json
12
+ - Verified `list_all_tools` tool is properly registered and available in MCP server
13
+ - Updated documentation timestamps to reflect current changes
14
+
15
+ ## [1.26.3] - 2025-12-19
16
+
17
+ ### Documentation
18
+ - Enhanced README documentation categories table with a "List Tools" column (per-category `list_all_tools` call)
19
+
20
+ ## [1.26.4] - 2025-12-19
21
+
22
+ ### Documentation
23
+ - Fixed README "Documentation Categories (Recommended)" to list the actual tools per category in the "List Tools" column
24
+
25
+ ## [1.26.1] - 2025-12-19
26
+
27
+ ### Documentation
28
+ - Fixed total tools count in README.md and DOCUMENTATIONS.md to match the actual registered tool count (145)
29
+
30
+ ## [1.26.0] - 2025-12-19
31
+
32
+ ### Fixed
33
+ - Added missing `list_all_tools` tool registration in MCP server
34
+ - The `list_all_tools` tool was implemented but not exposed through the MCP interface
35
+ - Updated tool schema and handler registration in mcp-server.ts
36
+ - Updated total tool count from 158 to 159 in documentation
37
+
8
38
  ## [1.22.0] - 2025-12-17
9
39
 
10
40
  ### Changed
@@ -27,29 +57,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
57
  ### Changed
28
58
  - Version increment for implemented features and improvements
29
59
 
30
- ## [1.24.0] - 2025-12-19
31
-
32
- ### Added
33
- - New tool `list_all_tools` for listing all available tools in the MySQL MCP server with their descriptions and schemas
34
- - Enhanced meta-tool capabilities for AI agents to discover available functionality
35
-
36
- ### Changed
37
- - Updated tool count from 144 to 145 in README.md
38
- - Updated tool count from 157 to 158 in DOCUMENTATIONS.md
39
- - Added `list_all_tools` to the Utilities section in documentation
40
- - Updated Last Updated timestamp in README.md
41
- - Version increment for new tool implementation
42
-
43
- ## [1.25.0] - 2025-12-19
44
-
45
- ### Fixed
46
- - Added `list_all_tools` tool to permission configuration with LIST category
47
- - Tool is now available for all permission sets that include "list" access
48
- - Updated both tool category mapping and documentation category mapping
49
-
50
- ### Changed
51
- - Incremented version to 1.25.0 for permission configuration fix
52
-
60
+ ## [1.24.0] - 2025-12-19
61
+
62
+ ### Added
63
+ - New tool `list_all_tools` for listing all available tools in the MySQL MCP server with their descriptions and schemas
64
+ - Enhanced meta-tool capabilities for AI agents to discover available functionality
65
+
66
+ ### Changed
67
+ - Updated tool count from 144 to 145 in README.md
68
+ - Updated tool count from 157 to 158 in DOCUMENTATIONS.md
69
+ - Added `list_all_tools` to the Utilities section in documentation
70
+ - Updated Last Updated timestamp in README.md
71
+ - Version increment for new tool implementation
72
+
73
+ ## [1.25.0] - 2025-12-19
74
+
75
+ ### Fixed
76
+ - Added `list_all_tools` tool to permission configuration with LIST category
77
+ - Tool is now available for all permission sets that include "list" access
78
+ - Updated both tool category mapping and documentation category mapping
79
+
80
+ ### Changed
81
+ - Incremented version to 1.25.0 for permission configuration fix
82
+
53
83
  ## [Unreleased]
54
84
 
55
85
  ### Security
package/DOCUMENTATIONS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MySQL MCP Server - Detailed Documentation
2
2
 
3
- **Last Updated:** 2025-12-17 15:30:00
3
+ **Last Updated:** 2025-12-19 18:45:00
4
4
 
5
5
  This file contains detailed documentation for all features of the MySQL MCP Server. For quick start and basic information, see [README.md](README.md).
6
6
 
@@ -9,7 +9,7 @@ This file contains detailed documentation for all features of the MySQL MCP Serv
9
9
  ## Table of Contents
10
10
 
11
11
  1. [Setup & Configuration (Extended)](#setup--configuration-extended) - Permissions + Categories
12
- 2. [🔧 Complete Tools Reference](#🔧-complete-tools-reference) - All 158 tools organized by category
12
+ 2. [🔧 Complete Tools Reference](#🔧-complete-tools-reference) - All 145 tools organized by category
13
13
  3. [DDL Operations](#🏗️-ddl-operations)
14
14
  4. [Data Export Tools](#📤-data-export-tools)
15
15
  5. [Data Import Tools](#📥-data-import-tools)
@@ -201,7 +201,7 @@ Add 'bulk_operations' to the categories argument.
201
201
 
202
202
  ## 🔧 Complete Tools Reference
203
203
 
204
- This section provides a comprehensive reference of all 158 available tools organized by category.
204
+ This section provides a comprehensive reference of all 145 available tools organized by category.
205
205
 
206
206
  ### Database Discovery
207
207
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  **A production-ready Model Context Protocol (MCP) server for MySQL database integration with AI agents**
6
6
 
7
- **Last Updated:** 2025-12-19 10:03:00
7
+ **Last Updated:** 2025-12-19 19:09:00
8
8
 
9
9
  [![npm version](https://img.shields.io/npm/v/@berthojoris/mcp-mysql-server)](https://www.npmjs.com/package/@berthojoris/mysql-mcp)
10
10
  [![npm downloads](https://img.shields.io/npm/dm/@berthojoris/mysql-mcp)](https://www.npmjs.com/package/@berthojoris/mysql-mcp)
@@ -215,71 +215,7 @@ Control database access with a **dual-layer filtering system** that provides bot
215
215
 
216
216
  **Filtering Logic**: `Tool enabled = (Has Permission) AND (Has Category OR No categories specified)`
217
217
 
218
- ### Documentation Categories (Recommended)
219
-
220
- Use documentation categories to fine-tune which tools are exposed (Layer 2):
221
-
222
- <table>
223
- <thead>
224
- <tr>
225
- <th align="left">Category A</th>
226
- <th align="left">Category B</th>
227
- <th align="left">Category C</th>
228
- <th align="left">Category D</th>
229
- </tr>
230
- </thead>
231
- <tbody>
232
- <tr>
233
- <td><code>database_discovery</code></td>
234
- <td><code>crud_operations</code></td>
235
- <td><code>bulk_operations</code></td>
236
- <td><code>custom_queries</code></td>
237
- </tr>
238
- <tr>
239
- <td><code>schema_management</code></td>
240
- <td><code>utilities</code></td>
241
- <td><code>transaction_management</code></td>
242
- <td><code>stored_procedures</code></td>
243
- </tr>
244
- <tr>
245
- <td><code>views_management</code></td>
246
- <td><code>triggers_management</code></td>
247
- <td><code>functions_management</code></td>
248
- <td><code>index_management</code></td>
249
- </tr>
250
- <tr>
251
- <td><code>constraint_management</code></td>
252
- <td><code>table_maintenance</code></td>
253
- <td><code>server_management</code></td>
254
- <td><code>performance_monitoring</code></td>
255
- </tr>
256
- <tr>
257
- <td><code>cache_management</code></td>
258
- <td><code>query_optimization</code></td>
259
- <td><code>backup_restore</code></td>
260
- <td><code>import_export</code></td>
261
- </tr>
262
- <tr>
263
- <td><code>data_migration</code></td>
264
- <td><code>schema_migrations</code></td>
265
- <td><code>analysis</code></td>
266
- <td><code>ai_enhancement</code></td>
267
- </tr>
268
- </tbody>
269
- </table>
270
-
271
- <details>
272
- <summary>Copy/paste list (comma-separated, no spaces)</summary>
273
-
274
- ```text
275
- database_discovery,crud_operations,bulk_operations,custom_queries,schema_management,utilities,transaction_management,stored_procedures,views_management,triggers_management,functions_management,index_management,constraint_management,table_maintenance,server_management,performance_monitoring,cache_management,query_optimization,backup_restore,import_export,data_migration,schema_migrations,analysis,ai_enhancement
276
- ```
277
-
278
- </details>
279
-
280
- Full category → tool mapping (and examples) lives in **[DOCUMENTATIONS.md → Category Filtering System](DOCUMENTATIONS.md#🆕-category-filtering-system)**.
281
-
282
- ### Legacy Categories (Backward Compatible)
218
+ ### Permissions
283
219
 
284
220
  | Permission | Operations | Use Case |
285
221
  |------------|------------|----------|
@@ -298,6 +234,50 @@ Common configuration examples are documented in **[DOCUMENTATIONS.md → Categor
298
234
 
299
235
  ---
300
236
 
237
+ ### Documentation Categories (Recommended)
238
+
239
+ Use documentation categories to fine-tune which tools are exposed (Layer 2):
240
+
241
+ | Category List | Use Case | List Tools |
242
+ |---------------|----------|-----------|
243
+ | `database_discovery` | Explore databases, tables, and schema structure | `get_all_tables_relationships, get_table_relationships, list_databases, list_tables, read_table_schema` |
244
+ | `crud_operations` | Create, read, update, delete operations on data | `create_record, delete_record, read_records, update_record` |
245
+ | `bulk_operations` | High-performance batch processing operations | `bulk_delete, bulk_insert, bulk_update` |
246
+ | `custom_queries` | Execute custom SQL queries and advanced operations | `execute_sql, run_query` |
247
+ | `schema_management` | Manage database schema, tables, and structure | `alter_table, create_table, drop_table, execute_ddl` |
248
+ | `utilities` | Database utilities, diagnostics, and helper functions | `describe_connection, export_query_to_csv, export_table_to_csv, list_all_tools, read_changelog, test_connection` |
249
+ | `transaction_management` | Handle ACID transactions and rollback operations | `begin_transaction, commit_transaction, execute_in_transaction, get_transaction_status, rollback_transaction` |
250
+ | `stored_procedures` | Create, execute, and manage stored procedures | `create_stored_procedure, drop_stored_procedure, execute_stored_procedure, get_stored_procedure_info, list_stored_procedures, show_create_procedure` |
251
+ | `views_management` | Create and manage database views | `alter_view, create_view, drop_view, get_view_info, list_views, show_create_view` |
252
+ | `triggers_management` | Create and manage database triggers | `create_trigger, drop_trigger, get_trigger_info, list_triggers, show_create_trigger` |
253
+ | `functions_management` | Create and manage database functions | `create_function, drop_function, execute_function, get_function_info, list_functions, show_create_function` |
254
+ | `index_management` | Optimize performance with index management | `analyze_index, create_index, drop_index, get_index_info, list_indexes` |
255
+ | `constraint_management` | Manage data integrity constraints | `add_check_constraint, add_foreign_key, add_unique_constraint, drop_constraint, drop_foreign_key, list_constraints, list_foreign_keys` |
256
+ | `table_maintenance` | Table optimization, repair, and maintenance | `analyze_table, check_table, flush_table, get_table_size, get_table_status, optimize_table, repair_table, truncate_table` |
257
+ | `server_management` | MySQL server configuration and administration | `explain_query, get_server_info, kill_process, show_binary_logs, show_engine_status, show_process_list, show_replication_status, show_status, show_variables` |
258
+ | `performance_monitoring` | Monitor and analyze database performance | `get_connection_pool_stats, get_database_health_check, get_index_usage_stats, get_performance_metrics, get_slow_queries, get_table_io_stats, get_top_queries_by_count, get_top_queries_by_time, get_unused_indexes, reset_performance_stats` |
259
+ | `cache_management` | Manage query cache and optimization | `clear_cache, configure_cache_settings, get_cache_config, get_cache_stats, invalidate_cache_for_table` |
260
+ | `query_optimization` | Analyze and optimize SQL queries | `analyze_query, get_optimization_hints` |
261
+ | `backup_restore` | Create backups and restore databases | `backup_database, backup_table, get_create_table_statement, get_database_schema, restore_from_sql` |
262
+ | `import_export` | Import and export data in various formats | `export_query_to_json, export_table_to_json, export_table_to_sql, import_from_csv, import_from_json, safe_export_table` |
263
+ | `data_migration` | Migrate data between databases or systems | `clone_table, compare_table_structure, copy_table_data, move_table_data, sync_table_data` |
264
+ | `schema_migrations` | Version control for database schema changes | `apply_migrations, create_migration, generate_migration_from_diff, get_migration_status, get_schema_version, init_migrations_table, reset_failed_migration, rollback_migration, validate_migrations` |
265
+ | `analysis` | Data analysis and reporting tools | `get_column_statistics, get_database_summary, get_schema_erd, get_schema_rag_context` |
266
+ | `ai_enhancement` | AI-powered features and smart automation | `analyze_schema_patterns, audit_database_security, build_query_from_intent, design_schema_from_requirements, discover_data_patterns, find_similar_columns, forecast_database_growth, generate_business_glossary, generate_data_dictionary, generate_documentation, generate_test_data, predict_query_performance, recommend_indexes, smart_search, suggest_query_improvements, visualize_query` |
267
+
268
+ <details>
269
+ <summary>Copy/paste list (comma-separated, no spaces)</summary>
270
+
271
+ ```text
272
+ database_discovery,crud_operations,bulk_operations,custom_queries,schema_management,utilities,transaction_management,stored_procedures,views_management,triggers_management,functions_management,index_management,constraint_management,table_maintenance,server_management,performance_monitoring,cache_management,query_optimization,backup_restore,import_export,data_migration,schema_migrations,analysis,ai_enhancement
273
+ ```
274
+
275
+ </details>
276
+
277
+ Full category → tool mapping (and examples) lives in **[DOCUMENTATIONS.md → Category Filtering System](DOCUMENTATIONS.md#🆕-category-filtering-system)**.
278
+
279
+ ---
280
+
301
281
  ## Available Tools
302
282
 
303
283
  The server exposes **145 tools** organized into categories (CRUD, schema, backups, migrations, perf/monitoring, and AI enhancement).
@@ -409,6 +409,7 @@ const legacyToDocCategoryMap = {
409
409
  DocCategory.SERVER_MANAGEMENT,
410
410
  DocCategory.SCHEMA_MIGRATIONS,
411
411
  DocCategory.ANALYSIS,
412
+ DocCategory.UTILITIES,
412
413
  ],
413
414
  read: [DocCategory.CRUD_OPERATIONS, DocCategory.CUSTOM_QUERIES, DocCategory.ANALYSIS],
414
415
  create: [
package/dist/index.js CHANGED
@@ -271,7 +271,7 @@ class MySQLMCP {
271
271
  return await this.utilityTools.readChangelog(params);
272
272
  }
273
273
  async listAllTools() {
274
- const check = this.checkToolEnabled("listAllTools");
274
+ const check = this.checkToolEnabled("list_all_tools");
275
275
  if (!check.enabled) {
276
276
  return { status: "error", error: check.error };
277
277
  }
@@ -683,6 +683,14 @@ const TOOLS = [
683
683
  properties: {},
684
684
  },
685
685
  },
686
+ {
687
+ name: "list_all_tools",
688
+ description: "Lists all available MCP tools with their definitions and server metadata.",
689
+ inputSchema: {
690
+ type: "object",
691
+ properties: {},
692
+ },
693
+ },
686
694
  {
687
695
  name: "get_table_relationships",
688
696
  description: "Returns foreign key relationships for a specified table.",
@@ -3340,7 +3348,10 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
3340
3348
  // e.g., "list_databases" -> "listDatabases"
3341
3349
  const toolNameCamelCase = tool.name.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
3342
3350
  // Check if tool is enabled based on permissions and categories
3343
- return mysqlMCP.isToolEnabled(toolNameCamelCase);
3351
+ // Most tools are keyed in featureConfig using camelCase, but a few legacy/meta tools
3352
+ // are keyed using their snake_case MCP names (e.g., read_changelog, list_all_tools).
3353
+ return (mysqlMCP.isToolEnabled(toolNameCamelCase) ||
3354
+ mysqlMCP.isToolEnabled(tool.name));
3344
3355
  });
3345
3356
  // Log the filtering results
3346
3357
  console.error(`Tools available: ${enabledTools.length} of ${TOOLS.length} total tools`);
@@ -3424,6 +3435,9 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
3424
3435
  case "test_connection":
3425
3436
  result = await mysqlMCP.testConnection();
3426
3437
  break;
3438
+ case "list_all_tools":
3439
+ result = await mysqlMCP.listAllTools();
3440
+ break;
3427
3441
  case "read_changelog":
3428
3442
  result = await mysqlMCP.readChangelog((args || {}));
3429
3443
  break;
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mysql-mcp",
3
3
  "description": "A Model Context Protocol for MySQL database interaction",
4
- "version": "1.17.0",
4
+ "version": "1.26.1",
5
5
  "tools": [
6
6
  {
7
7
  "name": "list_databases",
@@ -348,6 +348,59 @@
348
348
  }
349
349
  }
350
350
  },
351
+ {
352
+ "name": "list_all_tools",
353
+ "description": "Lists all available MCP tools with their definitions and server metadata.",
354
+ "input_schema": {},
355
+ "output_schema": {
356
+ "type": "object",
357
+ "properties": {
358
+ "status": {
359
+ "type": "string"
360
+ },
361
+ "data": {
362
+ "type": "object",
363
+ "properties": {
364
+ "total_tools": {
365
+ "type": "number"
366
+ },
367
+ "server_name": {
368
+ "type": "string"
369
+ },
370
+ "server_version": {
371
+ "type": "string"
372
+ },
373
+ "server_description": {
374
+ "type": "string"
375
+ },
376
+ "tools": {
377
+ "type": "array",
378
+ "items": {
379
+ "type": "object",
380
+ "properties": {
381
+ "name": {
382
+ "type": "string"
383
+ },
384
+ "description": {
385
+ "type": "string"
386
+ },
387
+ "input_schema": {
388
+ "type": "object"
389
+ },
390
+ "output_schema": {
391
+ "type": "object"
392
+ }
393
+ }
394
+ }
395
+ }
396
+ }
397
+ },
398
+ "error": {
399
+ "type": "string"
400
+ }
401
+ }
402
+ }
403
+ },
351
404
  {
352
405
  "name": "get_table_relationships",
353
406
  "description": "Returns foreign key relationships for a specified table.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@berthojoris/mcp-mysql-server",
3
- "version": "1.25.0",
3
+ "version": "1.26.4",
4
4
  "description": "Model Context Protocol server for MySQL database integration with dynamic per-project permissions, backup/restore, data import/export, and data migration capabilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",