VCF MCP Server demonstrates solid definition quality with well-structured tool naming, comprehensive parameter descriptions, and explicit JSON Schema validation. All three tools follow verb_noun naming convention (query_*) and include detailed descriptions addressing coordinate ambiguity (GRCh37 vs GRCh38). Parameter types are explicitly defined via schemars::JsonSchema derive macros in QueryByPositionParams, QueryByRegionParams, and QueryByIdParams structs. Descriptions are appropriately concise (100-150 chars) and actionable. Output schemas are clearly defined in response structs (QueryByPositionResponse, QueryByRegionResponse, QueryByIdResponse) with status enums and structured result types. Error handling is present (McpError internal_error for serialization failures) but lacks actionable recovery guidance. Tools are READ_ONLY, reducing security risk but missing explicit risk annotations.
Query variants by variant ID (e.g., rsID). Check the reference_genome field in the response to verify which genome build the coordinates use.
Query variants at a specific genomic position. NOTE: Coordinates are genome build-specific (GRCh37 vs GRCh38). Check the reference_genome field in the response to verify which build is being queried.
Query variants in a genomic region. NOTE: Coordinates are genome build-specific (GRCh37 vs GRCh38). Check the reference_genome field in the response to verify which build is being queried.
Error messages lack actionable recovery guidance. Serialization errors return generic 'Failed to serialize' without suggesting next steps or valid input examples.
Tool descriptions mention genome build ambiguity but do not document what happens on chromosome mismatch (e.g., requesting 'chr1' when index has '1'). The alternate_chromosome_suggestion field partially addresses this but is not mentioned in tool description.
No pagination support documented or implemented despite VCF files potentially containing thousands of variants. Large result sets risk context window exhaustion. Region queries could match hundreds or thousands of variants without limit parameter.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Tools lack explicit read-only or destructive annotations. While all tools are READ_ONLY (lower risk), rmcp supports tool annotations (readOnlyHint, idempotentHint) that are not leveraged.
Parameter descriptions lack explicit constraints. 'chromosome' accepts '1', '2', 'X', 'chr1' but format rules are not formally documented. 'position' and 'start'/'end' descriptions state '1-based' but do not specify valid range or maximum values.