Skill Tracer
Skills › Scientific Agent Skills › folklore-variant-evidence

folklore-variant-evidence

skill · 267 lines · MIT · skills/folklore-variant-evidence/SKILL.md

The facts

Its description

Retrieves ClinGen gene-disease validity assertions for a public gene or disease, and reviews source-linked public evidence and literature for one supported GRCh38 germline nuclear SNV or simple indel through Folklore Clinical Variant Interpretation MCP. Used when a scientific agent must branch deterministically on resolved, ambiguous, not-found, invalid, unsupported, or unavailable variant outcomes; chain a resolved public variant into related literature or publication details; or preserve evidence provenance without accepting patient, phenotype, family, segregation, or private case data.

The description the agent reads to decide when to use it.

From its settingsline 3

Files it mentions

references/mcp-contract.md

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 50 line 109

Licence

MIT, from the skill file

The terms its author shares it under, which let it be shown here.

From its settingsline 4 licence text

Other settings

compatibility: Requires network access to api.helena.bio (stateless Streamable HTTP MCP, no credentials) and a host supporting its advertised protocol, or curl for direct JSON-RPC POST requests. metadata: version: "1.2" last-reviewed: "2026-09-30" skill-author: "Helena Bioinformatics" website: "https://folklore.helena.bio" github: "https://github.com/helena-bioinformatics/folklore-mcp"

More settings at the top of the file, shown as written.

From its settingsline 5 line 6
Other files in this skill (1) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: folklore-variant-evidence
3description: "Retrieves ClinGen gene-disease validity assertions for a public gene or disease, and reviews source-linked public evidence and literature for one supported GRCh38 germline nuclear SNV or simple indel through Folklore Clinical Variant Interpretation MCP. Used when a scientific agent must branch deterministically on resolved, ambiguous, not-found, invalid, unsupported, or unavailable variant outcomes; chain a resolved public variant into related literature or publication details; or preserve evidence provenance without accepting patient, phenotype, family, segregation, or private case data."
4license: MIT
5compatibility: Requires network access to api.helena.bio (stateless Streamable HTTP MCP, no credentials) and a host supporting its advertised protocol, or curl for direct JSON-RPC POST requests.
6metadata:
7 version: "1.2"
8 last-reviewed: "2026-09-30"
9 skill-author: "Helena Bioinformatics"
10 website: "https://folklore.helena.bio"
11 github: "https://github.com/helena-bioinformatics/folklore-mcp"
12---
14# Folklore Variant Evidence
16Use Folklore Clinical Variant Interpretation MCP to retrieve structured public
17variant evidence, automated variant-level ACMG/AMP decision support, provenance,
18and source-linked literature for professional review. Keep the workflow limited
19to public identifiers and preserve every explicit outcome state. Adapter 1.5.0 also provides ClinGen Gene-Disease Validity assertions; source coverage is bounded, not every known association.
21Folklore Clinical Variant Interpretation MCP is published by Helena
22Bioinformatics. Its hosted endpoint is:
24```text
25https://api.helena.bio/folklore/v1/mcp
26```
28No account or API key is required. The public Apache-2.0 adapter and contract are
29available at <https://github.com/helena-bioinformatics/folklore-mcp>.

Folklore Variant Evidence

Use Folklore Clinical Variant Interpretation MCP to retrieve structured public variant evidence, automated variant-level ACMG/AMP decision support, provenance, and source-linked literature for professional review. Keep the workflow limited to public identifiers and preserve every explicit outcome state. Adapter 1.5.0 also provides ClinGen Gene-Disease Validity assertions; source coverage is bounded, not every known association.

Folklore Clinical Variant Interpretation MCP is published by Helena Bioinformatics. Its hosted endpoint is:

https://api.helena.bio/folklore/v1/mcp

No account or API key is required. The public Apache-2.0 adapter and contract are available at <https://github.com/helena-bioinformatics/folklore-mcp>.

