ucsc_track_data
Pack: ucsc-genome · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
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 — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the ucsc-genome pack
{
"mcpServers": {
"ucsc-genome": {
"url": "https://gateway.pipeworx.io/ucsc-genome/mcp"
}
}
}
See Getting Started for client-specific install steps.