An MCP server for the SynergyAge database - a comprehensive resource for aging and longevity research with genetic synergy, epistasis, and aging research data from model organisms
Server has 3 tools, all with descriptions and basic schema definitions. However, significant gaps exist: (1) Tool names lack clear action verbs, 'synergyage_get_schema_info' and 'synergyage_example_queries' are unnecessarily prefixed and lack specificity about what 'schema info' contains; (2) Parameter descriptions are minimal, the 'params' array in synergyage_db_query lacks guidance on format, ordering, or validation rules; (3) Output schemas are inferred from QueryResult model but not explicitly documented in tool definitions; (4) No error handling guidance, what happens on SQL syntax errors, timeout, or invalid parameterized queries? (5) No security validation visible, SQL injection risk via free-form sql parameter is not addressed. Tool descriptions are adequate (160 - 220 chars) but lack actionable prerequisites or recovery hints. Per-tool averaging: synergyage_get_schema_info (56), synergyage_example_queries (54), synergyage_db_query (64), yielding overall 58.
Query the SynergyAge database that contains genetic synergy, epistasis, and aging research data with experimental lifespan effects from model organisms. Before calling this tool the first time, always check tools that provide schema information and example queries.
Get comprehensive example SQL queries with patterns and best practices for the SynergyAge database, including gene searching, interaction analysis, synergistic/antagonistic relationships, and proper result ordering.
Get comprehensive information about the SynergyAge database schema including table structures, column descriptions, enumerations, and critical query guidelines for genetic synergy, epistasis, and aging research data.
Tool names lack clear action verbs and are over-prefixed. 'synergyage_get_schema_info' should be 'get_schema' or 'describe_database'. Redundant 'synergyage_' prefix on every tool adds noise without clarity. Per naming baseline, 90% of A+ tools use concise verb_noun patterns.
synergyage_db_query accepts free-form SQL string without validation, parameterization guidance, or error handling. No visible protection against SQL injection, syntax errors, or timeout. Description mentions 'parameterized queries' but does not explain format, constraints, or what errors to expect.
Parameters lack descriptions and constraints. The 'params' array has a bare description 'Optional parameters for parameterized queries' but does not explain: array element type (string? number?), ordering, format, max length, or how they bind to SQL placeholders (?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Output schema (QueryResult) is defined in Python but not exposed in tool schema definitions. LLMs cannot see what fields to expect (rows, count, query). Per pattern:tool, output schemas must be documented so agents can plan downstream calls.
No error handling guidance. What should the LLM do if: SQL syntax error? Query timeout? Database locked? Resource exhausted? Per pattern:recovery-guide, error responses must tell the agent what to do next, not just return a stack trace.
Tool descriptions do not include dependency hints or prerequisites. The query tool says 'Before calling this tool the first time, always check tools that provide schema information and example queries' but this is a user-facing comment, not part of the LLM-readable description field. LLMs need explicit sequencing guidance in the schema definition.