A tool for database analysis using natural language and LLMs
This server has significant definition quality issues. While 8 tools are registered with @mcp.tool() decorators, most lack adequate descriptions and parameter documentation. Tool names are somewhat action-oriented but descriptions are vague or incomplete. Input schemas are present in the registration but lack depth, parameters have type and description fields, but descriptions are often terse or ambiguous. Output is unstructured text rather than typed objects. Error handling provides minimal guidance. The server conflates multiple concerns (e.g., db_analyzer and run_query both query databases differently; send_email, send_sms, send_push_notification are notification variants without clear composition). Several tools expose implementation details (database 'type' parameter) rather than abstracting complexity. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible.
Append a new log to the file.
Run a chat prompt with Open AI
The tool analyzer Progress, MySQL and Mongo database base on prompt or request.
Read and return all logs from the log file.
Run a SQL or NoSQL query on the connected database.
Send an email via the notification service.
Send a push notification via the notification service.
Multiple tools query databases (db_analyzer and run_query) with overlapping functionality but no clear distinction. LLM cannot determine when to use each one.
All tools return unstructured text strings rather than typed objects. LLMs cannot reliably extract data or chain results to downstream tools. Output schemas are not documented.
Parameter naming is inconsistent and vague. 'type' parameter appears in multiple tools with unclear semantics (postgres, mongo, msql with typo). 'message1' and 'message2' in send_email are confusing. 'one_signal_ids' exposes implementation detail (OneSignal backend) rather than generic 'recipient_ids'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Send an SMS via the notification service.
Descriptions are too brief or grammatically broken. db_analyzer has a typo and unclear meaning ('analyzer Progress'). Many descriptions lack guidance on when to call each tool or what to expect.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Agents cannot determine which tools are safe to retry or which modify state.
Error handling is minimal. Tools return generic 'Check logs for details' or unstructured text errors. No recovery guidance, retryable classification, or actionable error messages.
Tools expose backend implementation details rather than abstracting them. 'type' parameter exposes database type choice; 'one_signal_ids' exposes OneSignal as the notification backend. LLM must understand internal architecture.
No input validation constraints (enums, patterns, min/max). Parameter 'type' accepts freeform strings (with typos possible). 'message' has no length limit. LLM can pass invalid values.
Notification tools (send_email, send_sms, send_push_notification) are separate rather than composed. LLM must choose the right one; common intent 'notify user' requires three separate tool registrations.