Skip to main content
Glama
biocontext-ai

nucleotide_archive_mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level: DEBUG, INFO, WARNING, ERROR, CRITICAL (default: INFO)INFO
ENA_MAX_RPSNoRate limiting in requests per second (default: 10.0)10.0
ENA_TIMEOUTNoRequest timeout in seconds (default: 30.0)30.0
ENA_SEARCH_LIMITNoDefault search result limit (default: 20)20
ENA_PORTAL_API_BASENoOverride ENA portal API base URL (default: https://www.ebi.ac.uk/ena/portal/api)https://www.ebi.ac.uk/ena/portal/api
ENA_BROWSER_API_BASENoOverride ENA browser API base URL (default: https://www.ebi.ac.uk/ena/browser/api)https://www.ebi.ac.uk/ena/browser/api

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_download_urlsA

Get FTP download URLs for all sequencing data files in a study.

Usage Tips

Call after search_rna_studies() to get download URLs for selected studies. Returns FTP URLs that can be used with wget/curl or passed to generate_download_script().

Returns

dict Dictionary containing: - study_accession: Queried study - file_count: Total number of files - total_size_gb: Total download size in GB - runs: List of per-run file info, each with: - run_accession: Run identifier - file_count: Files in this run (2 for paired-end) - size_gb: Run size in GB - urls: List of FTP URLs (ftp://...) - md5_checksums: List of MD5 hashes (if include_md5=True) - message: Info message if no files found - error: Error message if any

generate_download_scriptA

Generate executable bash script to download all study data files.

Usage Tips

After identifying interesting studies, generate a download script for the user to execute. Returns script content and optionally saves to file. Script includes MD5 verification commands. Typical workflow: search_rna_studies() → get_study_details() → generate_download_script().

Returns

dict Dictionary containing: - study_accession: Queried study - script_content: Complete bash script ready to execute - file_count: Number of files the script will download - total_size_gb: Total download size in GB - script_path: Save location (if output_path provided) - message: Success message (if saved to file) - error: Error message if any

get_available_fieldsA

Get available search and return fields for an ENA result type.

Usage Tips

Use to discover what fields you can search on and what metadata fields are available for a given data type in ENA. Helpful for building custom queries with build_custom_query().

Returns

dict Dictionary containing: - result_type: The queried result type - search_fields: List of searchable fields with id, description, type (if requested) - search_fields_count: Number of search fields (if requested) - return_fields: List of returnable fields with id, description, type (if requested) - return_fields_count: Number of return fields (if requested) - error: Error message if any

get_result_typesA

Get all available result types (data categories) in ENA.

Usage Tips

Use to discover what types of data you can search for in the European Nucleotide Archive. Most users will use read_study or study for RNA-seq searches.

Returns

dict Dictionary containing: - count: Number of available result types - result_types: List of result types with id, description, primaryAccessionType, recordCount, lastUpdated - recommended_for_rna_studies: Recommended types for RNA studies - error: Error message if any

build_custom_queryA

Build a custom ENA query from field conditions.

Usage Tips

Advanced tool for constructing complex queries by combining multiple field conditions with logical operators. Use for precise filtering beyond what search_rna_studies() offers. Call get_available_fields() first to discover searchable field names.

Returns

dict Dictionary containing: - query: The constructed ENA query string - field_count: Number of conditions used - operator: Logical operator used - example_usage: How to use this query with other tools - error: Error message if any

find_studies_by_publicationA

Find ENA studies by PubMed ID (API limitation - returns error with workaround).

Usage Tips

ENA Portal API doesn't expose pubmed_id as a searchable field. This tool documents the limitation for LLM awareness. Instead: use search_studies_by_keywords() with publication terms, then call get_study_details() to check the publications array for matching PubMed IDs.

Returns

dict Dictionary containing: - error: API limitation message with recommended workflow - pubmed_id: Provided PubMed ID - count: Always 0 - studies: Always empty list

search_studies_by_keywordsA

Search for studies using flexible keyword matching across titles and descriptions.

When to use this tool: Use this for broad exploratory searches when search_rna_studies() is too restrictive. Good for:

  • Searching by biological processes, pathways, or molecular mechanisms

  • Finding studies about specific genes, proteins, or complexes

  • Searching by methodology when you don't know the specific disease

  • General exploratory searches across many study types

Important notes:

  • Searches both study-level titles AND sample-level descriptions

  • Multi-word keywords are split: "breast cancer" searches for "breast" AND "cancer"

  • May return studies where only one sample mentions your keywords

  • Results can be broader than search_rna_studies() disease/tissue filters

Search tips:

  • Try keyword variations and abbreviations if no results (e.g., "immune response" vs "immunity")

  • Try broader or narrower terms (e.g., "transcription" vs "transcription factor binding")

  • Consider searching multiple organisms if limited results in one species

  • Use organism filter to narrow down results to specific species

Returns

dict Search results containing: - count: How many total studies match - returned: How many studies in this response - keywords_used: What keywords were searched - organism_filter: What organism filter was applied (if any) - studies: List of matching studies with accession, title, organism, and other metadata

search_rna_studiesA

Search for RNA sequencing studies by disease, tissue, and organism.

When to use this tool: Primary search tool for finding RNA-seq datasets when you know the disease/condition OR tissue/cell-type you're interested in. Use search_studies_by_keywords() for broader searches by biological processes or methodology.

Default behavior: Searches across ALL organisms unless you specify one. This helps find relevant datasets across multiple species (human, mouse, rat, etc.).

Search tips:

  • Try different keyword variations if no results (e.g., "ALS" vs "amyotrophic lateral sclerosis")

  • Try broader terms (e.g., "neurodegeneration" instead of specific disease)

  • Search all organisms first (organism=None), then filter to specific species if needed

  • Use tissue parameter to narrow results to specific anatomical sites

Returns

dict Search results containing: - count: How many total studies match your search - returned: How many studies are in this response - studies: List of matching studies with titles, sample counts, and publication info - query_used: The exact search query that was executed - filters: What filters were applied to your search

list_library_typesA

List all available library strategies and sources for ENA searches.

Usage Tips

Use to discover available library types for filtering in search_rna_studies(). Returns all controlled vocabulary values for library_strategy and library_source. Call this before using the advanced library_strategies or library_sources parameters in search_rna_studies().

Returns

dict Dictionary with keys: - library_strategies: List of all strategies with "value" and "name" - library_sources: List of all sources with "value" and "name" - rna_strategies: Filtered list of RNA-related strategies only - summary: Counts of available options - usage_hint: How to use values in search_rna_studies()

get_study_detailsA

Get comprehensive metadata for a specific ENA study including publications.

Usage Tips

Call after search_rna_studies() to verify a study matches your research needs before downloading. Returns detailed study description, publication links, and institutional metadata. Use this to check publications array for PubMed IDs.

Returns

dict Dictionary containing: - accession: Study accession - title: Brief study title - description: Detailed study description (full abstract/methods) - publications: List of publications with pubmed_id and source - center_name: Submitting institution - alias: Submitter's study name (often GSE accession for GEO) - data_type: Usually "STUDY" - status: "public" or "private" - first_public: Date made public (YYYY-MM-DD) - last_updated: Last modification date (YYYY-MM-DD) - file_report_links: Direct API links for file reports - error: Error message if study not found or if request fails

get_study_publicationsA

Get detailed publication information for a study from ENA and Europe PMC.

Usage Tips

Call after search_rna_studies() to get full publication metadata including author ORCID IDs, affiliations, citation counts, and full-text links. Enriches basic publication info from get_study_details() with complete bibliographic data from Europe PMC.

Returns

dict Dictionary containing: - accession: Study accession - publication_count: Number of publications found - publications: List of detailed publication objects, each with: - pubmed_id: PubMed ID - pmcid: PubMed Central ID (if available) - doi: Digital Object Identifier (if available) - title: Publication title - authors: List of author names - first_author: First author name - last_author: Last author name - author_details: Detailed author info with ORCID and affiliations - journal: Journal name - journal_issn: Journal ISSN - publication_year: Year published - publication_date: Full publication date - abstract: Publication abstract - citation_count: Times cited - is_open_access: Whether open access - in_epmc: Whether in Europe PMC - in_pmc: Whether in PubMed Central - has_pdf: Whether PDF available - full_text_urls: Available full text links - error: Error message if any

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/biocontext-ai/nucleotide_archive_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server