naftiko: 1.0.0-alpha2 info: label: UCSC Genomic Research Workflow description: Workflow capability for computational biology research using the UCSC Genome Browser API. Supports genome assembly discovery, DNA sequence retrieval, annotation track analysis, and track hub management. Designed for bioinformaticians, genomics researchers, and computational biologists. tags: - Genomics - Bioinformatics - DNA Sequences - Annotation - UCSC - Research created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: {} capability: consumes: - type: http namespace: ucsc-genome-browser baseUri: https://api.genome.ucsc.edu description: UCSC Genome Browser REST API — no authentication required. resources: - name: find-genome path: /findGenome description: Search for genome assemblies. operations: - name: find-genome method: GET description: Search for genomes by name, accession, or keywords. inputParameters: - name: q in: query type: string required: true description: Search query string. - name: maxItemsOutput in: query type: integer required: false description: Maximum number of results. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: list-ucsc-genomes path: /list/ucscGenomes description: List UCSC genome assemblies. operations: - name: list-ucsc-genomes method: GET description: Returns all genomes available in the UCSC Genome Browser. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: list-tracks path: /list/tracks description: List annotation tracks for a genome. operations: - name: list-tracks method: GET description: Returns all data tracks available for a genome assembly. inputParameters: - name: genome in: query type: string required: true description: Genome assembly identifier (e.g., hg38, mm39). - name: trackLeavesOnly in: query type: integer required: false description: Set to 1 to return only leaf tracks. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: list-chromosomes path: /list/chromosomes description: List chromosomes in a genome assembly. operations: - name: list-chromosomes method: GET description: Returns chromosomes and their sizes for a genome assembly. inputParameters: - name: genome in: query type: string required: true description: Genome assembly identifier (e.g., hg38, mm39). - name: track in: query type: string required: false description: Filter by a specific track. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-sequence path: /getData/sequence description: Retrieve DNA sequences. operations: - name: get-dna-sequence method: GET description: Retrieves a DNA sequence for a genomic region. inputParameters: - name: genome in: query type: string required: true description: Genome assembly identifier (e.g., hg38, mm39). - name: chrom in: query type: string required: true description: Chromosome identifier (e.g., chr1, chrM). - name: start in: query type: integer required: false description: Start position (0-based). - name: end in: query type: integer required: false description: End position (1-based). - name: revComp in: query type: integer required: false description: Set to 1 for reverse complement. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-track-data path: /getData/track description: Retrieve annotation track data. operations: - name: get-track-data method: GET description: Retrieves annotation data from a specific track for a genomic region. inputParameters: - name: genome in: query type: string required: true description: Genome assembly identifier (e.g., hg38, mm39). - name: track in: query type: string required: true description: Track name to retrieve data from. - name: chrom in: query type: string required: false description: Chromosome to retrieve data for. - name: start in: query type: integer required: false description: Start position (0-based). - name: end in: query type: integer required: false description: End position (1-based). - name: maxItemsOutput in: query type: integer required: false description: Maximum annotation items to return. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: list-public-hubs path: /list/publicHubs description: List public track hubs. operations: - name: list-public-hubs method: GET description: Returns all publicly available track hubs registered with UCSC. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: search path: /search description: Search the Genome Browser. operations: - name: search-genome-browser method: GET description: Searches track data, names, and descriptions in the Genome Browser. inputParameters: - name: search in: query type: string required: true description: Search query string. - name: genome in: query type: string required: true description: Genome assembly to search within. - name: categories in: query type: string required: false description: Restrict search scope (e.g., helpDocs, publicHubs, trackDb). outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: ucsc-genomic-research-api description: Unified REST API for UCSC Genome Browser genomic data access. resources: - path: /v1/genomes name: genomes description: UCSC genome assembly listings. operations: - method: GET name: list-ucsc-genomes description: List all UCSC Genome Browser assemblies. call: ucsc-genome-browser.list-ucsc-genomes outputParameters: - type: object mapping: $. - path: /v1/genomes/search name: genome-search description: Genome assembly search. operations: - method: GET name: find-genome description: Search for genome assemblies by name or accession. call: ucsc-genome-browser.find-genome with: q: rest.q outputParameters: - type: object mapping: $. - path: /v1/genomes/{genome}/tracks name: tracks description: Annotation tracks for a genome assembly. operations: - method: GET name: list-tracks description: List all annotation tracks for a genome. call: ucsc-genome-browser.list-tracks with: genome: rest.genome trackLeavesOnly: rest.trackLeavesOnly outputParameters: - type: object mapping: $. - path: /v1/genomes/{genome}/chromosomes name: chromosomes description: Chromosome listings for a genome assembly. operations: - method: GET name: list-chromosomes description: List chromosomes and their sizes for a genome. call: ucsc-genome-browser.list-chromosomes with: genome: rest.genome outputParameters: - type: object mapping: $. - path: /v1/sequence name: sequence description: DNA sequence retrieval. operations: - method: GET name: get-dna-sequence description: Retrieve DNA sequence for a genomic region. call: ucsc-genome-browser.get-dna-sequence with: genome: rest.genome chrom: rest.chrom start: rest.start end: rest.end revComp: rest.revComp outputParameters: - type: object mapping: $. - path: /v1/track-data name: track-data description: Annotation track data retrieval. operations: - method: GET name: get-track-data description: Retrieve annotation data from a specific track for a region. call: ucsc-genome-browser.get-track-data with: genome: rest.genome track: rest.track chrom: rest.chrom start: rest.start end: rest.end maxItemsOutput: rest.maxItemsOutput outputParameters: - type: object mapping: $. - path: /v1/hubs name: hubs description: Public track hubs. operations: - method: GET name: list-public-hubs description: List all publicly available track hubs. call: ucsc-genome-browser.list-public-hubs outputParameters: - type: object mapping: $. - path: /v1/search name: search description: Genome Browser search. operations: - method: GET name: search-genome-browser description: Search track data, names, and descriptions in the Genome Browser. call: ucsc-genome-browser.search-genome-browser with: search: rest.search genome: rest.genome categories: rest.categories outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: ucsc-genomic-research-mcp transport: http description: MCP server for AI-assisted genomic research using the UCSC Genome Browser. tools: - name: list-genome-assemblies description: List all genome assemblies available in the UCSC Genome Browser. hints: readOnly: true openWorld: true call: ucsc-genome-browser.list-ucsc-genomes outputParameters: - type: object mapping: $. - name: search-genomes description: Search for genome assemblies by organism name, accession, or keywords. hints: readOnly: true openWorld: true call: ucsc-genome-browser.find-genome with: q: tools.query outputParameters: - type: object mapping: $. - name: list-annotation-tracks description: List all annotation tracks available for a specific genome assembly. hints: readOnly: true openWorld: true call: ucsc-genome-browser.list-tracks with: genome: tools.genome trackLeavesOnly: tools.trackLeavesOnly outputParameters: - type: object mapping: $. - name: get-chromosomes description: Get chromosomes and their sizes for a genome assembly. hints: readOnly: true openWorld: true call: ucsc-genome-browser.list-chromosomes with: genome: tools.genome outputParameters: - type: object mapping: $. - name: get-dna-sequence description: Retrieve DNA sequence from a genome for a specified chromosomal region. hints: readOnly: true openWorld: true call: ucsc-genome-browser.get-dna-sequence with: genome: tools.genome chrom: tools.chrom start: tools.start end: tools.end revComp: tools.revComp outputParameters: - type: object mapping: $. - name: get-track-annotations description: Get annotation data from a specific track for a genomic region. hints: readOnly: true openWorld: true call: ucsc-genome-browser.get-track-data with: genome: tools.genome track: tools.track chrom: tools.chrom start: tools.start end: tools.end outputParameters: - type: object mapping: $. - name: list-public-track-hubs description: List all publicly available UCSC track hubs. hints: readOnly: true openWorld: true call: ucsc-genome-browser.list-public-hubs outputParameters: - type: object mapping: $. - name: search-genome-browser description: Search track data, names, and descriptions in the UCSC Genome Browser. hints: readOnly: true openWorld: true call: ucsc-genome-browser.search-genome-browser with: search: tools.query genome: tools.genome categories: tools.categories outputParameters: - type: object mapping: $.