Raw lines 1 to 30
Uses an outside tool MCP :16
31## Minimal connection example
33A host without native MCP support can make the same public JSON-RPC call:
35```bash
36curl --silent --show-error --fail-with-body --max-time 60 \
37 -X POST https://api.helena.bio/folklore/v1/mcp \
38 -H 'Content-Type: application/json' \
39 -H 'Accept: application/json, text/event-stream' \
40 -H 'MCP-Protocol-Version: 2026-07-28' \
41 -H 'Mcp-Method: tools/call' \
42 -H 'Mcp-Name: search_variant_evidence' \
43 -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}},"name":"search_variant_evidence","arguments":{"assembly":"GRCh38","query":"rs80357914"}}}'
44```
46The routing headers must match the JSON-RPC method and tool name. A successful
47HTTP response is not sufficient: inspect JSON-RPC `error`, then
48`result.structuredContent.adapter_error`, then this tool's
49`result.structuredContent.result.status`. Other tools use different response
50shapes; use the [contract table](references/mcp-contract.md).
52Inspect the returned outcome before continuing. This example can return
53`ambiguous` with multiple candidates: stop and request an unambiguous public
54variant notation instead of selecting a candidate automatically.

Minimal connection example

A host without native MCP support can make the same public JSON-RPC call:

curl --silent --show-error --fail-with-body --max-time 60 \
  -X POST https://api.helena.bio/folklore/v1/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: tools/call' \
  -H 'Mcp-Name: search_variant_evidence' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}},"name":"search_variant_evidence","arguments":{"assembly":"GRCh38","query":"rs80357914"}}}'

The routing headers must match the JSON-RPC method and tool name. A successful HTTP response is not sufficient: inspect JSON-RPC error, then result.structuredContent.adapter_error, then this tool's result.structuredContent.result.status. Other tools use different response shapes; use the contract table.

Inspect the returned outcome before continuing. This example can return ambiguous with multiple candidates: stop and request an unambiguous public variant notation instead of selecting a candidate automatically.

Raw lines 31 to 55
Uses an outside tool MCP :33
56## Select the right skill
58Use this skill when the task is one public variant to structured Folklore
59evidence, explicit resolution-state handling, variant-linked literature, or ClinGen gene-to-disease/disease-to-gene assertions.
61- Use `database-lookup` for broad direct queries across ClinVar, dbSNP, gnomAD,
62 Ensembl VEP, COSMIC, or multiple databases.
63- Use `genomic-coordinates` first when the assembly, coordinate convention,
64 contig name, or variant representation is uncertain.
65- Do not use this skill for VCF annotation, batch processing, somatic variants,
66 structural variants, polygenic scores, or patient-specific interpretation.
68Folklore Clinical Variant Interpretation MCP complements those skills with one
69source-linked public evidence contract. It does not replace direct database
70review or qualified clinical judgment.

Select the right skill

Use this skill when the task is one public variant to structured Folklore evidence, explicit resolution-state handling, variant-linked literature, or ClinGen gene-to-disease/disease-to-gene assertions.

  • Use database-lookup for broad direct queries across ClinVar, dbSNP, gnomAD, Ensembl VEP, COSMIC, or multiple databases.
  • Use genomic-coordinates first when the assembly, coordinate convention, contig name, or variant representation is uncertain.
  • Do not use this skill for VCF annotation, batch processing, somatic variants, structural variants, polygenic scores, or patient-specific interpretation.

Folklore Clinical Variant Interpretation MCP complements those skills with one source-linked public evidence contract. It does not replace direct database review or qualified clinical judgment.

Raw lines 56 to 71
Names a skill database-lookup :61
Names a skill genomic-coordinates :63
Uses an outside tool MCP :68
72## Enforce the input boundary
74Before a variant tool call:
761. Extract exactly one public variant identifier or notation.
772. Require GRCh38 and a germline nuclear SNV or simple insertion/deletion shorter
78 than 50 base pairs. An unsupported assembly may be rejected by the input
79 schema before any scientific `unsupported` status exists.
803. Remove or refuse patient names, case identifiers, phenotypes, family history,
81 segregation evidence, clinical records, uploaded files, and other private or
82 patient-specific context.
834. If the task depends on patient context, stop and explain that Folklore
84 Clinical Variant Interpretation MCP does not accept or evaluate it.
855. Never transform a patient-specific request into a public variant query while
86 implying that the result answers the patient-specific question.
88Accepted public variant forms include genomic coordinates, genomic/coding/
89protein HGVS, SPDI, rsID, or a `canonical_key` returned by Folklore Clinical
90Variant Interpretation MCP.

