MCP server for Infino — keyword, semantic, hybrid, and SQL retrieval for AI agents: RAG, persistent agent memory, and search over data stored as plain Parquet on object storage. Local embeddings, no API key.
The server exposes a single tool 'infino_sql' with a basic but incomplete definition. The tool name uses a verb_noun pattern ('infino_sql' - acceptable but could be more descriptive like 'execute_sql'). The description is present (81 chars) and explains the core functionality adequately. However, the input schema is minimal with only one parameter 'sql' (a string), and critically, there is NO documented output schema visible in the source code provided. This is a major gap, agents cannot plan downstream actions without knowing what fields they'll receive. The parameter has a type (string) and description, which is positive, but lacks validation constraints (length limits, format patterns). No error handling guidance is documented. The tool appears to support destructive operations (DDL/DML) but has no confirmation pattern or dry-run capability noted. File reference (src/guards.ts) suggests some validation exists, but it is not visible in the provided code excerpt.
Execute SQL queries against Infino tables with support for search table functions, GROUP BY, joins, and aggregates. Only a single statement per call is allowed.
No output schema documented. Agents cannot determine what fields to expect from query results, preventing downstream tool composition and data extraction.
No error handling guidance. Tool description lacks recovery hints, e.g. what to do on SQL syntax errors, permission denied, timeout, or missing table errors.
Destructive operations (DDL/DML) lack confirmation or dry-run pattern. A write-risk tool modifying data should support an explicit confirm step to prevent accidental data loss.
Parameter 'sql' lacks validation constraints in the schema. No documented length limits, pattern (e.g., single statement only), or explicit ban on multiple semicolon-separated statements despite the description stating 'No multiple statements separated by semicolons.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Tool name 'infino_sql' is branded/product-specific rather than action-descriptive. Best practice is 'execute_sql' or 'query_infino'. The generic 'sql' suffix obscures what action is being taken.
No pagination or result limit documented. SQL queries could return thousands of rows, exhausting context windows. Description should state 'Results are limited to X rows' and explain how to paginate.