Server has 12 well-named tools with consistent verb_noun patterns (connect_, disconnect_, list_, describe_, execute_, configure_, get_). All tools have descriptions (avg ~120 chars, within baseline 34-392). Input schemas are present and typed for all tools. However, parameter descriptions are minimal (often single phrases), output schemas are undocumented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Missing pagination for list tools and no documented result limits.
Save connection details permanently to a config file. Use the saved name with connect_database to reconnect without providing credentials again.
Connect to a MySQL or PostgreSQL database. Provide either a connection_string URL, OR a saved_config_name to reconnect using credentials saved via configure_server. Must be called before any other database tool.
Return column definitions (name, type, nullability, default, key) for a given table. Use this before writing queries.
Close a database connection.
Execute a SQL query. SELECT/SHOW/EXPLAIN return rows as JSON. INSERT/UPDATE/DELETE return rows-affected count.
Return info about a database connection (type, host, status).
Output schemas undocumented. No tool returns a documented schema, LLMs cannot predict response structure or plan downstream calls. E.g., execute_query returns 'rows as JSON' but structure is unspecified.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications. execute_query is DESTRUCTIVE but unmarked; list_* are READ_ONLY but unmarked. Agents cannot infer safety.
Parameter descriptions are minimal (single phrases). E.g., 'connection_name' → 'Name of the connection to use.' Missing context on format, constraints, or when to omit. Baseline is 72 chars; these average ~40.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Return the complete schema (every table + all columns). Call this before generating any SQL query.
Return the connection URL for a saved server configuration by name. Useful to inspect or reuse stored credentials.
List all currently registered connection names.
List all databases / schemas visible to the current user.
List all saved server connection configurations.
List all tables in the connected database.
No pagination or result limits documented. list_databases, list_tables, get_full_schema could return thousands of items, blowing context window. No limit parameter, no cursor, no total count.
Error handling lacks recovery guidance. Code shows tool_err() returns raw strings (e.g., 'No connection found with name...') but no actionable next steps or error classification (retryable vs user-fixable).