Enforce the input boundary

Before a variant tool call:

  1. Extract exactly one public variant identifier or notation.
  2. Require GRCh38 and a germline nuclear SNV or simple insertion/deletion shorter than 50 base pairs. An unsupported assembly may be rejected by the input schema before any scientific unsupported status exists.
  3. Remove or refuse patient names, case identifiers, phenotypes, family history, segregation evidence, clinical records, uploaded files, and other private or patient-specific context.
  4. If the task depends on patient context, stop and explain that Folklore Clinical Variant Interpretation MCP does not accept or evaluate it.
  5. Never transform a patient-specific request into a public variant query while implying that the result answers the patient-specific question.

Accepted public variant forms include genomic coordinates, genomic/coding/ protein HGVS, SPDI, rsID, or a canonical_key returned by Folklore Clinical Variant Interpretation MCP.

Raw lines 72 to 91
Uses an outside tool MCP :84
92## Verify the live tool catalog
94Connect to the hosted endpoint and call `tools/list`. Verify the available tools
95instead of relying on model memory. The documented public catalog contains:
97- `search_variant_evidence`
98- `search_variant_literature`
99- `get_publication_details`
100- `search_literature_corpus`
101- `get_gene_disease_associations`
102- `search_disease_genes`
104The separate seventh tool `support_helena` is not scientific evidence; use it only when explicitly requested.
106If discovery or a tool call fails, preserve the failure as an availability
107problem. Do not reinterpret it as lack of scientific evidence.
109Read [the public MCP contract](references/mcp-contract.md) before composing tool
110calls or interpreting response states.

Verify the live tool catalog

Connect to the hosted endpoint and call tools/list. Verify the available tools instead of relying on model memory. The documented public catalog contains:

  • search_variant_evidence
  • search_variant_literature
  • get_publication_details
  • search_literature_corpus
  • get_gene_disease_associations
  • search_disease_genes

The separate seventh tool support_helena is not scientific evidence; use it only when explicitly requested.

If discovery or a tool call fails, preserve the failure as an availability problem. Do not reinterpret it as lack of scientific evidence.

Read the public MCP contract before composing tool calls or interpreting response states.

Raw lines 92 to 111
Uses an outside tool MCP :109
Reads a file references/mcp-contract.md :109
112## Retrieve gene-disease assertions
114Use `get_gene_disease_associations` for one exact gene symbol or HGNC identifier, or `search_disease_genes` for an exact MONDO identifier or public disease-name substring. Both accept `limit` (default 20, 1–50) and `offset` (default 0, 0–1000). See the reference for request examples. This is a separate source lookup and requires no variant input or assembly.
116Preserve each returned disease identity, inheritance, evidence assessment, source
117URL, date, `source.version` and `source.snapshotSha256`. This is a local ClinGen
118snapshot, not a guarantee of the latest ClinGen release. Follow
119`pagination.nextOffset` while it is present; preserve pagination-ceiling warnings.
120An empty page after the total has been passed does not mean the initial query had
121no matches. Do not combine distinct diseases or silently choose among name matches.
122Gene-disease validity does not classify a particular variant. A `not_found`
123response means no matching assertion in the available source, not no association.
124No patient, phenotype, family, segregation, private case data or sequencing files
125may be sent. Qualified professional review remains required.

Retrieve gene-disease assertions

Use get_gene_disease_associations for one exact gene symbol or HGNC identifier, or search_disease_genes for an exact MONDO identifier or public disease-name substring. Both accept limit (default 20, 1–50) and offset (default 0, 0–1000). See the reference for request examples. This is a separate source lookup and requires no variant input or assembly.

