Agent-to-Database — CLI and MCP server for AI agents to query databases.
a2db has well-structured tool definitions with clear naming (verb-first: login, logout, list_connections, execute, search_objects) and comprehensive parameter schemas. All 5 tools have descriptions and typed input schemas. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions are present but generic in places (e.g., 'Connection spec' lacks detail on required fields). Error handling guidance is absent, tools do not indicate what to do on failure. Security is reasonable (no secrets in params) but audit logging is not mentioned.
Execute read-only SQL queries. Accepts named dict, list, or JSON string. Returns results in TSV (default) or JSON format.
List saved connections. Returns project/env/db and database type (no secrets).
Save a database connection. Validates by attempting a real connection.
Remove a saved connection.
Search database objects. object_type: table, column. detail_level: names (minimal), summary (with metadata), full (complete structure).
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining or result extraction.
Error handling lacks recovery guidance. Tools do not indicate whether failures are retryable, user-fixable, or fatal. No actionable error messages shown.
Parameter 'connection' in execute and search_objects described as 'Connection spec with project, env, db keys' but does not clarify if it is optional, what happens if omitted, or whether it overrides a default.
execute tool accepts 'queries' as object|array|string but does not document the expected structure for each type (e.g., object keys as query names, array auto-naming as q1/q2, JSON string format).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
search_objects 'detail_level' parameter accepts 'names|summary|full' but does not explain what metadata each level returns or when to use each.