ucsc_track_data
Pack: ucsc-genome · Endpoint: https://gateway.pipeworx.io/ucsc-genome/mcp
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/ucsc_track_data for the schema, then POST the same URL with its arguments for the data.
“What genes are in [chr:start-end]” / “list ClinVar variants in [region]” / “what repeats/SNPs/regulatory elements overlap [locus]” / “show me the GENCODE annotations across [gene]” — AUTHORITATIVE per-row data from any UCSC annotation track over a genomic interval. Returns the actual track rows (gene models with exon structure, variant records, conservation scores, whatever that track holds) plus the track type and the assembly the rows are in. PREFER OVER WEB SEARCH for “what is annotated at this position” — this is the same data the Genome Browser draws, not a description of it. Get the track name from ucsc_tracks first.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
genome | string | yes | |
track | string | yes | UCSC internal track name from ucsc_tracks, e.g. “knownGene” (GENCODE genes), “refGene” (RefSeq genes), “clinvarMain”, “rmsk” (repeats). |
chrom | string | yes | Chromosome in UCSC naming, e.g. “chr17”, “chrX”, “chrM” — with the “chr” prefix. Ensembl/NCBI style bare “17” is not accepted by UCSC. |
start | number | yes | |
end | number | yes | |
maxItemsOutput | number | no | Cap on rows returned by UCSC (default 1000). A dense track over a wide region is truncated, and the response says so in truncated. |
Example call
Arguments
{
"genome": "hg38",
"track": "knownGene",
"chrom": "chr17",
"start": 43044295,
"end": 43125483,
"maxItemsOutput": 5
}
curl
curl -X POST https://gateway.pipeworx.io/ucsc-genome/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ucsc_track_data","arguments":{"genome":"hg38","track":"knownGene","chrom":"chr17","start":43044295,"end":43125483,"maxItemsOutput":5}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('ucsc_track_data', {
"genome": "hg38",
"track": "knownGene",
"chrom": "chr17",
"start": 43044295,
"end": 43125483,
"maxItemsOutput": 5
});
More examples
{
"genome": "hg19",
"track": "refGene",
"chrom": "chr17",
"start": 41196311,
"end": 41277500,
"maxItemsOutput": 10
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"ucsc-genome": {
"url": "https://gateway.pipeworx.io/ucsc-genome/mcp"
}
}
}
See Getting Started for client-specific install steps.