Preserve each returned disease identity, inheritance, evidence assessment, source URL, date, source.version and source.snapshotSha256. This is a local ClinGen snapshot, not a guarantee of the latest ClinGen release. Follow pagination.nextOffset while it is present; preserve pagination-ceiling warnings. An empty page after the total has been passed does not mean the initial query had no matches. Do not combine distinct diseases or silently choose among name matches. Gene-disease validity does not classify a particular variant. A not_found response means no matching assertion in the available source, not no association. No patient, phenotype, family, segregation, private case data or sequencing files may be sent. Qualified professional review remains required.

Raw lines 112 to 126
127## Run the variant-evidence workflow

Run the variant-evidence workflow

Raw lines 127 to 128
129### 1. Resolve and retrieve evidence
131Call `search_variant_evidence` with:
133```text
134assembly: GRCh38
135query: <one public variant identifier or notation>
136```
138Do not add phenotype, disease, patient, family, or treatment context to this
139call. Preserve the returned contract fields, source links, limitations, and
140usage boundary.

1. Resolve and retrieve evidence

Call search_variant_evidence with:

assembly: GRCh38
query: <one public variant identifier or notation>

Do not add phenotype, disease, patient, family, or treatment context to this call. Preserve the returned contract fields, source links, limitations, and usage boundary.

Raw lines 129 to 141
142### 2. Branch on the returned status
144Read transport/JSON-RPC errors and `adapter_error` first. For
145`search_variant_evidence`, let `envelope = result.structuredContent`; only if
146`envelope.result` is non-null, branch on `envelope.result.status`. An
147`invalid_arguments` adapter error is distinct from scientific `invalid_request`.
148Preserve `isError` and any typed failure, including `resolution_unavailable`.
149Treat the status as a control-flow value, not prose:
151| Status | Required action |
152|---|---|
153| `resolved` | Reuse the returned `canonical_key`; review the structured interpretation, provenance, source links, and limitations. |
154| `ambiguous` | Show the returned candidates and ask for an explicit public variant selection. Never choose a candidate automatically. |
155| `not_found` | Report that no result was found within this service and query scope. Do not claim universal absence. |
156| `invalid_request` | Report the validation problem and request a corrected public variant. Do not silently reinterpret the input. |
157| `unsupported` | State the relevant service boundary and stop. Do not force the query into a supported form. |
158| `resolution_unavailable` | Report a temporary resolution or availability failure. Do not treat it as evidence absence. |
160Only a `resolved` result may proceed automatically into a variant-linked
161literature workflow. Its canonical key is `envelope.result.identity.canonical_key`.
162If `envelope.result.interpretation.status` is `unavailable`, preserve its typed
163error; identity resolution has succeeded, but classification has not. Do not read
164or invent a classification for that outcome.

2. Branch on the returned status

Read transport/JSON-RPC errors and adapter_error first. For search_variant_evidence, let envelope = result.structuredContent; only if envelope.result is non-null, branch on envelope.result.status. An invalid_arguments adapter error is distinct from scientific invalid_request. Preserve isError and any typed failure, including resolution_unavailable. Treat the status as a control-flow value, not prose:

StatusRequired action
resolvedReuse the returned canonical_key; review the structured interpretation, provenance, source links, and limitations.
ambiguousShow the returned candidates and ask for an explicit public variant selection. Never choose a candidate automatically.
not_foundReport that no result was found within this service and query scope. Do not claim universal absence.
invalid_requestReport the validation problem and request a corrected public variant. Do not silently reinterpret the input.
unsupportedState the relevant service boundary and stop. Do not force the query into a supported form.
resolution_unavailableReport a temporary resolution or availability failure. Do not treat it as evidence absence.

Only a resolved result may proceed automatically into a variant-linked literature workflow. Its canonical key is envelope.result.identity.canonical_key. If envelope.result.interpretation.status is unavailable, preserve its typed error; identity resolution has succeeded, but classification has not. Do not read or invent a classification for that outcome.

