MCP server for OMOP CDM database interaction, providing tools for creating CDM databases, querying table structures, executing SQL statements, and managing OMOP Common Data Model operations
The server implements 5 tools with basic schemas and descriptions, but has significant gaps in parameter documentation, description quality, and error handling guidance. Schemas are present but incomplete, many parameters lack type definitions or descriptions. Descriptions are generic and do not guide LLM decision-making. No tool annotations (destructiveHint/readOnlyHint). No output schema documentation. Error handling is absent. The server does not follow the 54 agentic tool patterns adequately.
Create an empty CDM database
Create a CDM database with eunomia data pre-installed
Get database engine for interaction (returns engine URL/type summary)
Get detailed information about a single table including columns and foreign keys
Get column names for a specific table
Password parameter exposed in tool signature (get_engine, get_table_columns, get_single_table_info). Secrets must never appear in tool parameters; use server-side injection via environment variables or vault.
Most tool descriptions are under 60 characters and lack actionable context. Descriptions do not answer: What does it do? When should the LLM call it? What does it return? What are side effects?
Most parameters lack descriptions. 'db', 'host', 'port', 'user', 'pw', 'schema' appear across multiple tools without explaining what they control or what values are valid.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No output schemas documented. Callers cannot know what fields are returned, their types, or structure. Breaks downstream tool composition and forces LLMs to assume.
No error handling or recovery guidance. Tools do not explain what to do if a database is not found, connection fails, or table does not exist. Error responses must guide the LLM to next steps.
No tool annotations. Tools that modify state (create_cdm, create_eunomia) should declare destructiveHint=true. Read-only tools should declare readOnlyHint=true. This metadata is critical for agent planning.
Database connection parameters (host, port, user, pw, schema) are duplicated across three tools (get_engine, get_table_columns, get_single_table_info). This violates composition patterns, should be initialized once and reused, not repeated.
Parameter 'version' uses non-standard enum values across tools: create_cdm uses ['cdm54', 'cdm6'], create_eunomia uses ['5.3', '5.4']. Inconsistent naming confuses LLMs selecting between tools.