Multi-Database MCP Server supporting MySQL, SQL Server, MongoDB, Elasticsearch, Oracle, and Redis for AI Tools
Server provides 14 tools with complete input schemas and descriptions, but quality is inconsistent. Naming follows verb_noun convention well (mysql_database_info, es_cluster_info, es_search). Descriptions are present (avg ~120 chars) but lack actionable context, they state WHAT but rarely explain WHEN to use or dependencies. Parameters have types and descriptions, but many lack constraints (enums, ranges). Output schemas are not documented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Missing pagination guidance for list tools. Overall: functional but below production baseline.
Get Elasticsearch cluster information including version, health status, and node count. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Create a new Elasticsearch index with optional mappings and settings. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Delete a document from Elasticsearch by ID. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Get a specific document by ID from an Elasticsearch index. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Index a document into Elasticsearch. Optionally provide an ID, or let Elasticsearch generate one. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Get information about an Elasticsearch index including mappings, settings, and aliases. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess field names for downstream tool calls. E.g., es_search returns results but structure is undocumented.
Descriptions lack actionable context. They state WHAT (e.g., 'Get Elasticsearch cluster information') but not WHEN to use or dependencies. Missing: 'Call this first to verify cluster health before indexing' or 'Use after es_list_indices to inspect a specific index.'
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. es_delete_document is DESTRUCTIVE but unmarked. mysql_execute is WRITE but unmarked. LLMs cannot reason about retry safety or confirmation needs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
List all indices in the Elasticsearch cluster. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Search documents in an Elasticsearch index. Supports full query DSL. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
Update an existing document in Elasticsearch by ID. Optional 'datasource' parameter to specify which configured Elasticsearch datasource to use.
List all available datasources for each database type (MySQL, SQL Server, MongoDB, Elasticsearch, Oracle, Redis). Use this tool to discover datasource names before calling other database tools.
Run an aggregation pipeline on a MongoDB collection. Optional 'datasource' parameter to specify which configured MongoDB datasource to use.
Get information about the connected MySQL database including product name, version, driver info, and connection details. Useful for understanding the database environment. Optional 'datasource' parameter to specify which configured MySQL datasource to use.
Execute INSERT, UPDATE, DELETE, or other modifying SQL statements on the MySQL database. Use this tool to modify data in tables. Returns the number of affected rows. Optional 'datasource' parameter to specify which configured MySQL datasource to use.
List all tables in the connected MySQL database. Use this tool to discover available tables before querying or getting schema. Optional 'datasource' parameter to specify which configured MySQL datasource to use.
List tools (es_list_indices, mysql_list_tables) lack pagination guidance. No mention of result limits, offset/limit parameters, or total count. Large result sets will blow context windows.
mysql_execute accepts arbitrary SQL (INSERT, UPDATE, DELETE, CREATE, ALTER, DROP) with no input validation, dry-run, or confirmation step. Agents can accidentally drop tables. No error recovery guidance.