An MCP server that enables natural-language querying of PostgreSQL and MongoDB databases through an AI agent. Connects to databases, retrieves relevant schema using semantic embeddings, and executes read-only queries to answer user questions.
UniQuery has 6 tools with mostly complete schemas and descriptions. All tools are read-only, which is good for safety. However, descriptions vary in quality (some are 50+ chars, others 200+), and several parameter descriptions lack actionable detail. The server lacks error handling guidance, output schema documentation, and tool annotations. Parameter naming is generally clear (connectionId, question, table, query) but some descriptions could be more prescriptive about formats and constraints. No evidence of pagination support or result limits despite tools that could return large datasets.
Ask a natural-language question about a connected database. Runs a self-correcting agent loop that inspects the schema and issues read-only queries.
Connect to a Postgres or MongoDB database (read-only) and register it under a connectionId for use with askQuestion.
List all currently connected databases in this MCP server session.
Retrieve the most relevant tables/collections and column descriptions for the user's question, from the auto-generated semantic layer. Always call this first before writing a query.
Execute a read-only SQL SELECT query against the database and return the rows (for PostgreSQL) or execute a read-only MongoDB aggregation pipeline as JSON of the form {"collection":"...","pipeline":[...]} and return the rows (for MongoDB).
Fetch a few sample rows/documents from a table or collection to see real value formats before writing a query.
No output schema documentation. Tools return results but LLMs cannot predict field structure (e.g., what does askQuestion return? What fields does runQuery include?). This forces LLMs to guess and risks parsing errors.
Missing error handling guidance. Tools can fail (e.g., invalid query, connection lost, schema not found) but descriptions do not explain what errors are possible or how to recover. LLMs receive raw errors with no recovery path.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only and safe to retry, but this is not declared in the schema. Clients cannot optimize caching or retry logic without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Parameter descriptions lack actionable constraints. 'connectionString' says 'Postgres connection URI, or MongoDB connection URI' but does not specify format, required fields, or validation rules. 'question' and 'query' lack examples of valid input.
No pagination or result limits documented. sampleRows caps at 20 rows (good), but runQuery and retrieveSchema do not specify max results. Large result sets can exhaust context windows.