Folklore Clinical Variant Interpretation MCP
Server Details
Bioinformatics MCP for genomic variant interpretation, gene-disease evidence and literature.
- Status
- Healthy
- Uptime
- 99.9% over 36 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- helena-bioinformatics/folklore-mcp
- GitHub Stars
- 1
- Server Listing
- Folklore Clinical Variant Interpretation MCP
TDQS
Scored across 7 tools
Most tools target distinct resource+action pairs, and the descriptions explicitly clarify inverse operations (gene-to-disease vs disease-to-gene) and query-vs-retrieve roles. There is mild potential for overlap between search_variant_evidence, search_variant_literature, and search_literature_corpus, but the descriptions delineate classification versus literature retrieval clearly enough.
All tools use snake_case verb_noun naming, with get_ for ID-based retrieval (get_gene_disease_associations, get_publication_details) and search_ for queries, applied predictably across the set. support_helena is the only off-domain outlier but still follows the verb_noun pattern.
Seven tools is a well-scoped set for a variant interpretation server, with each tool covering a distinct part of the workflow (gene, disease, variant, literature, publication). support_helena is tangential to the domain but has a distinct opt-in purpose that does not bloat the surface.
The surface covers core variant interpretation workflows: gene-disease, disease-gene, variant evidence/classification, variant literature, and publication retrieval. Minor gaps exist, such as no dedicated gene-detail lookup or HPO term resolution, but agents can work around these through the existing search tools.
Available Tools
7 toolsget_gene_disease_associationsFind diseases associated with a geneARead-onlyIdempotentInspect
Find diseases associated with one human gene for bioinformatics and clinical genomics research. Accepts an exact gene symbol or HGNC identifier. Returns ClinGen gene-disease validity assertions, relation-specific inheritance, source reports and snapshot provenance. Preserves conflicting and limited assertions. Gene-disease validity is not variant pathogenicity or a patient diagnosis. Use only a public gene identifier; no patient or case data. Results require professional review.
| Name | Required | Description | Default |
|---|---|---|---|
| gene | Yes | One public human gene symbol or HGNC identifier, for example BRCA1 or HGNC:1100. No patient data. | |
| limit | No | Maximum number of source assertions per page, from 1 to 50. | |
| offset | No | Zero-based assertion offset; use the returned nextOffset when present. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| source | Yes | |
| status | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| associations | Yes | |
| usage_boundary | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds substantive behavior beyond that: it preserves conflicting and limited assertions, returns inheritance and snapshot provenance, and clarifies scope limits (not variant pathogenicity, not a diagnosis, requires professional review).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by return contents and scope limitations in compact sentences. It is slightly long at five sentences, but each carries a distinct point (scope, inputs, outputs, disclaimers), so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not strictly required, yet the description still usefully characterizes the payload and its caveats. Combined with the scope-boundary disclaimers, an agent has enough to invoke it correctly, with only alternative-tool routing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents gene, limit, and offset. The description restates the accepted identifier format ('exact gene symbol or HGNC identifier') without adding syntax, constraints, or pagination semantics beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (diseases associated with a human gene), clearly scoping the direction of the query as gene→disease. It does not explicitly name the reverse sibling (search_disease_genes), so an agent must infer the direction, but the scope 'one human gene' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides research context (bioinformatics and clinical genomics) and constraints ('use only a public gene identifier; no patient or case data'), which implies when the tool applies. However, it never names search_disease_genes or any alternative, nor states when to prefer this over the reverse lookup, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_publication_detailsGet details for a PubMed publicationARead-onlyIdempotentInspect
Retrieve the complete public bibliographic record for one PMID from Folklore's PubMed-derived genetics corpus. Returns the full abstract, authors, journal metadata, publication and MeSH terms, gene and variant mentions, retraction status, and PubMed/PMC links. Use after literature search when a user asks to inspect a specific publication. This is read-only professional literature evidence and contains no patient context.
| Name | Required | Description | Default |
|---|---|---|---|
| pmid | Yes | One PubMed identifier to look up in Folklore's current corpus, as 1 to 12 digits without a PMID prefix. |
Output Schema
| Name | Required | Description |
|---|---|---|
| publication | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds non-redundant context by noting the data is 'professional literature evidence and contains no patient context,' which is useful for privacy and sensitivity assessment. It also highlights that retraction status is included, a behavioral detail beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences, each earning its place: the first states the action and scope, the second lists return contents, the third gives usage context and safety framing. It is front-loaded with the verb and resource and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, idempotent tool with an output schema and rich annotations, the description covers purpose, scope, return contents, usage trigger, and data sensitivity. There is no missing information an agent would need to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the sole pmid parameter is fully documented with pattern, format, and prefix guidance. The description doesn't add any additional parameter-level semantics, so it does not exceed the 3-point baseline expected when structured schema already covers parameters completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Retrieve') and names a precise resource: 'complete public bibliographic record for one PMID from Folklore's PubMed-derived genetics corpus.' It then enumerates the returned fields (abstract, authors, journal, MeSH terms, gene/variant mentions, retraction status, links), which clearly separates it from the sibling search tools that return sets of results rather than a single record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger: 'Use after literature search when a user asks to inspect a specific publication.' This clearly tells an agent when to invoke it, but it does not explicitly name alternatives or state when not to use it beyond the implied contrast with searching. It is clear context without formal exclusions, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_disease_genesFind genes associated with a diseaseARead-onlyIdempotentInspect
Find human genes associated with a disease for genomic analysis and rare-disease research. Accepts an exact MONDO identifier or a disease-name search. Returns matching ClinGen gene-disease validity assertions with inheritance, source reports and snapshot provenance. Name searches may match multiple diseases; preserve their distinct identities and do not infer a diagnosis. Use only a public disease name or identifier; no symptoms, patient or case data. Results require professional review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of source assertions per page, from 1 to 50. | |
| offset | No | Zero-based assertion offset; use the returned nextOffset when present. | |
| disease | Yes | One public disease name or exact MONDO identifier (MONDO: followed by seven digits). A name search may match multiple distinct diseases. No symptoms or patient narrative. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| source | Yes | |
| status | Yes | |
| warnings | Yes | |
| pagination | Yes | |
| associations | Yes | |
| usage_boundary | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses meaningful behavior: name searches can return multiple distinct diseases, the agent must not collapse their identities or infer a diagnosis, and results require professional review. This is exactly the kind of ambiguity and safety context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and input mode lead, followed by return content and the important caveats, so the key routing information is front-loaded. Five sentences is on the long side, but nearly all of them carry operational or safety content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, parameter documentation complete, and full annotation coverage, the description does its remaining job well by covering input constraints, multi-match behavior and review requirements. The one missing piece is distinguishing this tool from the similarly named get_gene_disease_associations sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents disease, limit and offset, including the MONDO: seven-digit format and the nextOffset pagination hint. The description adds only a light clarification that results are per-assertion and that name search may fan out, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (human genes associated with a disease), plus the underlying data source (ClinGen gene-disease validity assertions). It does not, however, differentiate itself from the near-identical sibling get_gene_disease_associations, leaving some ambiguity about which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear input-side boundaries: 'Use only a public disease name or identifier; no symptoms, patient or case data,' and frames the context (genomic analysis, rare-disease research). It stops short of naming the alternative sibling tool or the conditions that would route an agent there instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_literature_corpusSearch the Folklore Literature CorpusARead-onlyIdempotentInspect
Semantically search the public scientific Literature Corpus by a natural-language question. A question may include one or more PMID, DOI or PMCID references; those publications become exact anchors for finding related experiments, evidence and concepts across the corpus. Also accepts genes, variants, phenotypes, HPO and OMIM concepts. Include every known publication identifier in the query when the user asks to compare papers or find work related to a specific paper. Returns source-linked evidence candidates for professional review, not diagnoses, causality claims or treatment recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Result ordering: relevance-ranked, newest publication first, or oldest publication first. | relevance |
| limit | No | Maximum number of publications to return, from 1 to 25. | |
| query | Yes | Natural-language literature question or exact PMID, DOI, PMCID, gene, variant, phenotype, HPO, or OMIM query. Include every known publication identifier when comparing or finding related papers. | |
| cursor | No | Opaque continuation cursor from the preceding response for the same query and sort order; omit for the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes | |
| has_more | No | |
| graph_used | No | |
| next_cursor | No | |
| graph_version | No | |
| returned_count | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes | |
| searchable_fields | Yes | |
| semantic_index_used | No | |
| graph_degraded_reason | No | |
| semantic_degraded_reason | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false; the description adds meaningful context by stating it returns 'source-linked evidence candidates for professional review, not diagnoses, causality claims or treatment recommendations.' This safety caveat goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the core purpose, provide a concrete usage rule, and close with an important caveat. There is no filler or repetition of schema contents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with a rich output schema and fully documented parameters, the description covers the essential invocation behavior, accepted input classes, and professional-review caveat. It is slightly incomplete only in not routing the agent between overlapping sibling search tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents query, sort, limit, and cursor well. The description reinforces the query semantics (e.g., PMID/DOI/PMCID as anchors) but adds little parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: semantically search the public scientific Literature Corpus by natural-language question, and lists accepted identifier/concept types. It is clear on its own, but the title's 'Folklore Literature Corpus' conflicts slightly with the description's 'scientific Literature Corpus,' and it does not explicitly distinguish itself from sibling search_variant_literature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage guidance: include every known publication identifier when the user wants to compare papers or find work related to a specific paper. It establishes clear context but does not state when not to use this tool versus sibling search tools such as search_variant_literature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_variant_evidenceClassify or interpret a germline variant under ACMG/AMPARead-onlyIdempotentInspect
Interpret this variant, explain what this HGVS means, or review this VUS. Use for human genomic variant analysis within bioinformatics workflows, including review of an already identified WGS/WES variant. Use when a user asks to classify or interpret pathogenicity, review a VUS, check available ClinVar assertions or population-frequency evidence, or resolve a variant notation. Classify, interpret or resolve one public GRCh38 germline SNV or simple indel smaller than 50 bp. Accepts coordinates, genomic/coding/protein HGVS, SPDI or rsID. Returns normalized variant identity, automated ACMG/AMP decision support, evidence, provenance and explicit limitations. This is variant-level decision support for professional review. It does not evaluate patient context and must not be presented as a diagnosis or treatment recommendation. Never choose a candidate when resolution is ambiguous.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | One germline nuclear SNV or simple indel to resolve and interpret; accepted forms include coordinates, genomic/coding/protein HGVS, SPDI, rsID, or a returned Folklore canonical_key in GRCh38:chrN:position:REF:ALT form. | |
| assembly | No | Reference genome assembly. Folklore currently accepts GRCh38 only. | GRCh38 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| record_url | Yes | |
| adapter_error | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld=false, but the description adds real context: it returns normalized identity, ACMG/AMP decision support, evidence, provenance and limitations, is not a diagnosis, and never selects a candidate when resolution is ambiguous. This ambiguity and limitation disclosure goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and structured logically, but there is visible redundancy between the opening ('Interpret this variant... review this VUS') and the later 'Use when...' sentence restating classify/interpret/review a VUS.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description fully frames scope, accepted inputs, what is returned, and explicit limitations (no patient context, not a diagnosis). An agent has everything needed to invoke and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents accepted input forms (coordinates, HGVS, SPDI, rsID, canonical_key). The description largely restates these forms plus the <50bp and single-variant constraints, adding marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (classify, interpret, resolve) and a precise resource and scope: 'one public GRCh38 germline SNV or simple indel smaller than 50 bp.' This clearly separates it from literature-focused siblings like search_variant_literature and search_literature_corpus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Enumerates concrete when-to-use triggers: classify/interpret pathogenicity, review a VUS, check ClinVar or population-frequency evidence, resolve notation. It does not explicitly name sibling alternatives or state when NOT to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_variant_literatureFind literature for a germline variantARead-onlyIdempotentInspect
Resolve one public GRCh38 germline variant and retrieve relevant publications from Folklore's PubMed-derived genetics corpus. Exact variant mentions rank ahead of broader gene associations. Use when a user asks what has been published about a variant, gene or associated condition. Associations do not establish causality, pathogenicity or a diagnosis and do not change Folklore's ACMG/AMP classification.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of publications to return, from 1 to 25. | |
| query | Yes | One germline nuclear SNV or simple indel to resolve before retrieving its literature; this is a variant identifier, not a natural-language question. Accepts a returned Folklore canonical_key in GRCh38:chrN:position:REF:ALT form. | |
| assembly | No | Reference genome assembly. Folklore currently accepts GRCh38 only. | GRCh38 |
| question | No | Optional natural-language focus applied after the variant is resolved, such as a condition or evidence question; do not put the variant identifier here. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| literature | Yes | |
| usage_boundary | Yes | |
| variant_result | Yes | |
| contract_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context beyond the structure: exact variant mentions rank ahead of broader gene associations, and the results should not be interpreted as establishing causality, pathogenicity, or diagnosis. This compounds the tool's behavior beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the first sentence explains the core function, the second provides usage guidance, and the third adds an important caveat. Every sentence contributes meaningful information and the critical constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, the description does not need to explain return values. It provides the key operational details needed to call the tool correctly: the genome assembly requirement, the ranking behavior, and the clinical classification caveat. It could be slightly more explicit about how gene-level queries are handled, but it is otherwise quite complete for a surgical tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the query, limit, assembly, and question parameters thoroughly. The description reinforces that query is a variant identifier rather than a natural-language question, but this is also present in the schema's parameter description. The description does not add significant new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: resolve a GRCh38 variant and retrieve publications from Folklore's PubMed-derived corpus. It differentiates itself from sibling tools by focusing on exact variant mentions ranking ahead of gene associations, which clarifies what makes this tool distinct from a general literature search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use the tool when a user asks what has been published about a variant, gene, or associated condition. It does not mention exclusions or directly name these siblings, but the context is clear enough for an agent to know this tool is appropriate for variant-centric literature questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_helenaSupport Helena's free scientific infrastructureARead-onlyIdempotentInspect
Learn how an agent can support or spread Helena's free public scientific infrastructure through the separate Helena Good MCP. This is an explicit opt-in information action. It does not initiate payment, create a relay, or change any Folklore scientific result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description adds specific behavioral context beyond these annotations: it explicitly clarifies this is an information action and names precise exclusions (no payment, no relay creation, no result modification). This enriches the agent's understanding of side effects and side-effect-free guarantees, without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the purpose and mechanism; the second sentence immediately addresses exclusions and behavioral boundaries. Each sentence earns its place, and the structure is efficient for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only, informational tool with output schema present, the description covers all necessary aspects: what it does, how it works (via separate MCP), and what it does not do. Annotations handle safety/behavior, and the absence of parameters removes any parameter-related gaps. Nothing material is missing for an agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline for parameter semantics is 4. The description adds no parameter-specific information because none is needed; the schema is empty and coverage is 100%. The description's focus on purpose and behavioral constraints is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Learn how an agent can support or spread' and the resource 'Helena's free public scientific infrastructure'. It explicitly identifies the mechanism ('through the separate Helena Good MCP') and distinguishes itself from the sibling search tools by focusing on support rather than search. The sentence 'This is an explicit opt-in information action' further clarifies the tool's nature, removing ambiguity about whether it performs actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear exclusions: 'It does not initiate payment, create a relay, or change any Folklore scientific result,' which tells the agent when NOT to use this tool. It also states it is an 'opt-in information action,' implying it should be used when seeking informational support on spreading Helena's infrastructure. However, it does not explicitly contrast with sibling tools or state when to choose it over alternatives, though the context of sibling search tools makes this reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
get_gene_disease_associations - Added
search_disease_genes
1 tool update
- Changed
get_publication_details2 fields changed- added
Output schema / $defs / PublicAbstractReuseAdded value: +{ + "additionalProperties": false, + "properties": { + "allowed": { + "default": false, + "title": "Allowed", + "type": "boolean" + }, + "evidence_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Evidence Url" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "License" + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Source" + } + }, + "title": "PublicAbstractReuse", + "type": "object" +} - added
Output schema / $defs / PublicPublicationDetails / properties / abstract_reuseAdded value: +{ + "$ref": "#/$defs/PublicAbstractReuse" +}
1 tool update
- Changed
search_literature_corpus6 fields changed- added
Output schema / $defs / PublicCorpusSearchResult / properties / graph_anchor_pmidAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Graph Anchor Pmid" +} - added
Output schema / $defs / PublicCorpusSearchResult / properties / graph_scoreAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Graph Score" +} - changed
Output schema / $defs / PublicCorpusSearchResult / properties / match_types / items / enumPrevious value: -[ - "pmid", - "doi", - "pmcid", - "title", - "abstract", - "gene", - "variant", - "phenotype", - "hpo", - "omim", - "semantic" -]New value: +[ + "pmid", + "doi", + "pmcid", + "title", + "abstract", + "gene", + "variant", + "phenotype", + "hpo", + "omim", + "semantic", + "graph" +] - added
Output schema / properties / graph_degraded_reasonAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Graph Degraded Reason" +} - added
Output schema / properties / graph_usedAdded value: +{ + "default": false, + "title": "Graph Used", + "type": "boolean" +} - added
Output schema / properties / graph_versionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Graph Version" +}
1 tool update
- Changed
search_literature_corpus1 field changed- added
Output schema / $defs / PublicCorpusSearchResult / properties / authorsAdded value: +{ + "items": { + "type": "string" + }, + "title": "Authors", + "type": "array" +}
1 tool update
- Added
support_helena
4 tool updates
- Changed
get_publication_details1 field changed- added
Input schema / properties / pmid / descriptionAdded value: +"One PubMed identifier to look up in Folklore's current corpus, as 1 to 12 digits without a PMID prefix."
- Changed
search_literature_corpus4 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Opaque continuation cursor from the preceding response for the same query and sort order; omit for the first page." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of publications to return, from 1 to 25." - added
Input schema / properties / query / descriptionAdded value: +"Natural-language literature question or exact PMID, DOI, PMCID, gene, variant, phenotype, HPO, or OMIM query. Include every known publication identifier when comparing or finding related papers." - added
Input schema / properties / sort / descriptionAdded value: +"Result ordering: relevance-ranked, newest publication first, or oldest publication first."
- Changed
search_variant_evidence2 fields changed- added
Input schema / properties / assembly / descriptionAdded value: +"Reference genome assembly. Folklore currently accepts GRCh38 only." - added
Input schema / properties / query / descriptionAdded value: +"One germline nuclear SNV or simple indel to resolve and interpret; accepted forms include coordinates, genomic/coding/protein HGVS, SPDI, rsID, or a returned Folklore canonical_key in GRCh38:chrN:position:REF:ALT form."
- Changed
search_variant_literature4 fields changed- added
Input schema / properties / assembly / descriptionAdded value: +"Reference genome assembly. Folklore currently accepts GRCh38 only." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of publications to return, from 1 to 25." - added
Input schema / properties / query / descriptionAdded value: +"One germline nuclear SNV or simple indel to resolve before retrieving its literature; this is a variant identifier, not a natural-language question. Accepts a returned Folklore canonical_key in GRCh38:chrN:position:REF:ALT form." - added
Input schema / properties / question / descriptionAdded value: +"Optional natural-language focus applied after the variant is resolved, such as a condition or evidence question; do not put the variant identifier here."
1 tool update
- Changed
search_literature_corpus2 fields changed- added
Output schema / $defs / PublicCorpusArticleEntityAdded value: +{ + "additionalProperties": false, + "properties": { + "entity_type": { + "enum": [ + "gene", + "variant", + "phenotype", + "pmid", + "doi", + "pmcid", + "omim" + ], + "title": "Entity Type", + "type": "string" + }, + "identifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Identifier" + }, + "label": { + "title": "Label", + "type": "string" + }, + "normalization_state": { + "enum": [ + "normalized", + "source_indexed" + ], + "title": "Normalization State", + "type": "string" + }, + "source_field": { + "enum": [ + "work_identifiers.normalized_value", + "gene_mentions.gene_symbol", + "variant_mentions.normalized_variant", + "phenotype_mentions.hpo_id", + "phenotype_mentions.omim_id", + "phenotype_mentions.mesh_term", + "phenotype_mentions.phenotype_name" + ], + "title": "Source Field", + "type": "string" + } + }, + "required": [ + "entity_type", + "identifier", + "label", + "source_field", + "normalization_state" + ], + "title": "PublicCorpusArticleEntity", + "type": "object" +} - added
Output schema / $defs / PublicCorpusSearchResult / properties / article_entitiesAdded value: +{ + "items": { + "$ref": "#/$defs/PublicCorpusArticleEntity" + }, + "title": "Article Entities", + "type": "array" +}
1 tool update
- Changed
search_literature_corpus3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "anyOf": [ + { + "maxLength": 128, + "minLength": 8, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Cursor" +} - added
Output schema / properties / has_moreAdded value: +{ + "default": false, + "title": "Has More", + "type": "boolean" +} - added
Output schema / properties / next_cursorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Next Cursor" +}
2 tool updates
- Changed
search_literature_corpus8 fields changed- added
Output schema / $defs / PublicCorpusSearchResult / properties / pmid / anyOfAdded value: +[ + { + "pattern": "^[0-9]{1,12}$", + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / $defs / PublicCorpusSearchResult / properties / pmid / patternRemoved value: -"^[0-9]{1,12}$" - removed
Output schema / $defs / PublicCorpusSearchResult / properties / pmid / typeRemoved value: -"string" - added
Output schema / $defs / PublicCorpusSearchResult / properties / pubmed_url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / $defs / PublicCorpusSearchResult / properties / pubmed_url / typeRemoved value: -"string" - added
Output schema / $defs / PublicCorpusSearchResult / properties / source_urlAdded value: +{ + "title": "Source Url", + "type": "string" +} - added
Output schema / $defs / PublicCorpusSearchResult / properties / work_idAdded value: +{ + "title": "Work Id", + "type": "string" +} - changed
Output schema / $defs / PublicCorpusSearchResult / requiredPrevious value: -[ - "pmid", - "title", - "abstract_excerpt", - "journal", - "publication_date", - "doi", - "pmc_id", - "pubmed_url", - "match_types", - "structured_score" -]New value: +[ + "work_id", + "pmid", + "title", + "abstract_excerpt", + "journal", + "publication_date", + "doi", + "pmc_id", + "source_url", + "pubmed_url", + "match_types", + "structured_score" +]
- Changed
search_variant_literature1 field changed- changed
Output schema / $defs / CorpusProvenance / properties / source / constPrevious value: -"PubMed-derived Helena genetics corpus"New value: +"Helena Literature Corpus canonical works"
1 tool update
- Added
search_literature_corpus
2 tool updates
- Added
get_publication_details - Added
search_variant_literature
1 tool update
- Changed
search_variant_evidence2 fields changed- added
Output schema / properties / usage_boundaryAdded value: +{ + "additionalProperties": false, + "properties": { + "intended_use": { + "const": "professional_variant_review", + "type": "string" + }, + "not_for": { + "items": { + "enum": [ + "patient_diagnosis", + "treatment_decision", + "standalone_clinical_reporting" + ], + "type": "string" + }, + "maxItems": 3, + "minItems": 3, + "type": "array", + "uniqueItems": true + }, + "patient_context_evaluated": { + "const": false, + "type": "boolean" + }, + "result_type": { + "const": "automated_variant_level_classification", + "type": "string" + }, + "review_required": { + "const": true, + "type": "boolean" + } + }, + "required": [ + "result_type", + "review_required", + "patient_context_evaluated", + "intended_use", + "not_for" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "contract_version", - "record_url", - "result", - "adapter_error" -]New value: +[ + "contract_version", + "record_url", + "result", + "usage_boundary", + "adapter_error" +]
Related MCP Connectors
MCP gateway federating 22 biomedical MCP servers behind one endpoint: gnomAD, ClinVar, HPO, VEP.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables querying ClinGen curated evidence for gene-disease validity, dosage, actionability, and variant pathogenicity via MCP tools.MIT
- AlicenseAqualityAmaintenanceMCP server that provides tools to query harmonized gene-disease validity data from the Gene Curation Coalition, supporting consensus and conflict detection for gene-disease assertions.12MIT
- AlicenseAqualityAmaintenanceIntegrates AlphaFold DB and eight other biomedical data sources into MCP tools for variant clinical reporting, disease-target analysis, structural intelligence, and drug repurposing, with results persisted to a local SQLite knowledge graph.30181 PyPI4Apache 2.0
- AlicenseNot gradedqualityFmaintenanceMCP server for PubMed search and literature summarization52MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.