Data Platform MCP Server for PostgreSQL and MinIO integration with AI-enhanced tools
DP-MCP exposes 17 tools across PostgreSQL and MinIO integrations with AI-enhanced capabilities. However, definition quality is significantly hampered by incomplete parameter documentation, missing input schemas in visible code, and inconsistent naming conventions. While tool descriptions exist and are generally 100-250 characters, many lack the specificity needed for reliable LLM reasoning. Parameter schemas are inferred from docstrings rather than explicitly visible in the code provided, and several parameters lack type information or descriptions. The AI tools (tools 12-17) are particularly problematic: they appear to be defined in 'final_ai_demo.py' but no actual tool registration code is visible, forcing inference of their schemas. Security concerns around SQL query execution and data access are inadequately addressed in tool descriptions. Error handling guidance is minimal or absent across all tools.
Analyze data patterns and quality in a specific table using AI.
Convert natural language questions into SQL queries and execute them with AI analysis. This tool uses AI to understand natural language questions about your data, automatically generates appropriate SQL queries, executes them, and provides intelligent analysis of the results. Data privacy controls ensure sensitive information never leaves your environment.
Backup a PostgreSQL table to MinIO as CSV.
Create a new MinIO bucket.
Delete object from MinIO.
Get detailed structure information about a database table. This tool provides comprehensive table metadata including column names, data types, null constraints, default values, and other structural information.
AI tools (tools 12-17) are defined in 'final_ai_demo.py' but tool registration code is not visible in the provided source. Their actual schemas, parameter types, and MCP registration are inferred rather than explicitly shown. This violates the rule: 'If you cannot see the actual tool definition in the source, cap overall at 50.'
execute_sql_query accepts arbitrary SQL with WRITE capability but lacks error handling guidance on SQL injection, malicious queries, or destructive operations. Description does not warn about security implications or recovery steps for failed queries.
list_minio_buckets has only 4 characters of description ('List all available MinIO buckets.') which is extremely minimal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Download object from MinIO.
Execute a SQL query on PostgreSQL database with automatic result formatting. This tool allows execution of any SQL query with automatic result formatting. SELECT queries return formatted tables, while DML/DDL queries return status messages. A LIMIT clause is automatically added to SELECT queries if not specified.
Execute a SQL query and get AI explanation of the results.
Export table data in CSV format for analysis or backup purposes. This tool extracts data from a PostgreSQL table and formats it as CSV with headers. Optional WHERE clause allows for filtered exports. Large datasets are automatically limited to prevent memory issues.
Generate a comprehensive AI-powered data report.
Generate AI suggestions for database analysis and insights.
Get the current status and configuration of the AI system.
List objects in a MinIO bucket.
List all tables in a specified PostgreSQL database schema. This tool provides a comprehensive list of all tables and views in the specified schema, including their types (TABLE, VIEW, MATERIALIZED VIEW, etc.).
List all available MinIO buckets.
Upload data to MinIO object store.
delete_minio_object is a DESTRUCTIVE operation but lacks confirmation/dry-run capability. Description does not warn about irreversibility or provide recovery guidance if an agent accidentally calls it.
Parameter 'model_name' appears in 5 AI tools but is described as 'optional' without enum constraints. LLMs cannot infer valid model names and may hallucinate invalid values. No validation or error guidance provided.
Several tools (list_minio_buckets, create_minio_bucket, delete_minio_object, get_ai_system_status) have descriptions under 50 characters, well below the 100+ baseline for A-grade tools. These are too terse to guide LLM reasoning.
Output schemas are not documented for any of the 17 tools. LLMs cannot plan downstream tool calls or extract chaining IDs (bucket_name, table_name, etc.) without knowing response structure.
No error handling guidance across any tool. Tools that fail (SQL syntax error, bucket not found, network timeout) provide no actionable recovery steps to the LLM.
Parameter 'limit' appears in 4 tools but with no documented range constraints. Unbounded numeric parameters let LLMs pass absurd values (limit=-1 or limit=999999) that break queries or cause timeouts.
Tools like execute_sql_query, upload_to_minio, delete_minio_object, and create_minio_bucket make state-altering changes but have no mention of idempotency, dry-run modes, or transaction support. Agents retrying on failures may cause duplicate inserts or unintended deletions.