GTEx MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GTEx MCP Serverget median gene expression for BRCA1 across all tissues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Unofficial GTEx Portal MCP Server
A comprehensive Model Context Protocol (MCP) server providing access to the GTEx (Genotype-Tissue Expression) Portal API. This server enables AI assistants to query and analyze genomics data from the GTEx project through 25 specialized tools across three categories.
Developed by Augmented Nature
Overview
The GTEx Portal contains gene expression and regulatory data from 54 non-diseased tissue sites across nearly 1000 individuals. This MCP server provides structured access to:
Expression Analysis: Gene expression patterns and tissue specificity (7 tools)
Association Analysis: eQTL/sQTL analysis and genetic associations (6 tools)
Reference/Dataset: Gene/variant lookups and metadata (12 tools)
Related MCP server: Omics AI MCP Server
𧬠Complete Tool Suite (25/25 Implemented)
Expression Analysis Tools (7 tools)
get_gene_expression- Get gene expression data across tissues for specific genesget_median_gene_expression- Get median gene expression levels across tissuesget_top_expressed_genes- Get top expressed genes in specific tissuesget_tissue_specific_genes- Get genes with tissue-specific expression patternsget_clustered_expression- Get clustered gene expression data for visualizationcalculate_expression_correlation- Calculate Pearson correlation between genes across tissuesget_differential_expression- Get differential gene expression between tissue groups
Association Analysis Tools (6 tools)
get_eqtl_genes- Get genes with eQTL associations for genomic regionsget_single_tissue_eqtls- Get single-tissue eQTL results for genescalculate_dynamic_eqtl- Calculate dynamic eQTL effects across tissuesget_multi_tissue_eqtls- Get multi-tissue eQTL meta-analysis resultsget_sqtl_results- Get splicing QTL (sQTL) results for genesanalyze_ld_structure- Analyze linkage disequilibrium structure around variants
Reference/Dataset Tools (12 tools)
search_genes- Search for genes by symbol, name, or descriptionget_gene_info- Get detailed information about specific genesget_variants- Get genetic variants in genomic regionsget_tissue_info- Get information about GTEx tissues and sample countsget_sample_info- Get GTEx sample metadata and demographicsget_subject_phenotypes- Get subject phenotype data and demographicsvalidate_gene_id- Validate and normalize gene identifiersvalidate_variant_id- Validate variant identifiers and genomic coordinatesget_dataset_info- Get information about available GTEx datasetssearch_transcripts- Search for gene transcripts and isoformsget_gene_ontology- Get Gene Ontology annotations for genesconvert_coordinates- Convert between genomic coordinate systems (hg19/hg38)
š Installation
Clone or download the server files
Install dependencies:
cd gtex-server
npm installBuild the server:
npm run buildUsage
Running the Server
Start the server for testing:
npm run devUse the MCP inspector for development:
npm run inspectorIntegrating with Claude Desktop
Add the server to your Claude Desktop configuration file:
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"gtex-server": {
"command": "node",
"args": ["/path/to/gtex-server/build/index.js"]
}
}
}Replace /path/to/gtex-server with the actual path to your server installation.
š Example Usage
Search for Genes
Search for genes related to "BRCA1" or "insulin signaling"Gene Expression Analysis
Get median gene expression for ENSG00000012048.20 (BRCA1) across all tissuesTissue-Specific Analysis
Find tissue-specific genes in Brain_Cortex and compare with Muscle_SkeletaleQTL Analysis
Find genes with eQTL associations in genomic region chr17:43000000-43200000Expression Correlation
Calculate expression correlation between BRCA1 and BRCA2 across tissuesCoordinate Conversion
Convert genomic coordinates from hg38 to hg19: chr1:1500000š¬ Scientific Applications
This server enables comprehensive genomics research including:
Tissue Expression Profiling: Identify genes with tissue-specific or tissue-enriched expression
Co-expression Analysis: Find genes with correlated expression patterns
eQTL Mapping: Discover expression quantitative trait loci and regulatory variants
Comparative Genomics: Compare expression across different tissue types
Functional Annotation: Link genes to biological processes via Gene Ontology
Variant Analysis: Explore genetic variation and its impact on gene expression
šļø API Data Source
This server connects to the GTEx Portal API v2:
Base URL: https://gtexportal.org/api/v2/
Documentation: https://gtexportal.org/api/v2/redoc
Data: GTEx v8 dataset (15,201 RNA-Seq samples from 54 tissues, 948 donors)
Genome Build: GRCh38/hg38
š Data Types and Formats
Gene Identifiers
GENCODE IDs: e.g.,
ENSG00000012048.20(BRCA1)Gene Symbols: e.g.,
BRCA1,TP53,INSR
Tissue Identifiers
Tissue Site Detail IDs: e.g.,
Muscle_Skeletal,Brain_Cortex,Heart_Left_VentricleUse
get_tissue_infotool to see all 54 available tissues
Genomic Coordinates
Chromosome: e.g.,
chr17,chrX,chrYPositions: 1-based genomic coordinates
Genome Build: GRCh38/hg38 (with hg19 conversion available)
Expression Values
Units: TPM (Transcripts Per Million)
Statistics: Mean, median, standard deviation across samples
Detection: Percentage of samples with detectable expression
ā” Performance & Reliability
Error Handling: Comprehensive validation and graceful error recovery
Rate Limiting: Automatic handling of API rate limits
Timeouts: 30-second timeouts with retry logic
Caching: Intelligent caching to improve response times
Pagination: Automatic handling of large result sets
Validation: Input parameter validation and normalization
š ļø Development
Project Structure
gtex-server/
āāā src/
ā āāā index.ts # Main MCP server with tool registration
ā āāā types/gtex-types.ts # Complete TypeScript type definitions
ā āāā utils/api-client.ts # GTEx API client with comprehensive methods
ā āāā handlers/
ā āāā expression-handlers.ts # 7 expression analysis tools
ā āāā association-handlers.ts # 6 eQTL/sQTL analysis tools
ā āāā reference-handlers.ts # 12 reference/lookup tools
āāā build/ # Compiled JavaScript output
āāā test-complete-server.js # Comprehensive testing script
āāā package.json # Dependencies and build scripts
āāā tsconfig.json # TypeScript configurationDevelopment Commands
# Build the project
npm run build
# Run in development mode with auto-reload
npm run dev
# Watch for changes during development
npm run watch
# Test all 25 tools
node test-complete-server.jsTechnical Implementation
Language: TypeScript with ES modules
Framework: Model Context Protocol SDK v0.6.0
Architecture: Modular design with separate handler classes
API Client: Axios with comprehensive error handling
Data Processing: Statistical analysis and data formatting
Type Safety: Complete type definitions for all GTEx API responses
š References
GTEx Portal - Main GTEx data portal
GTEx API Documentation - Complete API reference
Model Context Protocol - MCP specification
GTEx Consortium Nature Paper - Primary publication
GTEx Analysis Methods - Statistical methods
šÆ Status: Production Ready
ā
All 25 tools implemented and tested
ā
Complete TypeScript implementation
ā
Comprehensive error handling
ā
Live GTEx Portal API integration
ā
MCP 1.0 compliant
ā
Ready for genomics research
š License
MIT License - Feel free to use, modify, and distribute for research and commercial applications.
This server bridges the GTEx Portal's extensive genomics database with the Model Context Protocol, enabling powerful genomics analysis through AI assistants.
Available Tools
25 toolsanalyze_ld_structureB
Analyze linkage disequilibrium structure around eQTL variants
| Name | Required | Description | Default |
|---|---|---|---|
| chr | Yes | Chromosome (e.g., chr1, chr2, chrX) | |
| position | Yes | Genomic position (1-based) | |
| windowSize | No | Window size around position (default: 100000) | |
| population | No | Population for LD analysis (default: EUR) | EUR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'analyze' suggests a read-only computational operation, the description doesn't specify whether this is a heavy computation, whether it requires specific permissions, what the output format will be, or any rate limits. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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 a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with clear parameters in the schema. Every word earns its place.
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 tool with 4 well-documented parameters but no annotations and no output schema, the description is minimally adequate. It states what the tool does but doesn't provide behavioral context or output expectations. The 100% schema coverage helps, but without annotations or output schema, more context about the analysis process or results would be beneficial.
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 all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'around eQTL variants' which implies the chr/position parameters target variant locations, but this is already clear from the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
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 tool's purpose: 'Analyze linkage disequilibrium structure around eQTL variants.' It specifies the action ('analyze'), the biological concept ('linkage disequilibrium structure'), and the target ('eQTL variants'). However, it doesn't explicitly differentiate from sibling tools like 'get_variants' or 'calculate_dynamic_eqtl' that might involve variant analysis.
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 no guidance on when to use this tool versus alternatives. With many sibling tools focused on eQTLs, variants, and gene expression, there's no indication of when this specific LD analysis tool is appropriate versus other analysis or retrieval tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_dynamic_eqtlC
Calculate dynamic eQTL effects across tissues
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| snpId | Yes | SNP ID (rs number or variant ID) | |
| tissueSiteDetailIds | Yes | Array of tissue site detail IDs to compare | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but does not cover critical aspects like whether it performs computations, requires specific permissions, has rate limits, or what the output format might be. This is a significant gap for a tool with potential computational or data access implications.
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 a single, efficient sentence that directly states the tool's purpose without any redundant or unnecessary information. It is front-loaded and appropriately sized for the task.
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 complexity of eQTL analysis, no annotations, and no output schema, the description is insufficient. It does not explain what 'dynamic eQTL effects' entail, how results are returned, or any behavioral traits, making it incomplete for effective agent use.
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 input schema has 100% description coverage, clearly documenting all parameters. The description adds no additional semantic context beyond the schema, such as explaining interactions between parameters or providing examples. Baseline score of 3 is appropriate as the schema does the heavy lifting.
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 action ('calculate') and target ('dynamic eQTL effects across tissues'), which is specific and meaningful. However, it does not explicitly differentiate from sibling tools like 'get_single_tissue_eqtls' or 'get_multi_tissue_eqtls', which might handle similar eQTL analyses, so it lacks sibling distinction for a perfect score.
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 no guidance on when to use this tool versus alternatives, such as the sibling tools 'get_single_tissue_eqtls' or 'get_multi_tissue_eqtls'. It does not mention prerequisites, exclusions, or specific contexts, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_expression_correlationC
Calculate expression correlation between genes across tissues
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeIds | Yes | Array of GENCODE gene IDs to compare | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool calculates correlation but omits critical details such as the correlation method (e.g., Pearson, Spearman), output format, performance characteristics (e.g., computational intensity, rate limits), or any side effects. This is inadequate for a tool with no annotation support.
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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of gene expression correlation analysis, no annotations, and no output schema, the description is insufficient. It lacks details on behavior, output format, and usage context, which are critical for an agent to effectively invoke this tool. More information is needed to compensate for the missing structured data.
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%, with both parameters clearly documented in the schema (gencodeIds as gene IDs to compare, datasetId as GTEx dataset ID with default). The description adds no additional meaning beyond the schema, such as explaining what 'expression correlation' entails or constraints on gene IDs. Baseline 3 is appropriate given high schema coverage.
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 action ('calculate expression correlation') and the target ('between genes across tissues'), which is specific and informative. However, it does not explicitly differentiate this tool from its many siblings (e.g., get_gene_expression, get_clustered_expression, get_tissue_specific_genes), which would require more detail about scope or methodology to achieve a perfect score.
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 no guidance on when to use this tool versus alternatives. With numerous sibling tools related to gene expression, correlation, and tissue analysis, there is no mention of context, prerequisites, or comparisons (e.g., use this for cross-tissue correlation, not for single-tissue expression). This leaves the agent without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_coordinatesC
Convert between different genomic coordinate systems
| Name | Required | Description | Default |
|---|---|---|---|
| chr | Yes | Chromosome (e.g., chr1, chr2, chrX) | |
| position | Yes | Genomic position to convert | |
| fromBuild | No | Source genome build (default: hg38) | hg38 |
| toBuild | No | Target genome build (default: hg19) | hg19 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the conversion action but doesn't describe what happens during conversion (e.g., liftOver-like mapping, potential data loss), output format, error handling, or performance considerations. For a tool with 4 parameters and no annotation coverage, this is a significant gap in transparency.
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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized for a straightforward conversion tool and front-loads the core functionality, making it easy for an agent to parse quickly.
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 tool's complexity (coordinate conversion with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the conversion outputs (e.g., new coordinates, mapping quality), potential limitations (e.g., regions without direct mapping), or how it integrates with sibling tools. This leaves significant gaps for an agent to use the tool effectively.
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 all parameters with descriptions, enums, and defaults. The description adds no additional parameter semantics beyond implying coordinate conversion involves 'chr' and 'position' inputs. This meets the baseline of 3 when the schema does the heavy lifting, but doesn't compensate with extra context like conversion algorithms or edge cases.
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 tool's purpose as converting between genomic coordinate systems, which is a specific verb+resource combination. It distinguishes itself from sibling tools that focus on analysis, querying, or validation rather than coordinate conversion. However, it doesn't specify what exactly gets converted (e.g., positions, ranges) or mention the default direction, keeping it from a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, limitations, or typical use cases (e.g., for mapping variants between genome builds). With many sibling tools available, this lack of contextual guidance leaves the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clustered_expressionC
Get clustered gene expression data for visualization
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeIds | Yes | Array of GENCODE gene IDs | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't address important behavioral aspects like rate limits, authentication requirements, data freshness, or what format the clustered data takes (heatmap coordinates, hierarchical clustering results, etc.). The 'for visualization' hint is minimal context.
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 a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a tool with two parameters and no complex behavioral requirements, though this conciseness comes at the expense of completeness.
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 tool with no annotations, no output schema, and multiple similar sibling tools, the description is insufficient. It doesn't explain what 'clustered' means operationally, what visualization formats are supported, or how this differs from other expression tools. The agent would struggle to use this tool correctly without additional context.
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 both parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone, with no value added by the description.
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 action ('Get') and resource ('clustered gene expression data'), with the purpose 'for visualization' providing additional context about the output's intended use. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_gene_expression' or 'get_median_gene_expression', which likely provide similar data in different formats.
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 no guidance on when to use this tool versus alternatives. With multiple sibling tools related to gene expression (get_gene_expression, get_median_gene_expression, get_differential_expression), there's no indication of when clustered expression data is preferred over other expression data types or what visualization scenarios this tool supports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataset_infoC
Get information about available GTEx datasets
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | No | Specific dataset ID (optional, returns all if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get information' implies a read-only operation, it doesn't specify whether this requires authentication, what format the information returns in, whether there are rate limits, or if it's a lightweight metadata query versus a computationally intensive operation. The description is too minimal for a tool with no annotation coverage.
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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized for a simple lookup tool and front-loads the essential information.
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 lack of annotations and output schema, the description is incomplete. For a tool in a complex GTEx analysis environment with 24 sibling tools, it should provide more context about what 'dataset information' includes, how it relates to other tools, and what format the output takes. The current description leaves too many questions unanswered for effective tool selection.
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 schema description coverage is 100%, with the single parameter clearly documented as optional and returning all datasets if not provided. The description adds no additional parameter information beyond what's in the schema, but since the schema does the heavy lifting, the baseline score of 3 is appropriate.
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 tool's purpose with a specific verb ('Get') and resource ('information about available GTEx datasets'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'get_tissue_info' or 'get_sample_info', which also retrieve information about specific GTEx resources, leaving room for potential confusion.
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 no guidance on when to use this tool versus alternatives. With many sibling tools that retrieve various types of GTEx information (e.g., get_tissue_info, get_sample_info, get_gene_info), there's no indication of what distinguishes this dataset-focused tool from others, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_differential_expressionC
Get differential gene expression between tissue groups
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| comparisonGroups | Yes | Array of tissue groups to compare | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, it doesn't clarify whether this is computationally intensive, has rate limits, requires specific permissions, or what the output format looks like (e.g., statistical values like p-values, fold changes). For a tool performing differential analysis with no annotation coverage, this is a significant gap.
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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of differential expression analysis (a statistical comparison), no annotations, and no output schema, the description is incomplete. It doesn't address what the tool returns (e.g., log fold changes, p-values), potential limitations, or how to interpret results, leaving significant gaps for an AI agent to use it effectively.
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 all three parameters thoroughly. The description adds no additional meaning beyond what's in the schemaāit doesn't explain how 'comparisonGroups' should be formatted (e.g., pairwise comparisons) or provide examples beyond the basic scope. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Get differential gene expression') and target resource ('between tissue groups'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_gene_expression' or 'get_median_gene_expression', which also deal with gene expression data but with different analytical purposes.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to gene expression (e.g., 'get_gene_expression', 'get_median_gene_expression', 'get_clustered_expression'), there's no indication of the specific scenarios where differential expression analysis is preferred over other expression-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eqtl_genesC
Get genes with eQTL associations for a genomic region
| Name | Required | Description | Default |
|---|---|---|---|
| chr | Yes | Chromosome (e.g., chr1, chr2, chrX) | |
| start | Yes | Start position (1-based) | |
| end | Yes | End position (1-based) | |
| tissueSiteDetailId | No | Tissue site detail ID (optional, for tissue-specific results) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving genes with eQTL associations but doesn't cover critical aspects like data source (GTEx implied by schema but not stated), rate limits, authentication needs, or output format (e.g., list of genes, error handling). For a tool with no annotations, this is a significant gap, warranting a score of 2.
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 a single, efficient sentence: 'Get genes with eQTL associations for a genomic region.' It is front-loaded with the core purpose, has zero waste, and is appropriately sized for the tool's complexity. Every word earns its place, making it highly concise and well-structured.
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 tool's complexity (retrieving eQTL-associated genes with genomic coordinates) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the output includes (e.g., gene names, eQTL details), data sources, or potential limitations. For a tool with 5 parameters and no structured output info, more context is needed, resulting in a score of 2.
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 input schema has 100% description coverage, providing clear details for all parameters (e.g., 'chr' as chromosome, 'start' as 1-based position). The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between parameters or usage examples. With high schema coverage, the baseline score is 3, as the description doesn't compensate but doesn't need to heavily.
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 tool's purpose: 'Get genes with eQTL associations for a genomic region.' It specifies the verb ('Get'), resource ('genes with eQTL associations'), and scope ('for a genomic region'), making it easy to understand. However, it doesn't explicitly differentiate from siblings like 'get_single_tissue_eqtls' or 'get_multi_tissue_eqtls,' which limits its score to 4.
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 no guidance on when to use this tool versus alternatives. With siblings like 'get_single_tissue_eqtls' and 'get_multi_tissue_eqtls' available, it fails to specify scenarios or exclusions, such as whether this tool is for general eQTL gene retrieval or if it's preferred over others for specific use cases. This lack of context results in a score of 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_expressionC
Get gene expression data across tissues for a specific gene
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving data but lacks details on permissions, rate limits, data format, or potential side effects. For a data-fetching tool, this leaves significant gaps in understanding how it behaves in practice.
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 a single, clear sentence that efficiently conveys the core functionality without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
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 complexity of gene expression data and the lack of annotations and output schema, the description is insufficient. It doesn't explain what the returned data looks like, how tissues are defined, or any limitations, leaving the agent with incomplete context for effective tool use.
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 description adds minimal parameter semantics beyond the schema, which has 100% coverage. It implies the tool uses a gene identifier and dataset, but doesn't elaborate on tissue scope or data granularity. Since the schema fully documents parameters, the baseline score of 3 is appropriate, though the description could have provided more context.
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 action ('Get') and resource ('gene expression data across tissues for a specific gene'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from similar sibling tools like 'get_median_gene_expression' or 'get_clustered_expression', which might offer related but distinct functionality.
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 no guidance on when to use this tool versus alternatives like 'get_median_gene_expression' or 'get_clustered_expression', nor does it mention prerequisites or context for usage. It simply states what the tool does without indicating appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_infoC
Get detailed information about a specific gene
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | No | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| geneSymbol | No | Gene symbol (alternative to gencodeId) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' but doesn't specify what that includes (e.g., genomic coordinates, functional annotations), whether it's a read-only operation, or any limitations like rate limits or authentication needs, leaving significant gaps.
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 a single, front-loaded sentence that directly states the tool's purpose without unnecessary words. It efficiently conveys the core function, earning full marks for conciseness and structure.
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 complexity of gene information retrieval, lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, potential response formats, or how to handle ambiguous inputs, making it insufficient for reliable agent use.
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%, with clear documentation of 'gencodeId' and 'geneSymbol' parameters. The description adds no additional parameter semantics beyond what the schema provides, such as usage examples or constraints, so it meets the baseline for adequate but unenhanced coverage.
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 ('Get') and resource ('detailed information about a specific gene'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_gene_expression' or 'search_genes', which could provide overlapping or related information about genes.
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 no guidance on when to use this tool versus alternatives. With siblings like 'search_genes' (for broader queries) and 'get_gene_expression' (for expression data), the agent must infer usage context without explicit direction, leading to potential confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_ontologyC
Get Gene Ontology annotations for a gene
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| ontologyType | No | GO ontology type (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It doesn't indicate whether this is a read-only operation, what format the annotations return, whether there are rate limits, authentication requirements, or any error conditions. For a tool with no annotation coverage, this leaves significant behavioral questions unanswered.
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 a single, focused sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a straightforward lookup tool and gets directly to the point with zero wasted verbiage.
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 lack of annotations and output schema, the description should provide more context about what the tool returns and how it behaves. For a tool that presumably returns structured GO annotation data, the description doesn't indicate the format, scope, or limitations of the results. This leaves significant gaps in understanding the tool's complete functionality.
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 schema has 100% description coverage, so parameters are well-documented in the structured fields. The description adds no additional parameter information beyond what's in the schema (GENCODE ID requirement and optional ontology type with enum values). This meets the baseline expectation when schema coverage is complete.
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 action ('Get') and target resource ('Gene Ontology annotations for a gene'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its many siblings (like get_gene_info, get_gene_expression, etc.), which would require mentioning what specifically distinguishes GO annotations from other gene-related data.
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 no guidance on when to use this tool versus alternatives. With 24 sibling tools including several other gene-focused tools (get_gene_info, get_gene_expression, etc.), there's no indication of what makes GO annotations distinct or when they're preferred over other gene data sources. No context about prerequisites or limitations is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_median_gene_expressionC
Get median gene expression levels across tissues
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information about response format, error conditions, rate limits, authentication needs, or whether it's read-only (though implied by 'Get'). This is inadequate for a tool with zero annotation coverage.
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 a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return values look like (e.g., tissue names with expression values), error handling, or behavioral constraints. Given the complexity of gene expression data and lack of structured metadata, more context is needed.
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 description adds no parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions for both parameters. The baseline score of 3 reflects that the schema adequately documents parameters, so the description doesn't need to compensate.
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 action ('Get median gene expression levels') and resource ('across tissues'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'get_gene_expression' by specifying 'median' aggregation, though it doesn't explicitly contrast with all similar tools.
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 no guidance on when to use this tool versus alternatives like 'get_gene_expression' or 'get_clustered_expression'. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_multi_tissue_eqtlsC
Get multi-tissue eQTL meta-analysis results
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication needs, data freshness, or what the output format looks like (especially critical without an output schema).
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'multi-tissue eQTL meta-analysis results' entail, their format, or how they differ from single-tissue results. Given the complexity implied by the tool name and lack of structured data, more context is needed.
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 both parameters thoroughly. The description adds no additional parameter context beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter semantics.
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 action ('Get') and resource ('multi-tissue eQTL meta-analysis results'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from its closest sibling 'get_single_tissue_eqtls' beyond the 'multi-tissue' qualifier, which is implied but not contrasted.
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?
No guidance is provided on when to use this tool versus alternatives like 'get_single_tissue_eqtls' or 'get_eqtl_genes'. The description lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_infoB
Get GTEx sample metadata and demographics
| Name | Required | Description | Default |
|---|---|---|---|
| tissueSiteDetailId | No | Tissue site detail ID (optional, for tissue-specific samples) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a 'Get' operation, implying read-only, but doesn't clarify aspects like rate limits, authentication needs, or what happens if parameters are omitted. For a tool with no annotations, this leaves significant behavioral gaps.
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 a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly.
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 tool has no annotations and no output schema, the description is minimal but covers the basic purpose. However, for a tool that likely returns complex metadata, more context on output format or behavior would be helpful. It's adequate but leaves room for improvement in completeness.
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 input schema has 100% description coverage, so the schema already documents both parameters thoroughly. The description doesn't add any semantic details beyond what's in the schema, such as explaining the relationship between tissueSiteDetailId and datasetId or typical use cases. Baseline 3 is appropriate when schema coverage is high.
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 action ('Get') and the resource ('GTEx sample metadata and demographics'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_subject_phenotypes' or 'get_tissue_info', which might overlap in retrieving sample-related data.
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 no guidance on when to use this tool versus alternatives. It doesn't mention context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_single_tissue_eqtlsB
Get single-tissue eQTL results for a gene
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| tissueSiteDetailId | Yes | Tissue site detail ID (e.g., Muscle_Skeletal, Brain_Cortex) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like (e.g., JSON structure, pagination). For a tool with zero annotation coverage, this is insufficient.
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 a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate but has clear gaps. It states the purpose but lacks behavioral context, usage guidance, and output information. With no annotations to compensate, the description should do more to be complete.
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 all parameters thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain relationships between parameters or provide usage examples). Baseline 3 is appropriate when schema does the heavy lifting.
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 action ('Get') and resource ('single-tissue eQTL results for a gene'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling tool 'get_multi_tissue_eqtls', which would have helped distinguish scope. The description is specific but misses sibling comparison.
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?
No guidance is provided on when to use this tool versus alternatives like 'get_multi_tissue_eqtls' or other eQTL-related tools. The description lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sqtl_resultsC
Get splicing QTL (sQTL) results for a gene
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| tissueSiteDetailId | No | Tissue site detail ID (optional, for tissue-specific results) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on permissions, rate limits, data format, or any constraints beyond the basic function, which is insufficient for a tool with no annotation coverage.
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 a single, clear sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficiently conveys the core function, making it highly concise and well-structured.
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 no annotations and no output schema, the description is incomplete. It does not explain return values, error handling, or behavioral traits, which are crucial for a tool that retrieves genetic data. This leaves significant gaps in understanding how to use the tool effectively.
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 fully documents all parameters. The description does not add any semantic details beyond what the schema provides, such as examples or usage context for parameters, meeting the baseline for high schema coverage.
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 action ('Get') and resource ('splicing QTL results for a gene'), making the purpose understandable. However, it does not differentiate from sibling tools like 'get_single_tissue_eqtls' or 'get_multi_tissue_eqtls', which also retrieve QTL-related data, so it misses full sibling distinction.
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 no guidance on when to use this tool versus alternatives. With sibling tools like 'get_single_tissue_eqtls' and 'get_multi_tissue_eqtls' available, there is no indication of when this specific sQTL tool is preferred, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subject_phenotypesC
Get subject phenotype data and demographics
| Name | Required | Description | Default |
|---|---|---|---|
| subjectId | No | GTEx subject ID (optional, for specific subject) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data but doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, or what the output format looks like. For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Get subject phenotype data and demographics') directly contributes to understanding the tool's function, making it highly concise and well-structured.
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 complexity of retrieving subject data in a bioinformatics context, the description is incomplete. With no annotations and no output schema, it fails to explain what 'phenotype data and demographics' includes, the data format, or any limitations. This leaves the agent with insufficient context for effective use.
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 input schema has 100% description coverage, with clear documentation for both parameters (subjectId and datasetId). The description adds no additional parameter semantics beyond what the schema provides, such as explaining relationships between parameters or usage examples, so it meets the baseline for high schema coverage.
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 tool's purpose with a specific verb ('Get') and resource ('subject phenotype data and demographics'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'get_sample_info' or 'get_dataset_info' that might also retrieve subject-related data, so it doesn't fully distinguish its scope.
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 no guidance on when to use this tool versus alternatives. With sibling tools like 'get_sample_info' that might overlap, there's no indication of prerequisites, context, or exclusions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tissue_infoC
Get information about GTEx tissues and sample counts
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving information, implying a read-only operation, but lacks details on permissions, rate limits, error handling, or output format. For a tool with no annotations, this is a significant gap in transparency.
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 a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.
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 complexity of retrieving biological data and the lack of annotations and output schema, the description is incomplete. It doesn't explain what information is returned (e.g., tissue names, sample counts, metadata), potential limitations, or how it integrates with sibling tools, leaving gaps for effective tool invocation.
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 input schema has 100% description coverage, with one parameter ('datasetId') fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 action ('Get information about') and the resource ('GTEx tissues and sample counts'), making the purpose understandable. However, it doesn't differentiate this tool from siblings like 'get_dataset_info' or 'get_sample_info', which might provide overlapping or related information about datasets or samples, leaving some ambiguity about its specific scope.
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 no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'get_dataset_info', 'get_sample_info', 'get_tissue_specific_genes'), there is no indication of context, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tissue_specific_genesC
Get genes with tissue-specific expression patterns
| Name | Required | Description | Default |
|---|---|---|---|
| tissueSiteDetailId | Yes | Tissue site detail ID (e.g., Muscle_Skeletal, Brain_Cortex) | |
| selectionCriteria | No | Selection criteria for tissue specificity (default: highestInGroup) | highestInGroup |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information on output format, data volume, performance characteristics, error conditions, or whether it's a read-only operation (implied but not stated). This is inadequate for a tool with 3 parameters and no output schema.
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 a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with clear parameters documented elsewhere, though it could benefit from additional context.
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 tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what constitutes 'tissue-specific expression,' what the output looks like, or how results are formatted. Given the complexity of biological data analysis and lack of structured metadata, more context is needed for effective use.
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 description adds no parameter information beyond what's already in the schema (which has 100% coverage). It doesn't explain what 'tissue-specific expression patterns' means in practice, how selection criteria affect results, or provide examples of tissue IDs. The baseline score of 3 reflects adequate schema coverage but no added value from the description.
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 tool's purpose with a specific verb ('Get') and resource ('genes with tissue-specific expression patterns'). It distinguishes from siblings like get_gene_expression (general expression) and get_top_expressed_genes (top expressed regardless of tissue specificity), though it doesn't explicitly name these alternatives.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for tissue-specific analysis, or compare with siblings like get_gene_expression or get_top_expressed_genes that might overlap in functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_expressed_genesC
Get top expressed genes in a specific tissue
| Name | Required | Description | Default |
|---|---|---|---|
| tissueSiteDetailId | Yes | Tissue site detail ID (e.g., Muscle_Skeletal, Brain_Cortex) | |
| filterMtGenes | No | Filter out mitochondrial genes (default: true) | |
| sortBy | No | Sort criteria (default: median) | median |
| sortDirection | No | Sort direction (default: desc) | desc |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get') but doesn't disclose rate limits, authentication needs, data freshness, or what 'top' means (e.g., top N genes, threshold-based). The lack of output schema exacerbates this, as return format and pagination are unspecified.
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 a single, front-loaded sentence with zero wasted words. It immediately conveys the core functionality without redundancy or fluff. Every word earns its place, making it highly efficient for quick comprehension.
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 tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't address key contextual gaps: what constitutes 'top' (e.g., count, threshold), output format, error conditions, or dependencies on other tools like 'get_tissue_info' for valid tissue IDs. The agent lacks sufficient information to use this tool effectively beyond basic parameter passing.
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 parameters are well-documented in the schema itself. The description adds no additional parameter context beyond implying tissue specificity. It doesn't explain relationships between parameters (e.g., how 'sortBy' and 'sortDirection' interact with 'top' selection) or provide examples beyond the schema's enum values.
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 action ('Get') and target resource ('top expressed genes in a specific tissue'), making the purpose immediately understandable. It distinguishes itself from siblings like 'get_gene_expression' or 'get_median_gene_expression' by focusing on ranking genes by expression level rather than raw expression values. However, it doesn't explicitly contrast with all similar tools like 'get_tissue_specific_genes'.
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 no guidance on when to use this tool versus alternatives like 'get_gene_expression' or 'get_tissue_specific_genes'. It doesn't mention prerequisites (e.g., needing a valid tissue ID), exclusions, or typical use cases. The agent must infer usage solely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variantsC
Get genetic variants in a genomic region
| Name | Required | Description | Default |
|---|---|---|---|
| chr | Yes | Chromosome (e.g., chr1, chr2, chrX) | |
| start | Yes | Start position (1-based) | |
| end | Yes | End position (1-based) | |
| datasetId | No | GTEx dataset ID (default: gtex_v8) | gtex_v8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't describe any behavioral traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the return format looks like (e.g., list of variants, JSON structure). This leaves significant gaps for an AI agent to understand how to handle the tool effectively.
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 a single, efficient sentence that directly states the tool's purpose without any unnecessary words or fluff. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of genetic data tools and the lack of annotations and output schema, the description is insufficient. It doesn't explain what 'genetic variants' entail (e.g., SNPs, indels), how results are returned, or any limitations (e.g., region size constraints). For a tool with 4 parameters and no structured output information, more context is needed to be complete.
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 input schema has 100% description coverage, providing clear details for all parameters (chr, start, end, datasetId). The description adds no additional meaning beyond what's in the schema, such as explaining the relationship between parameters or usage nuances. According to the rules, with high schema coverage, the baseline is 3, which is appropriate here.
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 tool's purpose with a specific verb ('Get') and resource ('genetic variants in a genomic region'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_single_tissue_eqtls' or 'validate_variant_id', which might also involve genetic variants, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives. With many sibling tools related to genetics and variants, such as 'get_single_tissue_eqtls' or 'validate_variant_id', there's no indication of context, exclusions, or prerequisites for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_genesC
Search for genes by symbol, name, or description
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (gene symbol, name, or description) | |
| species | No | Species (default: human) | human |
| page | No | Page number for pagination (default: 0) | |
| pageSize | No | Number of results per page (default: 250) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions searching but doesn't describe key behaviors: whether it's a read-only operation, how results are returned (e.g., pagination details beyond schema defaults), rate limits, or authentication needs. The description is minimal and lacks operational context.
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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple search tool. Every word earns its place without redundancy.
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 no annotations and no output schema, the description is incomplete. It doesn't explain what the search returns (e.g., gene lists, metadata), how pagination works in practice, or error conditions. For a 4-parameter tool with no structured output info, more context is needed to guide effective use.
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 fully documents all parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain query syntax or result formats). With high schema coverage, the baseline is 3, as the description doesn't compensate but doesn't need to.
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 tool's purpose: 'Search for genes by symbol, name, or description'. It specifies the verb ('Search') and resource ('genes'), and indicates the searchable fields. However, it doesn't explicitly differentiate from sibling tools like 'search_transcripts' or 'validate_gene_id', which would require a 5.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_transcripts' for transcript searches or 'validate_gene_id' for ID validation, nor does it specify prerequisites or exclusions. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transcriptsC
Search for gene transcripts and isoforms
| Name | Required | Description | Default |
|---|---|---|---|
| gencodeId | Yes | GENCODE gene ID (e.g., ENSG00000223972.5) | |
| transcriptType | No | Transcript type filter (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It doesn't indicate whether this is a read-only operation, what format results return, if there are rate limits, authentication requirements, or pagination considerations. For a search tool with zero annotation coverage, this leaves significant behavioral unknowns.
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 extremely concise at just 5 words, front-loading the essential purpose without any wasted language. Every word earns its place, making it easy to parse while conveying the core functionality.
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 lack of annotations and output schema, the description is insufficiently complete. For a search tool that presumably returns transcript/isoform data, there's no indication of what information is returned, result format, or any behavioral constraints. The description doesn't compensate for the missing structured metadata that would help an agent understand how to properly use 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?
Schema description coverage is 100%, so the schema already fully documents both parameters (gencodeId and transcriptType). The description adds no additional parameter context beyond what's in the schema - no examples of search patterns, no explanation of what 'search' entails versus exact matching, and no details about result filtering. Baseline 3 is appropriate when schema does all the parameter documentation.
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 ('search') and resource ('gene transcripts and isoforms'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'search_genes' or 'get_gene_info' - all involve gene-related data retrieval, so the specific focus on transcripts/isoforms versus other gene aspects isn't contrasted.
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 no guidance on when to use this tool versus alternatives. With sibling tools like 'search_genes', 'get_gene_info', and 'get_gene_expression' available, there's no indication whether this tool is for transcript-level details versus gene-level information, or when transcript searching is preferable to other gene-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_gene_idC
Validate and normalize gene identifiers
| Name | Required | Description | Default |
|---|---|---|---|
| geneId | Yes | Gene ID to validate (GENCODE ID or gene symbol) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool validates and normalizes, implying it might return standardized identifiers, but doesn't describe what validation entails (e.g., checks for format, existence, or mapping), what normalization does (e.g., converts to a standard format), or any error handling. This is inadequate for a tool with potential behavioral complexity.
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 extremely concise and front-loaded with a single, clear sentence: 'Validate and normalize gene identifiers'. There is no wasted text, and it efficiently communicates the core purpose without unnecessary elaboration.
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 tool's purpose (validation and normalization), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what validation checks are performed, what normalization outputs look like, or any behavioral traits (e.g., whether it's idempotent or has side effects). For a tool that could involve complex logic, this leaves significant gaps.
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 schema description coverage is 100%, with the parameter 'geneId' fully documented in the schema as 'Gene ID to validate (GENCODE ID or gene symbol)'. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without extra value.
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 tool's purpose: 'Validate and normalize gene identifiers'. It specifies the action (validate and normalize) and the resource (gene identifiers). However, it doesn't explicitly differentiate from sibling tools like 'validate_variant_id' or 'search_genes', which reduces it from a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention when validation is needed (e.g., before analysis), what makes it different from 'search_genes' or 'validate_variant_id', or any prerequisites. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_variant_idC
Validate variant identifiers and genomic coordinates
| Name | Required | Description | Default |
|---|---|---|---|
| variantId | No | Variant ID to validate (rs number or variant ID) | |
| chr | No | Chromosome (alternative validation method) | |
| position | No | Genomic position (alternative validation method) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but reveals nothing about how it behaves: no information about validation criteria, error handling, output format, or whether it's a read-only operation. For a validation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 maximally concise - a single 6-word phrase that captures the essence. There's no wasted language, repetition, or unnecessary elaboration. It's appropriately sized for a straightforward validation tool.
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 tool's purpose (validation), lack of annotations, and no output schema, the description is insufficiently complete. It doesn't explain what constitutes valid input, what validation checks are performed, what the output looks like, or error conditions. For a tool that presumably returns validation results, the description leaves too much undefined.
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 all three parameters. The description adds no parameter-specific information beyond what's in the schema. It mentions 'variant identifiers and genomic coordinates' which aligns with the parameters, but provides no additional syntax, format requirements, or usage patterns. Baseline 3 is appropriate when the schema does the heavy lifting.
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 tool's purpose: 'Validate variant identifiers and genomic coordinates' - a specific verb ('validate') applied to specific resources ('variant identifiers and genomic coordinates'). It distinguishes from sibling 'validate_gene_id' by focusing on variants rather than genes. However, it doesn't specify what validation entails (format checking, existence verification, etc.), keeping it from a perfect 5.
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when validation is needed, or how it relates to sibling tools like 'get_variants' or 'convert_coordinates'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes targeting specific data types or analyses (e.g., get_gene_expression vs. get_eqtl_genes vs. get_sample_info), with clear boundaries. However, some overlap exists between get_gene_info and search_genes, and between get_subject_phenotypes and get_sample_info, which could cause minor confusion.
Tool names follow a highly consistent verb_noun pattern throughout, primarily using 'get_' for data retrieval, 'calculate_' for computations, and 'analyze_'/'search_'/'validate_' for other operations. All names use snake_case uniformly, making them predictable and readable.
With 25 tools, the count is borderline high for a single server, leaning toward heavy but not extreme. This is reasonable given the broad scope of GTEx data analysis, but it may overwhelm agents with many similar-sounding retrieval tools.
The tool set provides comprehensive coverage for GTEx data analysis, including data retrieval (genes, variants, expression, eQTLs, samples), computations (correlation, dynamic eQTLs), searches, and validations. It supports full workflows from data access to analysis without obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
GTEx ā Genotype-Tissue Expression human gene-expression atlas
Connect AI clients to biomedical data and tools.
Broad Institute gnomAD genomic variant database (GraphQL)
63 tools for Apple Health, Fitbit, Oura & Health Connect data in Claude, ChatGPT, Grok & Mistral.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to query genetic variant data, gene constraints, and population genetics information from the gnomAD (Genome Aggregation Database) through its GraphQL API. Supports searching for genes and variants, retrieving constraint scores, analyzing population frequencies, and accessing genomic coverage data.910
- AlicenseAqualityDmaintenanceEnables AI agents to conversationally interact with genomics research networks for data analysis and discovery across multiple Omics AI Explorer platforms. It provides tools for exploring data collections, examining table schemas, and executing SQL queries against datasets like Viral AI and Neuroscience AI.61MIT
- AlicenseCqualityFmaintenanceProvides AI-powered access to major biological databases for GWAS and bioinformatics research. Enables natural language queries for protein, gene, variant, pathway, and drug discovery analysis.441MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to query gene annotations, expression, pathways, variants, and more via the MyGene.info API, supporting batch operations and multiple biological data sources.26MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Augmented-Nature/GTEx-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server