Raw lines 142 to 165
166### 3. Review the evidence without overclaiming
168For a resolved result:
170- Present the returned variant identity and `canonical_key`.
171- Preserve the automated variant-level ACMG/AMP decision-support result exactly
172 as returned.
173- Cite the returned public sources and provenance.
174- Keep submitted ClinVar assertions separate from Folklore's automated result,
175 as required by the [upstream interpretation guidance](https://github.com/helena-bioinformatics/folklore-mcp).
176 If they disagree, report each assertion with its source/date and preserve
177 the disagreement; do not present a merged consensus classification.
178- Separate returned facts from the agent's synthesis.
179- State that qualified professional review is required.
180- Do not turn the result into a diagnosis, individual risk estimate, treatment
181 recommendation, or standalone clinical report.

3. Review the evidence without overclaiming

For a resolved result:

  • Present the returned variant identity and canonical_key.
  • Preserve the automated variant-level ACMG/AMP decision-support result exactly as returned.
  • Cite the returned public sources and provenance.
  • Keep submitted ClinVar assertions separate from Folklore's automated result, as required by the upstream interpretation guidance. If they disagree, report each assertion with its source/date and preserve the disagreement; do not present a merged consensus classification.
  • Separate returned facts from the agent's synthesis.
  • State that qualified professional review is required.
  • Do not turn the result into a diagnosis, individual risk estimate, treatment recommendation, or standalone clinical report.
Raw lines 166 to 182
183## Chain into literature

Chain into literature

Raw lines 183 to 184
185### Variant-linked literature
187After a resolved evidence call, pass the returned `canonical_key` to
188`search_variant_literature`. Keep `assembly` as `GRCh38`. An optional `question`
189may narrow the literature focus, but it must remain a public scientific question
190and must not contain patient context.
192Distinguish each result's match type:
194- `exact_variant`: direct match to the resolved variant
195- `variant_alias`: match through a reported alias
196- `gene_association`: broader gene-level association, not variant-specific proof
198Literature associations do not alter the returned ACMG/AMP classification.

Variant-linked literature

After a resolved evidence call, pass the returned canonical_key to search_variant_literature. Keep assembly as GRCh38. An optional question may narrow the literature focus, but it must remain a public scientific question and must not contain patient context.

Distinguish each result's match type:

  • exact_variant: direct match to the resolved variant
  • variant_alias: match through a reported alias
  • gene_association: broader gene-level association, not variant-specific proof

Literature associations do not alter the returned ACMG/AMP classification.

Raw lines 185 to 199
200### Publication details
202Call `get_publication_details` only with a PMID returned by the literature tools.
203Preserve PubMed URLs, DOI/PMCID fields when present, retraction status, and the
204distinction between gene mentions and variant mentions.

Publication details

Call get_publication_details only with a PMID returned by the literature tools. Preserve PubMed URLs, DOI/PMCID fields when present, retraction status, and the distinction between gene mentions and variant mentions.

Raw lines 200 to 205
206### Semantic corpus search
208Use `search_literature_corpus` for a public natural-language scientific question
209or for discovery by publication identifier, gene, variant, phenotype, HPO, or
210OMIM concept. Treat results as source-linked candidates for professional review.
211A zero-result response means no result was returned for that bounded query, not
212that no relevant publication exists anywhere.
214The query is 3–200 characters, with `limit` 1–25 and `sort` set to `relevance`,
215`newest`, or `oldest`. For another page, reuse the returned opaque `next_cursor`
216with the same query and sort; do not construct an offset. Keep `match_types` and
217`article_entities` distinct from variant-literature match types. Report
218`semantic_index_used` and `semantic_degraded_reason`; a returned lexical match
219does not prove semantic retrieval worked. Preserve additional retrieval metadata
220returned by the live service.
222Do not place patient information into a corpus query, even if the query is not
223variant-specific.

Semantic corpus search

Use search_literature_corpus for a public natural-language scientific question or for discovery by publication identifier, gene, variant, phenotype, HPO, or OMIM concept. Treat results as source-linked candidates for professional review. A zero-result response means no result was returned for that bounded query, not that no relevant publication exists anywhere.

The query is 3–200 characters, with limit 1–25 and sort set to relevance, newest, or oldest. For another page, reuse the returned opaque next_cursor with the same query and sort; do not construct an offset. Keep match_types and article_entities distinct from variant-literature match types. Report semantic_index_used and semantic_degraded_reason; a returned lexical match does not prove semantic retrieval worked. Preserve additional retrieval metadata returned by the live service.

Do not place patient information into a corpus query, even if the query is not variant-specific.

Raw lines 206 to 224
225## Report a reproducible result
227Include:
2291. The exact public query and `GRCh38` assembly.
2302. The returned status and, if resolved, the `canonical_key`.
2313. The structured evidence or literature result without changing its meaning.
2324. Source links and publication identifiers.
2335. Match type for literature results.
2346. Access date and any availability limitation.
2357. This boundary statement:
237> This is public, variant-level decision support for qualified professional
238> review. It does not evaluate patient, phenotype, family, segregation, or
239> private case data and is not a diagnosis or treatment recommendation.

Report a reproducible result

Include:

  1. The exact public query and GRCh38 assembly.
  2. The returned status and, if resolved, the canonical_key.
  3. The structured evidence or literature result without changing its meaning.
  4. Source links and publication identifiers.
  5. Match type for literature results.
  6. Access date and any availability limitation.
  7. This boundary statement:
This is public, variant-level decision support for qualified professional review. It does not evaluate patient, phenotype, family, segregation, or private case data and is not a diagnosis or treatment recommendation.
Raw lines 225 to 240
241## Falsifiable smoke test
243Use the public rsID `rs80357914` to test ambiguity handling:
245```text
246Call search_variant_evidence with assembly GRCh38 and query rs80357914. If the
247result is ambiguous, list the returned candidates and stop for explicit
248selection. Do not select a candidate or call downstream literature tools.
249```
251The ambiguity branch passes only if an ambiguous response causes the workflow to
252stop without automatic candidate selection. If the live response changes, record
253the actual status; a resolved response does not test ambiguity handling.
255On 2026-09-30, live discovery reported adapter 1.5.0 and protocol 2026-07-28.
256The rsID example returned `ambiguous`; a separate public HGVS query resolved and
257was chained through its returned key to literature and a returned PMID. Corpus
258cursor pagination and gene-disease offset pagination were exercised. These are
259dated protocol checks, not validation of clinical accuracy. See the reference
260for exact response shapes and source/live differences.

Falsifiable smoke test

Use the public rsID rs80357914 to test ambiguity handling:

Call search_variant_evidence with assembly GRCh38 and query rs80357914. If the
result is ambiguous, list the returned candidates and stop for explicit
selection. Do not select a candidate or call downstream literature tools.

The ambiguity branch passes only if an ambiguous response causes the workflow to stop without automatic candidate selection. If the live response changes, record the actual status; a resolved response does not test ambiguity handling.

On 2026-09-30, live discovery reported adapter 1.5.0 and protocol 2026-07-28. The rsID example returned ambiguous; a separate public HGVS query resolved and was chained through its returned key to literature and a returned PMID. Corpus cursor pagination and gene-disease offset pagination were exercised. These are dated protocol checks, not validation of clinical accuracy. See the reference for exact response shapes and source/live differences.

Raw lines 241 to 261
262## Official references
264- Integration setup: <https://folklore.helena.bio/integrations>
265- Technical guide: <https://folklore.helena.bio/docs/folklore-connector>
266- Public adapter and contract: <https://github.com/helena-bioinformatics/folklore-mcp>
267- Official MCP Registry identity: `io.github.helena-bioinformatics/folklore`

Official references

  • Integration setup: <https://folklore.helena.bio/integrations>
  • Technical guide: <https://folklore.helena.bio/docs/folklore-connector>
  • Public adapter and contract: <https://github.com/helena-bioinformatics/folklore-mcp>
  • Official MCP Registry identity: io.github.helena-bioinformatics/folklore
Raw lines 262 to 267
Uses an outside tool MCP :267

From K-Dense-AI/scientific-agent-skills at 5f2bc03, 2026-10-26. Not read by a model yet. Summary and techniques by Claude Opus 5.5 on 2026-11-06.