tooluniverse package¶
- class tooluniverse.ToolUniverse[source]¶
Bases:
objectA comprehensive tool management system for loading, organizing, and executing various scientific and data tools.
The ToolUniverse class provides a centralized interface for managing different types of tools including GraphQL tools, RESTful APIs, MCP clients, and specialized scientific tools. It handles tool loading, filtering, caching, and execution.
- MAX_TOOL_NAME_LENGTH = 45¶
- __init__(tool_files={'ChEMBL': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/chembl_tools.json', 'EFO': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/efo_tools.json', 'Enrichr': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/enrichr_tools.json', 'EuropePMC': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/europe_pmc_tools.json', 'HumanBase': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/humanbase_tools.json', 'OpenAlex': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openalex_tools.json', 'ada_aha_nccn': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ada_aha_nccn_tools.json', 'admetai': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/admetai_tools.json', 'adverse_event': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/adverse_event_tools.json', 'agents': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/agentic_tools.json', 'allen_brain': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/allen_brain_tools.json', 'alliance_genome': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/alliance_genome_tools.json', 'alphafold': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/alphafold_tools.json', 'alphamissense': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/alphamissense_tools.json', 'anaconda': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/anaconda_tools.json', 'arrayexpress': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/arrayexpress_tools.json', 'artic': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/artic_tools.json', 'arxiv': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/arxiv_tools.json', 'bgee': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bgee_tools.json', 'bigg_models': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bigg_models_tools.json', 'bindingdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bindingdb_tools.json', 'bioconductor': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bioconductor_tools.json', 'biogrid': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biogrid_tools.json', 'bioimage_archive': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bioimage_archive_tools.json', 'biomodels_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biomodels_tools.json', 'bioportal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bioportal_tools.json', 'biorxiv': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biorxiv_tools.json', 'biorxiv_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biorxiv_ext_tools.json', 'biosamples': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biosamples_tools.json', 'biostudies': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biostudies_tools.json', 'biothings': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biothings_tools.json', 'biotools_registry': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/biotools_registry_tools.json', 'blast': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/blast_tools.json', 'bmrb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bmrb_tools.json', 'brenda': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/brenda_tools.json', 'bvbrc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/bvbrc_tools.json', 'cadd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cadd_tools.json', 'cath': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cath_tools.json', 'cbioportal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cbioportal_tools.json', 'cdc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cdc_tools.json', 'ceda': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ceda_tools.json', 'cellosaurus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cellosaurus_tools.json', 'cellpainting': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cellpainting_tools.json', 'cellxgene_census': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cellxgene_census_tools.json', 'cellxgene_discovery': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cellxgene_discovery_tools.json', 'channelsdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/channelsdb_tools.json', 'chebi': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/chebi_tools.json', 'chem_compute': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/chem_compute_tools.json', 'chipatlas': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/chipatlas_tools.json', 'civic': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/civic_tools.json', 'clingen': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clingen_tools.json', 'clingen_ar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clingen_ar_tools.json', 'clingen_dosage': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clingen_dosage_api_tools.json', 'clinical_guidelines': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clinical_guidelines_tools.json', 'clinical_trials': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clinicaltrials_gov_tools.json', 'clinvar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clinvar_tools.json', 'clue': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/clue_tools.json', 'cod_crystal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cod_crystal_tools.json', 'col': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/col_tools.json', 'compact_mode': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/compact_mode_tools.json', 'complex_portal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/complex_portal_tools.json', 'compose': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/compose_tools.json', 'core': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/core_tools.json', 'cosmic': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cosmic_tools.json', 'cpic': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cpic_tools.json', 'cran': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/cran_tools.json', 'crossref': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/crossref_tools.json', 'ctd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ctd_tools.json', 'dailymed': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dailymed_tools.json', 'datacite': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/datacite_tools.json', 'dataone': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dataone_tools.json', 'dataset': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dataset_tools.json', 'dataverse': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dataverse_tools.json', 'dbfetch': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dbfetch_tools.json', 'dblp': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dblp_tools.json', 'dbpedia': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dbpedia_tools.json', 'dbsnp': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dbsnp_tools.json', 'deepgo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/deepgo_tools.json', 'depmap': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/depmap_tools.json', 'dfam': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dfam_tools.json', 'dgidb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dgidb_tools.json', 'disease_ontology': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/disease_ontology_tools.json', 'disease_sh_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/disease_sh_ext_tools.json', 'disease_target_score': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/disease_target_score_tools.json', 'diseasesh': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/diseasesh_tools.json', 'disgenet': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/disgenet_tools.json', 'disprot': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/disprot_tools.json', 'dna_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dna_tools.json', 'doaj': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/doaj_tools.json', 'dose_response': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dose_response_tools.json', 'drug_discovery_agents': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/drug_discovery_agents.json', 'drug_synergy': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/drug_synergy_tools.json', 'dryad': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/dryad_tools.json', 'ebi_proteins_coordinates': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_proteins_coordinates_tools.json', 'ebi_proteins_epitope': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_proteins_epitope_tools.json', 'ebi_proteins_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_proteins_ext_tools.json', 'ebi_proteins_features': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_proteins_features_tools.json', 'ebi_proteins_interactions': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_proteins_interactions_tools.json', 'ebi_search': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_search_tools.json', 'ebi_taxonomy': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebi_taxonomy_tools.json', 'ebird_taxonomy': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ebird_taxonomy_tools.json', 'elixir_tess': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/elixir_tess_tools.json', 'embedding': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/embedding_tools.json', 'emdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/emdb_tools.json', 'emolecules': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/emolecules_tools.json', 'ena_browser': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ena_browser_tools.json', 'ena_portal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ena_portal_tools.json', 'enamine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/enamine_tools.json', 'encode': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/encode_tools.json', 'ensembl': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_tools.json', 'ensembl_archive': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_archive_tools.json', 'ensembl_compara': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_compara_tools.json', 'ensembl_info': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_info_tools.json', 'ensembl_ld': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_ld_tools.json', 'ensembl_map': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_map_tools.json', 'ensembl_overlap': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_overlap_tools.json', 'ensembl_phenotype': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_phenotype_tools.json', 'ensembl_regulation': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_regulation_tools.json', 'ensembl_sequence': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_sequence_tools.json', 'ensembl_variation_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_variation_ext_tools.json', 'ensembl_vep': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_vep_tools.json', 'ensembl_xrefs': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ensembl_xrefs_tools.json', 'eol': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/eol_tools.json', 'epigenomics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/epigenomics_tools.json', 'epigraphdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/epigraphdb_tools.json', 'eqtl': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/eqtl_tools.json', 'erddap': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/erddap_tools.json', 'euhealth': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/euhealth_tools.json', 'europepmc_annotations': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/europepmc_annotations_tools.json', 'europepmc_citations': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/europepmc_citations_tools.json', 'eurostat': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/eurostat_tools.json', 'eva': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/eva_tools.json', 'eve': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/eve_tools.json', 'expression_atlas': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/expression_atlas_tools.json', 'faers_analytics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/faers_analytics_tools.json', 'fatcat': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fatcat_tools.json', 'fda_drug_adverse_event': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fda_drug_adverse_event_tools.json', 'fda_drug_adverse_event_detail': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fda_drug_adverse_event_detail_tools.json', 'fda_drug_label': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fda_drug_labeling_tools.json', 'fda_orange_book': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fda_orange_book_tools.json', 'fda_pharmacogenomic_biomarkers': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fda_pharmacogenomic_biomarkers_tools.json', 'figshare': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/figshare_tools.json', 'file_download': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/file_download_tools.json', 'flybase': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/flybase_tools.json', 'flymine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/flymine_tools.json', 'fooddata_central': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fooddata_central_tools.json', 'fourdn': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fourdn_tools.json', 'fpbase': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/fpbase_tools.json', 'gbif': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gbif_tools.json', 'gbif_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gbif_ext_tools.json', 'gdc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gdc_tools.json', 'gene2phenotype': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gene2phenotype_tools.json', 'genenetwork': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/genenetwork_tools.json', 'genenetwork_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/genenetwork_ext_tools.json', 'genome_nexus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/genome_nexus_tools.json', 'geo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/geo_tools.json', 'github': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/github_tools.json', 'glygen': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/glygen_tools.json', 'gnomad': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gnomad_tools.json', 'gnps': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gnps_tools.json', 'go': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gene_ontology_tools.json', 'go_api': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/go_api_tools.json', 'gpcrdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gpcrdb_tools.json', 'gprofiler': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gprofiler_tools.json', 'gtex': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gtex_tools.json', 'gtex_v2': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gtex_v2_tools.json', 'gtopdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gtopdb_tools.json', 'guidelines': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/unified_guideline_tools.json', 'gwas': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gwas_tools.json', 'gxa': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/gxa_tools.json', 'hal': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hal_tools.json', 'harmonizome': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/harmonizome_tools.json', 'hca_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hca_tools.json', 'health_disparities': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/health_disparities_tools.json', 'hgnc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hgnc_tools.json', 'hmdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hmdb_tools.json', 'hpa': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hpa_tools.json', 'hpo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/hpo_tools.json', 'huggingface': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/huggingface_tools.json', 'humanmine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/humanmine_tools.json', 'icd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/icd_tools.json', 'icite': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/icite_tools.json', 'identifiers_org': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/identifiers_org_tools.json', 'idigbio': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/idigbio_tools.json', 'idmap': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/idmap_tools.json', 'idr': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/idr_tools.json', 'iedb_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/iedb_tools.json', 'imgt': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/imgt_tools.json', 'impc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/impc_tools.json', 'inaturalist': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/inaturalist_tools.json', 'inspirehep': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/inspirehep_tools.json', 'intact': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/intact_tools.json', 'interpro': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/interpro_tools.json', 'interpro_domain_arch': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/interpro_domain_arch_tools.json', 'interpro_entry': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/interpro_entry_tools.json', 'interpro_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/interpro_ext_tools.json', 'interproscan': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/interproscan_tools.json', 'itis': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/itis_tools.json', 'jaspar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/jaspar_tools.json', 'jpl_horizons': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/jpl_horizons_tools.json', 'kegg': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/kegg_tools.json', 'kegg_brite': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/kegg_brite_tools.json', 'kegg_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/kegg_ext_tools.json', 'klifs': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/klifs_tools.json', 'l1000fwd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/l1000fwd_tools.json', 'lipidmaps': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/lipidmaps_tools.json', 'literature_search': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/literature_search_tools.json', 'litvar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/litvar_tools.json', 'lncrna': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/lncrna_tools.json', 'loinc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/loinc_tools.json', 'lotus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/lotus_tools.json', 'marine_regions': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/marine_regions_tools.json', 'markitdown': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/markitdown_tools.json', 'massbank': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/massbank_tools.json', 'mcp_auto_loader_boltz': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/boltz_mcp_loader_tools.json', 'mcp_auto_loader_esm': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mcp_auto_loader_esm.json', 'mcp_auto_loader_expert_feedback': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/expert_feedback_tools.json', 'mcp_auto_loader_txagent': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/txagent_client_tools.json', 'mcp_auto_loader_uspto_downloader': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uspto_downloader_tools.json', 'medlineplus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/medlineplus_tools.json', 'medrxiv': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/medrxiv_tools.json', 'mesh': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mesh_tools.json', 'metabolights': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/metabolights_tools.json', 'metabolomics_workbench': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/metabolomics_workbench_tools.json', 'metacyc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/metacyc_tools.json', 'metnorway': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/metnorway_tools.json', 'mgnify': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mgnify_tools.json', 'mgnify_expanded': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mgnify_expanded_tools.json', 'mibig': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mibig_tools.json', 'mirna': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mirna_tools.json', 'mobidb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mobidb_tools.json', 'modeldb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/modeldb_tools.json', 'monarch': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/monarch_tools.json', 'monarch_v3': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/monarch_v3_tools.json', 'mousemine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mousemine_tools.json', 'mpd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mpd_tools.json', 'msigdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/msigdb_tools.json', 'mydisease': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/mydisease_tools.json', 'nasa_cmr': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_cmr_tools.json', 'nasa_donki': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_donki_tools.json', 'nasa_eonet': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_eonet_tools.json', 'nasa_exoplanet': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_exoplanet_tools.json', 'nasa_ned': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_ned_tools.json', 'nasa_neows': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_neows_tools.json', 'nasa_sbdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nasa_sbdb_tools.json', 'ncbi_datasets': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ncbi_datasets_tools.json', 'ncbi_gene': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ncbi_gene_tools.json', 'ncbi_nucleotide': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ncbi_nucleotide_tools.json', 'ncbi_sra': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ncbi_sra_tools.json', 'nci_drugdict': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nci_drugdict_tools.json', 'nci_thesaurus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nci_thesaurus_tools.json', 'ndex': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ndex_tools.json', 'neuromorpho': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/neuromorpho_tools.json', 'neurovault': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/neurovault_tools.json', 'nextstrain': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nextstrain_tools.json', 'nhanes': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nhanes_tools.json', 'nominatim': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nominatim_tools.json', 'nvidia_nim': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nvidia_nim_tools.json', 'nws': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/nws_tools.json', 'obis': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/obis_tools.json', 'odphp': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/odphp_tools.json', 'ols': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ols_tools.json', 'oma': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/oma_tools.json', 'omicsdi': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/omicsdi_tools.json', 'omim': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/omim_tools.json', 'omnipath': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/omnipath_tools.json', 'oncokb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/oncokb_tools.json', 'open_meteo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/open_meteo_tools.json', 'open_meteo_airquality': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/open_meteo_airquality_tools.json', 'open_meteo_climate': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/open_meteo_climate_tools.json', 'open_meteo_flood': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/open_meteo_flood_tools.json', 'open_meteo_marine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/open_meteo_marine_tools.json', 'openaire': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openaire_tools.json', 'opencitations': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/opencitations_tools.json', 'openfda': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openfda_tools.json', 'openfda_labels': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openfda_label_tools.json', 'openfoodfacts': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openfoodfacts_tools.json', 'openml': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openml_tools.json', 'openneuro': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/openneuro_tools.json', 'opentarget': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/opentarget_tools.json', 'opentarget_genetics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/opentarget_genetics_tools.json', 'opentopodata': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/opentopodata_tools.json', 'opentree': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/opentree_tools.json', 'optimizer': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/optimizer_tools.json', 'orcid': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/orcid_tools.json', 'orphanet': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/orphanet_tools.json', 'orthodb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/orthodb_tools.json', 'osdr': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/osdr_tools.json', 'osf_preprints': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/osf_preprints_tools.json', 'output_summarization': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/output_summarization_tools.json', 'oxo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/oxo_tools.json', 'package_discovery_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/package_discovery_tools.json', 'paleobiology': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/paleobiology_tools.json', 'panelapp': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/panelapp_tools.json', 'panther': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/panther_tools.json', 'pathway_commons_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pathway_commons_tools.json', 'pdb_redo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdb_redo_tools.json', 'pdbe_api': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_api_tools.json', 'pdbe_compound': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_compound_tools.json', 'pdbe_graph': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_graph_tools.json', 'pdbe_kb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_kb_tools.json', 'pdbe_ligands': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_ligands_tools.json', 'pdbe_search': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_search_tools.json', 'pdbe_sifts': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_sifts_tools.json', 'pdbe_validation': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pdbe_validation_tools.json', 'pfam': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pfam_tools.json', 'pharmgkb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pharmgkb_tools.json', 'pharmvar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pharmvar_tools.json', 'pharos': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pharos_tools.json', 'plant_reactome': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/plant_reactome_tools.json', 'pmc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pmc_tools.json', 'pombase': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pombase_tools.json', 'powo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/powo_tools.json', 'ppi': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ppi_tools.json', 'pride': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pride_tools.json', 'protacdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/protacdb_tools.json', 'proteins_api': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/proteins_api_tools.json', 'proteinsplus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/proteinsplus_tools.json', 'proteomexchange': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/proteomexchange_tools.json', 'pubchem': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubchem_tools.json', 'pubchem_bioassay': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubchem_bioassay_tools.json', 'pubchem_tox': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubchem_tox_tools.json', 'pubmed': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubmed_tools.json', 'pubtator': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubtator_tools.json', 'pubtator3_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pubtator3_ext_tools.json', 'pypi_package_inspector_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/pypi_package_inspector_tools.json', 'python_executor': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/python_executor_tools.json', 'quickgo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/quickgo_tools.json', 'rcsb_advanced_search': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_advanced_search_tools.json', 'rcsb_chemcomp': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_chemcomp_tools.json', 'rcsb_data': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_data_tools.json', 'rcsb_graphql': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_graphql_tools.json', 'rcsb_pdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_pdb_tools.json', 'rcsb_search': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rcsb_search_tools.json', 'reactome': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/reactome_tools.json', 'reactome_analysis': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/reactome_analysis_tools.json', 'reactome_content': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/reactome_content_tools.json', 'reactome_interactors': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/reactome_interactors_tools.json', 'regulomedb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/regulomedb_tools.json', 'remap': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/remap_tools.json', 'rfam': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rfam_tools.json', 'rhea': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rhea_tools.json', 'rnacentral': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rnacentral_tools.json', 'ror': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ror_tools.json', 'rxnorm': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/rxnorm_tools.json', 'sabdab': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/sabdab_tools.json', 'sasbdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/sasbdb_tools.json', 'scanprosite': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/scanprosite_tools.json', 'scite': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/scite_tools.json', 'screen': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/screen_tools.json', 'sdss': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/sdss_tools.json', 'semantic_scholar': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/semantic_scholar_tools.json', 'semantic_scholar_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/semantic_scholar_ext_tools.json', 'sgd': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/sgd_tools.json', 'simbad': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/simbad_tools.json', 'smolagents': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/smolagent_tools.json', 'software_bioinformatics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/bioinformatics_core_tools.json', 'software_cheminformatics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/cheminformatics_tools.json', 'software_earth_sciences': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/earth_sciences_tools.json', 'software_genomics': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/genomics_tools.json', 'software_image_processing': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/image_processing_tools.json', 'software_machine_learning': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/machine_learning_tools.json', 'software_neuroscience': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/neuroscience_tools.json', 'software_physics_astronomy': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/physics_astronomy_tools.json', 'software_scientific_computing': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/scientific_computing_tools.json', 'software_single_cell': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/single_cell_tools.json', 'software_structural_biology': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/structural_biology_tools.json', 'software_visualization': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/packages/visualization_tools.json', 'soilgrids': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/soilgrids_tools.json', 'special_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/special_tools.json', 'spliceai': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/spliceai_tools.json', 'stitch': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/stitch_tools.json', 'string_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/string_ext_tools.json', 'string_network': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/string_network_tools.json', 'sunrise_sunset': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/sunrise_sunset_tools.json', 'survival': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/survival_tools.json', 'swissdock': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/swissdock_tools.json', 'swissmodel': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/swissmodel_tools.json', 'synbiohub': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/synbiohub_tools.json', 'targetmine': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/targetmine_tools.json', 'tcia': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/tcia_tools.json', 'therasabdab': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/therasabdab_tools.json', 'three_d_beacons': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/three_d_beacons_tools.json', 'timer': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/timer_tools.json', 'tool_composition': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/tool_composition_tools.json', 'tool_discovery_agents': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/tool_discovery_agents.json', 'tool_finder': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/finder_tools.json', 'ucsc_genome': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/ucsc_genome_tools.json', 'umls': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/umls_tools.json', 'unichem': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/unichem_tools.json', 'uniparc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniparc_tools.json', 'uniprot': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_tools.json', 'uniprot_idmapping': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_idmapping_tools.json', 'uniprot_locations': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_locations_tools.json', 'uniprot_proteomes': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_proteomes_tools.json', 'uniprot_ref': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_ref_tools.json', 'uniprot_taxonomy': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniprot_taxonomy_tools.json', 'uniref': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uniref_tools.json', 'unpaywall': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/unpaywall_tools.json', 'url': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/url_fetch_tools.json', 'uscensus': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uscensus_tools.json', 'usgs_earthquake': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/usgs_earthquake_tools.json', 'usgs_water': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/usgs_water_tools.json', 'uspto': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/uspto_tools.json', 'variant_validator': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/variant_validator_tools.json', 'veupathdb': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/veupathdb_tools.json', 'visualization_molecule_2d': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/molecule_2d_tools.json', 'visualization_molecule_3d': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/molecule_3d_tools.json', 'visualization_protein_3d': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/protein_structure_3d_tools.json', 'waqi': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/waqi_tools.json', 'web_search_tools': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/web_search_tools.json', 'wfgy_promptbundle': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wfgy_promptbundle_tools.json', 'who_gho': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/who_gho_tools.json', 'wikidata_entity': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikidata_entity_tools.json', 'wikidata_sparql': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikidata_sparql_tools.json', 'wikipathways': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikipathways_tools.json', 'wikipathways_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikipathways_ext_tools.json', 'wikipedia': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikipedia_tools.json', 'wikipedia_ext': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wikipedia_ext_tools.json', 'worldbank': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/worldbank_tools.json', 'wormbase': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/wormbase_tools.json', 'worms': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/worms_tools.json', 'xml': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/xml_tools.json', 'zenodo': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/zenodo_tools.json', 'zfin': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/zfin_tools.json', 'zinc': '/home/runner/work/ToolUniverse/ToolUniverse/src/tooluniverse/data/zinc_tools.json'}, keep_default_tools=True, log_level=None, hooks_enabled=False, hook_config=None, hook_type=None, enable_name_shortening=False)[source]¶
Initialize the ToolUniverse with tool file configurations.
- Parameters:
tool_files (
dict, optional) – Dictionary mapping category names to JSON file paths. Defaults to default_tool_files.keep_default_tools (
bool, optional) – Whether to keep default tools when custom tool_files are provided. Defaults to True.log_level (
str, optional) – Log level for this instance. Can be ‘DEBUG’, ‘INFO’, ‘WARNING’, ‘ERROR’, ‘CRITICAL’. If None, uses global setting.hooks_enabled (
bool, optional) – Whether to enable output hooks. Defaults to False.hook_config (
dict, optional) – Configuration for hooks. If None, uses default config.hook_type (
str or list, optional) – Simple hook type selection. Can be ‘SummarizationHook’, ‘FileSaveHook’, or a list of both. Defaults to ‘SummarizationHook’. If both hook_config and hook_type are provided, hook_config takes precedence.enable_name_shortening (
bool, optional) – Whether to enable automatic tool name shortening for MCP compatibility. Defaults to False.
- register_custom_tool(tool_class, tool_name=None, tool_config=None, instantiate=False, tool_instance=None)[source]¶
Register a custom tool class or instance at runtime.
- Parameters:
tool_class – The tool class to register (required if tool_instance is None)
tool_name (
str, optional) – Name to register under. Uses class name if None.tool_config (
dict, optional) – Tool configuration dictionary to add to all_toolsinstantiate (
bool, optional) – If True, immediately instantiate and cache the tool. Defaults to False for backward compatibility.tool_instance (
optional) – Pre-instantiated tool object. If provided, tool_class is inferred from the instance.
- Returns:
The name the tool was registered under
- Return type:
Examples
# Register tool class only (lazy instantiation) tu.register_custom_tool(MyTool, tool_config={…})
# Register and immediately instantiate tu.register_custom_tool(MyTool, tool_config={…}, instantiate=True)
# Register pre-instantiated tool instance = MyTool({…}) tu.register_custom_tool(tool_class=MyTool, tool_instance=instance, tool_config={…})
- force_full_discovery()[source]¶
Force full tool discovery, importing all tool modules immediately.
This can be useful when you need to ensure all tools are available immediately, bypassing lazy loading.
- Returns:
Updated tool registry with all discovered tools
- Return type:
- get_lazy_loading_status()[source]¶
Get information about lazy loading status and available tools.
- Returns:
Dictionary with lazy loading status and tool counts
- Return type:
- get_tool_types()[source]¶
Get the types of tools available in the tool files.
- Returns:
A list of tool type names (category keys).
- Return type:
- _check_api_key_requirements(tool_config)[source]¶
Check if a tool’s required API keys are available. Also supports optional_api_keys which enhance performance but don’t block loading.
- generate_env_template(all_missing_keys, output_file='.env.template')[source]¶
Generate a template .env file with all required API keys
- _create_hook_config_from_type(hook_type)[source]¶
Create hook configuration from simple hook_type parameter.
- Parameters:
hook_type (
str or list) – Hook type(s) to enable. Can be ‘SummarizationHook’, ‘FileSaveHook’, or a list of both.- Returns:
Generated hook configuration
- Return type:
- load_tools(tool_type=None, exclude_tools=None, exclude_categories=None, include_tools=None, tool_config_files=None, tools_file=None, include_tool_types=None, exclude_tool_types=None)[source]¶
Loads tool definitions from JSON files into the instance’s tool registry.
If tool_type is None, loads all available tool categories from self.tool_files. Otherwise, loads only the specified tool categories.
After loading, deduplicates tools by their ‘name’ field and updates the internal tool list. Also refreshes the tool name and description mapping.
- Parameters:
tool_type (
list, optional) – List of tool category names to load. If None, loads all categories.exclude_tools (
list, optional) – List of specific tool names to exclude from loading.exclude_categories (
list, optional) – List of tool categories to exclude from loading.include_tools (
list or str, optional) – List of specific tool names to include, or path to a text file containing tool names (one per line). If provided, only these tools will be loaded regardless of categories.tool_config_files (
dict, optional) – Additional tool configuration files to load. Format: {“category_name”: “/path/to/config.json”}tools_file (
str, optional) – Path to a text file containing tool names to include (one per line). Alternative to include_tools when providing a file path.include_tool_types (
list, optional) – List of tool types to include (e.g., [“OpenTarget”, “ChEMBLTool”]). If provided, only tools with these types will be loaded.exclude_tool_types (
list, optional) – List of tool types to exclude (e.g., [“ToolFinderEmbedding”]). Tools with these types will be excluded.
- Side Effects:
Updates self.all_tools with loaded and deduplicated tools.
Updates self.tool_category_dicts with loaded tools per category.
Calls self.refresh_tool_name_desc() to update tool name/description mapping.
Prints the number of tools before and after loading.
Examples
# Load specific tools by name tu.load_tools(include_tools=[“UniProt_get_entry_by_accession”, “ChEMBL_get_molecule_by_chembl_id”])
# Load tools from a file tu.load_tools(tools_file=”/path/to/tool_names.txt”)
# Include only specific tool types tu.load_tools(include_tool_types=[“OpenTarget”, “ChEMBLTool”])
# Exclude specific tool types tu.load_tools(exclude_tool_types=[“ToolFinderEmbedding”, “Unknown”])
# Load additional config files tu.load_tools(tool_config_files={“custom_tools”: “/path/to/custom_tools.json”})
# Combine multiple options tu.load_tools(
tool_type=[“uniprot”, “ChEMBL”], exclude_tools=[“problematic_tool”], exclude_tool_types=[“Unknown”], tool_config_files={“custom”: “/path/to/custom.json”}
)
- _load_tool_names_from_file(file_path)[source]¶
Load tool names from a text file (one tool name per line).
- _filter_and_deduplicate_tools(exclude_tools_set, include_tools_set, include_tool_types_set=None, exclude_tool_types_set=None, existing_tool_names=None)[source]¶
Filter tools based on inclusion/exclusion criteria and remove duplicates.
- Parameters:
exclude_tools_set (
set) – Set of tool names to excludeinclude_tools_set (
set or None) – Set of tool names to include (if None, include all)include_tool_types_set (
set or None) – Set of tool types to include (if None, include all)exclude_tool_types_set (
set or None) – Set of tool types to exclude (if None, exclude none)existing_tool_names (
set or None) – Set of tool names that were already loaded before this call. These tools will be preserved even if not in include_tools_set. Used for merge mode when loading specific tools.
- _load_auto_discovered_configs()[source]¶
Load auto-discovered configs from the decorator registry.
This method loads tool configurations that were registered automatically via the @register_tool decorator with config parameter.
- _process_mcp_auto_loaders()[source]¶
Process any MCPAutoLoaderTool instances to automatically discover and register MCP tools.
This method scans through all loaded tools for MCPAutoLoaderTool instances and runs their auto-discovery process to find and register MCP tools from configured servers. It handles async operations properly with cleanup and error handling.
- Side Effects:
May add new tools to the tool registry
Prints debug information about the discovery process
Updates tool counts after MCP registration
- list_built_in_tools(mode='config', scan_all=False)[source]¶
List all built-in tool categories and their statistics with different modes.
This method provides a comprehensive overview of all available tools in the ToolUniverse, organized by categories. It reads directly from the default tool files to gather statistics, so it works even before calling load_tools().
- Parameters:
mode (
str, optional) – Organization mode for tools. Defaults to ‘config’. - ‘config’: Organize by config file categories (original behavior) - ‘type’: Organize by tool types (implementation classes) - ‘list_name’: Return a list of all tool names - ‘list_spec’: Return a list of all tool specificationsscan_all (
bool, optional) – Whether to scan all JSON files in data directory recursively. If True, scans all JSON files in data/ and its subdirectories. If False (default), uses predefined tool file mappings.
- Returns:
For ‘config’ and ‘type’ modes: A dictionary containing tool statistics
For ‘list_name’ mode: A list of all tool names
For ‘list_spec’ mode: A list of all tool specifications
- Return type:
Example
>>> tool_universe = ToolUniverse() >>> # Group by config file categories (predefined files only) >>> stats = tool_universe.list_built_in_tools(mode='config') >>> # Scan all JSON files in data directory recursively >>> stats = tool_universe.list_built_in_tools(mode='config', scan_all=True) >>> # Get all tool names from all JSON files >>> tool_names = tool_universe.list_built_in_tools(mode='list_name', scan_all=True)
Note
This method reads directly from tool files and works without calling load_tools()
Tools are deduplicated across categories, so the same tool won’t be counted multiple times
The summary is automatically printed to console when this method is called (except for list_name and list_spec modes)
When scan_all=True, all JSON files in data/ and subdirectories are scanned
- _scan_predefined_files()[source]¶
Scan predefined tool files (original behavior).
- Returns:
- (all_tools, all_tool_names) where all_tools is a list of tool configs
and all_tool_names is a set of tool names for deduplication
- Return type:
- _scan_all_json_files()[source]¶
Recursively scan all JSON files in the data directory and its subdirectories.
- Returns:
- (all_tools, all_tool_names) where all_tools is a list of tool configs
and all_tool_names is a set of tool names for deduplication
- Return type:
- refresh_tool_name_desc(enable_full_desc=False, include_names=None, exclude_names=None, include_categories=None, exclude_categories=None)[source]¶
Refresh the tool name and description mappings with optional filtering.
This method rebuilds the internal tool dictionary and generates filtered lists of tool names and descriptions based on the provided filter criteria.
- Parameters:
enable_full_desc (
bool, optional) – If True, includes full tool JSON as description. If False, uses “name: description” format. Defaults to False.include_names (
list, optional) – List of tool names to include.exclude_names (
list, optional) – List of tool names to exclude.include_categories (
list, optional) – List of categories to include.exclude_categories (
list, optional) – List of categories to exclude.
- Returns:
A tuple containing (tool_name_list, tool_desc_list) after filtering.
- Return type:
- prepare_one_tool_prompt(tool)[source]¶
Prepare a single tool configuration for prompt usage by filtering to essential keys.
- prepare_tool_prompts(tool_list, mode='prompt', valid_keys=None)[source]¶
Prepare a list of tool configurations for different usage modes.
- Parameters:
tool_list (
list) – List of tool configuration dictionaries.mode (
str) – Preparation mode. Options: - ‘prompt’: Keep essential keys for prompting (name, description, parameter, required) - ‘example’: Keep extended keys for examples (name, description, parameter, required, query_schema, fields, label, type) - ‘custom’: Use custom valid_keys parametervalid_keys (
list, optional) – Custom list of keys to keep when mode=’custom’.
- Returns:
List of tool configurations with only specified keys.
- Return type:
- get_tool_specification_by_names(tool_names, format='default')[source]¶
Retrieve tool specifications by their names using tool_specification method.
- Parameters:
tool_names (
list) – List of tool names to retrieve.format (
str, optional) – Output format. Options: ‘default’, ‘openai’. If ‘openai’, returns OpenAI function calling format. Defaults to ‘default’.
- Returns:
- List of tool specifications for the specified names.
Tools not found will be reported but not included in the result.
- Return type:
- get_one_tool_by_one_name(tool_name, return_prompt=True)[source]¶
Retrieve a single tool specification by name, optionally prepared for prompting.
This is a convenience method that calls get_one_tool_by_one_name.
- _sanitize_schema_for_openai(schema)[source]¶
Recursively sanitize a JSON Schema object for OpenAI function calling compatibility.
Handles three categories of issues that cause OpenAI to reject schemas:
Legacy required flags —
required: True/Falseembedded on individual property schemas (not valid JSON Schema). Collected and rebuilt as a proper top-levelrequiredarray on the enclosing object schema.Array type unions —
type: ["string", "null"](JSON Schema draft-4 shorthand). OpenAI only accepts a single string fortype; this converts them toanyOf: [{"type": "string"}, {"type": "null"}].``additionalProperties: True`` — OpenAI’s validator rejects this value; the key is removed.
Recurses into
properties,items, andanyOf/oneOf/allOfso that deeply-nested sub-schemas are also cleaned up.
- tool_specification(tool_name, return_prompt=False, format='default')[source]¶
Retrieve a single tool configuration by name.
- Parameters:
tool_name (
str) – Name of the tool to retrieve.return_prompt (
bool, optional) – If True, returns tool prepared for prompting. If False, returns full tool configuration. Defaults to False.format (
str, optional) – Output format. Options: ‘default’, ‘openai’. If ‘openai’, returns OpenAI function calling format. Defaults to ‘default’.
- Returns:
Tool configuration if found, None otherwise.
- Return type:
dict or None
- call_id_gen()[source]¶
Generate a random call ID for function calls.
- Returns:
A random 9-character string composed of letters and digits.
- Return type:
- extract_function_call_json(lst, return_message=False, verbose=True, format='llama')[source]¶
Extract function call JSON from input data.
This method delegates to the utility function extract_function_call_json.
- Parameters:
lst – Input data containing function call information.
return_message (
bool, optional) – Whether to return message along with JSON. Defaults to False.verbose (
bool, optional) – Whether to enable verbose output. Defaults to True.format (
str, optional) – Format type for extraction. Defaults to ‘llama’.
- Returns:
Function call JSON, optionally with message if return_message is True.
- Return type:
- return_all_loaded_tools()[source]¶
Return a deep copy of all loaded tools.
- Returns:
A deep copy of the all_tools list to prevent external modification.
- Return type:
- _execute_function_call_list(function_calls, stream_callback=None, use_cache=False, max_workers=None)[source]¶
Execute a list of function calls, optionally in parallel.
- Parameters:
- Returns:
List of results aligned with
function_callsorder.- Return type:
- run(fcall_str, return_message=False, verbose=True, format='llama', stream_callback=None, use_cache=False, max_workers=None)[source]¶
Context-aware execution - works in both sync and async contexts.
- In sync context:
result = tu.run(…) # Returns result directly (may block for async tools)
- In async context:
result = await tu.run(…) # Returns coroutine, non-blocking
This method automatically detects the context and behaves appropriately.
- Parameters:
fcall_str – Input string or data containing function call information.
return_message (
bool, optional) – Whether to return formatted messages. Defaults to False.verbose (
bool, optional) – Whether to enable verbose output. Defaults to True.format (
str, optional) – Format type for parsing. Defaults to ‘llama’.stream_callback – Optional callback for streaming responses.
use_cache (
bool, optional) – Whether to use result caching. Defaults to False.max_workers (
Optional[int]) – Max workers for parallel batch execution (sync only).
- Returns:
Result (sync) or coroutine (async) depending on context.
- _run_sync(fcall_str, return_message=False, verbose=True, format='llama', stream_callback=None, use_cache=False, max_workers=None)[source]¶
Synchronous execution implementation (original run logic).
For async tools, this will create an event loop if needed.
- _format_batch_as_messages(batch_results, function_call_json, message)[source]¶
Format batch results as tool/assistant message dicts for return_message mode.
- async _run_async(fcall_str, return_message=False, verbose=True, format='llama', stream_callback=None, use_cache=False)[source]¶
Asynchronous execution implementation (non-blocking).
Handles both sync and async tools in async context.
- async _execute_function_call_list_async(function_call_list, stream_callback=None, use_cache=False)[source]¶
Execute multiple function calls asynchronously and in parallel.
Uses return_exceptions=True so one failure does not abort others.
- _resolve_tool_name(function_name)[source]¶
Resolve tool name to its primary identifier.
Uses the ToolNameMapper to handle: 1. Aliases (e.g., old tool names) -> primary name 2. Original names -> shortened names (if shortening enabled) 3. Already primary names -> return as-is
- run_one_function(function_call_json, stream_callback=None, use_cache=False, validate=True)[source]¶
Execute a single function call.
This method validates the function call, initializes the tool if necessary, and executes it with the provided arguments. If hooks are enabled, it also applies output hooks to process the result.
- Parameters:
function_call_json (
dict) – Dictionary containing function name and arguments.stream_callback (
callable, optional) – Callback for streaming responses.use_cache (
bool, optional) – Whether to use result caching. Defaults to False.validate (
bool, optional) – Whether to validate parameters against schema. Defaults to True.
- Returns:
Result from the tool execution, or error message if validation fails.
- Return type:
- async run_one_function_async(function_call_json, stream_callback=None, use_cache=False, validate=True)[source]¶
Async version of run_one_function.
Execute a single function call asynchronously (non-blocking). Handles both sync and async tools intelligently.
- _execute_tool_with_stream(tool_instance, arguments, stream_callback, use_cache=False, validate=True)[source]¶
Invoke a tool, forwarding stream callbacks and other parameters when supported.
- async _invoke_tool_async(tool_instance, tool_arguments, **kwargs)[source]¶
Invoke tool.run, using await for async tools or a thread pool for sync tools.
- async _execute_tool_with_stream_async(tool_instance, arguments, stream_callback, use_cache=False, validate=True)[source]¶
Async version of _execute_tool_with_stream.
Handles both sync and async tools: async tools are awaited directly, sync tools run in a thread pool.
- toggle_hooks(enabled)[source]¶
Enable or disable output hooks globally.
This method allows runtime control of the hook system. When enabled, it initializes the HookManager if not already present. When disabled, it deactivates the HookManager.
- Parameters:
enabled (
bool) – True to enable hooks, False to disable
- init_tool(tool=None, tool_name=None, add_to_cache=True)[source]¶
Initialize a tool instance from configuration or name.
This method creates a new tool instance using the tool type mappings and optionally caches it for future use. It handles special cases like the OpentargetToolDrugNameMatch which requires additional dependencies.
- Parameters:
tool (
dict, optional) – Tool configuration dictionary. Either this or tool_name must be provided.tool_name (
str, optional) – Name of the tool type to initialize. Either this or tool must be provided.add_to_cache (
bool, optional) – Whether to cache the initialized tool. Defaults to True.
- Returns:
Initialized tool instance or None if initialization fails.
- Return type:
- Raises:
KeyError – If the tool type is not found in tool_type_mappings.
- _get_tool_instance(function_name, cache=True)[source]¶
Get or create tool instance with optional caching.
- _auto_load_tools_if_empty(function_name=None)[source]¶
Automatically load tools if the tools dictionary is empty.
- _make_cache_key(function_name, arguments, tool_instance=None)[source]¶
Generate cache key by delegating to BaseTool.
- _coerce_value_to_type(value, schema)[source]¶
Coerce a value to match the schema’s expected type.
This function attempts to convert string values to integers, floats, or booleans when the schema expects those types. This makes the system more lenient with user input from LLMs that provide numeric values as strings.
- _coerce_arguments_to_schema(function_name, arguments)[source]¶
Coerce all arguments for a tool to match their schema expectations.
- _validate_parameters(function_name, arguments)[source]¶
Validate parameters by delegating to BaseTool.
- _classify_exception(exception, function_name, arguments)[source]¶
Classify exception by delegating to BaseTool.
- _create_dual_format_error(error)[source]¶
Create dual-format error response for backward compatibility.
- property _cache¶
Access to the internal cache for testing purposes.
- clear_tools(clear_cache=False)[source]¶
Clear all loaded tools from the registry.
This method resets the tool registry to its initial empty state, allowing you to: - Free memory after loading many tools - Reset state between different workflows - Load a fresh set of tools for a new context - Control which tools are visible to tool finder
- Parameters:
clear_cache (
bool, optional) – Whether to also clear the result cache. Defaults to False.
Examples
# Clear tools but keep cached results tu.clear_tools()
# Clear both tools and cached results tu.clear_tools(clear_cache=True)
# Load specific tools after clearing tu.clear_tools() tu.load_tools(include_tools=[“UniProt_get_entry_by_accession”])
Note
This does not affect tool instances in callable_functions cache
Subsequent tool access will trigger on-demand loading
Use clear_cache=True if you also want to clear result cache
- check_function_call(fcall_str, function_config=None, format='llama')[source]¶
Validate a function call against tool configuration.
This method checks if a function call is valid by verifying the function name exists and the arguments match the expected parameters.
- Parameters:
fcall_str – Function call string or data to validate.
function_config (
dict, optional) – Specific function configuration to validate against. If None, uses the loaded tool configuration.format (
str, optional) – Format type for parsing. Defaults to ‘llama’.
- Returns:
- A tuple of (is_valid, message) where:
is_valid (bool): True if the function call is valid, False otherwise
message (str): Error message if invalid, empty if valid
- Return type:
- export_tool_names(output_file, category_filter=None)[source]¶
Export tool names to a text file (one per line).
- Parameters:
output_file (
str) – Path to the output filecategory_filter (
list, optional) – List of categories to filter by
- filter_tools(include_tools=None, exclude_tools=None, include_tool_types=None, exclude_tool_types=None)[source]¶
Filter tools based on inclusion/exclusion criteria.
- Parameters:
include_tools (
set, optional) – Set of tool names to includeexclude_tools (
set, optional) – Set of tool names to excludeinclude_tool_types (
set, optional) – Set of tool types to includeexclude_tool_types (
set, optional) – Set of tool types to exclude
- Returns:
Filtered list of tool configurations
- Return type:
- get_available_tools(category_filter=None, name_only=True)[source]¶
Get available tools, optionally filtered by category.
- find_tools_by_pattern(pattern, search_in='name', case_sensitive=False)[source]¶
Find tools matching a pattern in their name or description.
- get_tool_by_name(tool_names, format='default')[source]¶
Retrieve tool configurations by their names.
DEPRECATED: Use tool_specification() instead.
- Parameters:
tool_names (
list) – List of tool names to retrieve.format (
str, optional) – Output format. Options: ‘default’, ‘openai’. If ‘openai’, returns OpenAI function calling format. Defaults to ‘default’.
- Returns:
- List of tool configurations for the specified names.
Tools not found will be reported but not included in the result.
- Return type:
- get_tool_description(tool_name)[source]¶
Get the description of a tool by its name.
DEPRECATED: Use tool_specification() instead.
- remove_keys(tool_list, invalid_keys)[source]¶
Remove specified keys from a list of tool configurations.
DEPRECATED: Use prepare_tool_prompts(mode=’custom’, valid_keys=…) instead.
- prepare_tool_examples(tool_list)[source]¶
Prepare tool configurations for example usage by keeping extended set of keys.
DEPRECATED: Use prepare_tool_prompts(mode=’example’) instead.
- select_tools(include_names=None, exclude_names=None, include_categories=None, exclude_categories=None)[source]¶
Select tools based on tool names and/or categories (tool_files keys).
DEPRECATED: Use filter_tools() instead.
- Parameters:
include_names (
list, optional) – List of tool names to include. If None, include all.exclude_names (
list, optional) – List of tool names to exclude.include_categories (
list, optional) – List of categories (tool_files keys) to include. If None, include all.exclude_categories (
list, optional) – List of categories (tool_files keys) to exclude.
- Returns:
List of selected tool configurations.
- Return type:
- filter_tool_lists(tool_name_list, tool_desc_list, include_names=None, exclude_names=None, include_categories=None, exclude_categories=None)[source]¶
Directly filter tool name and description lists based on names and/or categories.
DEPRECATED: Use filter_tools() and manual list filtering instead.
- Parameters:
tool_name_list (
list) – List of tool names to filter.tool_desc_list (
list) – List of tool descriptions to filter (must correspond to tool_name_list).include_names (
list, optional) – List of tool names to include.exclude_names (
list, optional) – List of tool names to exclude.include_categories (
list, optional) – List of categories to include.exclude_categories (
list, optional) – List of categories to exclude.
- Returns:
A tuple containing (filtered_tool_name_list, filtered_tool_desc_list).
- Return type:
- load_tools_from_names_list(tool_names, clear_existing=True)[source]¶
Load only specific tools by their names.
DEPRECATED: Use load_tools(include_tools=…) instead.
- load_space(uri, **kwargs)[source]¶
Load Space configuration and apply it to the ToolUniverse instance.
This is a high-level method that loads a Space configuration from various sources (HuggingFace, local files, HTTP URLs) and applies the tool settings to the current instance.
- Parameters:
uri (str) – Space URI (e.g., “hf:user/repo”, “./config.yaml”, “https://example.com/config.yaml”)
**kwargs – Additional parameters to override Space configuration (e.g., exclude_tools=[“tool1”], include_tools=[“tool2”])
- Returns:
The loaded Space configuration
- Return type:
Examples
# Load from HuggingFace config = tu.load_space(“hf:community/proteomics-toolkit”)
# Load local file with overrides config = tu.load_space(“./my-config.yaml”, exclude_tools=[“slow_tool”])
# Load from HTTP URL config = tu.load_space(”https://example.com/config.yaml”)
- _load_tools_from_mcp_server(server_url, config)¶
Load tools from a specific MCP server.
- discover_mcp_tools(server_urls=None, **kwargs)¶
Discover available tools from MCP servers without loading them.
This method connects to MCP servers to discover what tools are available without actually registering them in ToolUniverse. Useful for exploration and selective tool loading.
- Parameters:
- Returns:
Discovery results with tools organized by server
- Return type:
Examples
tu = ToolUniverse() # Discover what's available discovery = tu.discover_mcp_tools([ "http://localhost:8001", "http://ml-server:8002" ]) # Show available tools for server, info in discovery["servers"].items(): print(f"\n{server}:") for tool in info.get("tools", []): print(f" - {tool['name']}: {tool['description']}")
- list_mcp_connections()¶
List all active MCP connections and loaded tools.
- Returns:
Information about MCP connections, auto-loaders, and loaded tools
- Return type:
Examples
tu = ToolUniverse() tu.load_mcp_tools(["http://localhost:8001"]) connections = tu.list_mcp_connections() print(f"Active MCP connections: {len(connections['connections'])}")
- load_mcp_tools(server_urls=None, **kwargs)¶
Load MCP tools from remote servers into this ToolUniverse instance.
This method automatically discovers tools from MCP servers and registers them as ToolUniverse tools, enabling seamless usage of remote capabilities.
- Parameters:
server_urls (
listofstr, optional) –List of MCP server URLs to load tools from. Examples:
[“ws://localhost:9000”] # WebSocket MCP servers
If None, attempts to discover from local MCP tool registry.
**kwargs –
Additional configuration options:
tool_prefix (str): Prefix for loaded tool names (default: “mcp_”)
timeout (int): Connection timeout in seconds (default: 30)
auto_register (bool): Whether to auto-register discovered tools (default: True)
selected_tools (list): Specific tools to load from each server
categories (list): Tool categories to filter by
- Returns:
Summary of loaded tools with counts and any errors encountered.
- Return type:
Examples
Load from specific servers:
tu = ToolUniverse() # Load tools from multiple MCP servers result = tu.load_mcp_tools([ "http://localhost:8001", # Local analysis server "http://ml-server:8002", # Remote ML server "ws://realtime:9000" # WebSocket server ]) print(f"Loaded {result['total_tools']} tools from {result['servers_connected']} servers")
Load with custom configuration:
tu.load_mcp_tools( server_urls=["http://localhost:8001"], tool_prefix="analysis\_", timeout=60, selected_tools=["protein_analysis", "drug_interaction"]
Auto-discovery from local registry:
`python # If you have registered MCP tools locally, auto-discover their servers tu.load_mcp_tools() # Uses servers from mcp_tool_registry `
- class tooluniverse.BaseTool[source]¶
Bases:
object- STATIC_CACHE_VERSION = '1'¶
- classmethod get_default_config_file()[source]¶
Get the path to the default configuration file for this tool type.
This method uses a robust path resolution strategy that works across different installation scenarios:
Installed packages: Uses importlib.resources for proper package resource access
Development mode: Falls back to file-based path resolution
Legacy Python: Handles importlib.resources and importlib_resources
Override this method in subclasses to specify a custom defaults file.
- Returns
Path or resource object pointing to the defaults file
- run(arguments=None, stream_callback=None, use_cache=False, validate=True)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- get_required_parameters()[source]¶
Retrieve required parameters from the endpoint definition. Returns list: List of required parameters for the given endpoint.
- validate_parameters(arguments)[source]¶
Validate parameters against tool schema.
This method provides standard parameter validation using jsonschema. Subclasses can override this method to implement custom validation logic.
- Returns
ToolError if validation fails, None if validation passes
- _ERROR_CLASSIFICATION = [({'401', '403', 'api key', 'auth', 'token', 'unauthorized'}, <class 'tooluniverse.exceptions.ToolAuthError'>, 'Authentication failed'), ({'429', 'limit exceeded', 'quota', 'rate limit'}, <class 'tooluniverse.exceptions.ToolRateLimitError'>, 'Rate limit exceeded'), ({'404', 'connection', 'network', 'not found', 'timeout', 'unavailable'}, <class 'tooluniverse.exceptions.ToolUnavailableError'>, 'Tool unavailable'), ({'invalid', 'parameter', 'schema', 'validation'}, <class 'tooluniverse.exceptions.ToolValidationError'>, 'Validation error'), ({'config', 'configuration', 'setup'}, <class 'tooluniverse.exceptions.ToolConfigError'>, 'Configuration error'), ({'dependency', 'import', 'module', 'package'}, <class 'tooluniverse.exceptions.ToolDependencyError'>, 'Dependency error')]¶
- handle_error(exception)[source]¶
Classify a raw exception into a structured ToolError.
This method provides standard error classification. Subclasses can override this method to implement custom error handling logic.
- Parameters:
exception (Exception) – The raw exception to classify
- Returns
Structured ToolError instance
- get_cache_key(arguments)[source]¶
Generate a cache key for this tool call.
This method provides standard cache key generation. Subclasses can override this method to implement custom caching logic.
- Returns
String cache key
- supports_streaming()[source]¶
Check if this tool supports streaming responses.
- Returns
True if tool supports streaming, False otherwise
- supports_caching()[source]¶
Check if this tool’s results can be cached.
- Returns
True if tool results can be cached, False otherwise
- get_batch_concurrency_limit()[source]¶
Return maximum concurrent executions allowed during batch runs (0 = unlimited).
- tooluniverse.register_tool(tool_type_name=None, config=None)[source]¶
Decorator to automatically register tool classes and their configs.
- Usage:
@register_tool(‘CustomToolName’, config={…}) class MyTool:
pass
- class tooluniverse.SMCP[source]¶
Bases:
FastMCPScientific Model Context Protocol (SMCP) Server
SMCP is an enhanced MCP (Model Context Protocol) server that seamlessly integrates ToolUniverse’s extensive collection of scientific and scientific tools with the FastMCP framework. It provides a unified, AI-accessible interface for scientific computing, data analysis, and research workflows.
The SMCP server extends standard MCP capabilities with scientific domain expertise, intelligent tool discovery, and optimized configurations for research applications. It automatically handles the complex task of exposing hundreds of specialized tools through a consistent, well-documented interface.
Key Features:¶
- 🔬 Scientific Tool Integration: Native access to 350+ specialized tools covering
scientific databases, literature search, clinical data, genomics, proteomics, chemical informatics, and AI-powered analysis capabilities.
- 🧠 AI-Powered Tool Discovery: Multi-tiered intelligent search system using:
ToolFinderLLM: Cost-optimized LLM-based semantic understanding with pre-filtering
Tool_RAG: Embedding-based similarity search
Keyword Search: Simple text matching as reliable fallback
- 📡 Full MCP Protocol Support: Complete implementation of MCP specification with:
Standard methods (tools/list, tools/call, resources/, prompts/)
Custom scientific methods (tools/find, tools/search)
Multi-transport support (stdio, HTTP, SSE)
JSON-RPC 2.0 compliance with proper error handling
- ⚡ High-Performance Architecture: Production-ready features including:
Configurable thread pools for concurrent tool execution
Intelligent tool loading and caching
Resource management and graceful degradation
Comprehensive error handling and recovery
- 🔧 Developer-Friendly: Simplified configuration and deployment with:
Sensible defaults for scientific computing
Flexible customization options
Comprehensive documentation and examples
Built-in diagnostic and monitoring tools
Custom MCP Methods:¶
- tools/find:
AI-powered tool discovery using natural language queries. Supports semantic search, category filtering, and flexible response formats.
- tools/search:
Alternative endpoint for tool discovery with identical functionality to tools/find, provided for compatibility and convenience.
Parameters:¶
- namestr, optional
Human-readable server name used in logs and identification. Default: “SMCP Server” Examples: “Scientific Research API”, “Drug Discovery Server”
- tooluniverse_configToolUniverse or dict, optional
Either a pre-configured ToolUniverse instance or configuration dict. If None, creates a new ToolUniverse with default settings. Allows reuse of existing tool configurations and customizations.
- tool_categorieslist of str, optional
Specific ToolUniverse categories to load. If None and auto_expose_tools=True, loads all available tools. Common combinations: - Scientific: [“ChEMBL”, “uniprot”, “opentarget”, “pubchem”, “hpa”] - Literature: [“EuropePMC”, “semantic_scholar”, “pubtator”, “agents”] - Clinical: [“fda_drug_label”, “clinical_trials”, “adverse_events”]
- exclude_toolslist of str, optional
Specific tool names to exclude from loading. These tools will not be exposed via the MCP interface even if they are in the loaded categories. Useful for removing specific problematic or unwanted tools.
- exclude_categorieslist of str, optional
Tool categories to exclude from loading. These entire categories will be skipped during tool loading. Can be combined with tool_categories to first select categories and then exclude specific ones.
- include_toolslist of str, optional
Specific tool names to include. If provided, only these tools will be loaded regardless of categories. Overrides category-based selection.
- tools_filestr, optional
Path to a text file containing tool names to include (one per line). Alternative to include_tools parameter. Comments (lines starting with #) and empty lines are ignored.
- tool_config_filesdict of str, optional
Additional tool configuration files to load. Format: {“category_name”: “/path/to/config.json”}. These files will be loaded in addition to the default tool files.
- include_tool_typeslist of str, optional
Specific tool types to include. If provided, only tools of these types will be loaded. Available types include: ‘OpenTarget’, ‘ToolFinderEmbedding’, ‘ToolFinderKeyword’, ‘ToolFinderLLM’, etc.
- exclude_tool_typeslist of str, optional
Tool types to exclude from loading. These tool types will be skipped during tool loading. Useful for excluding entire categories of tools (e.g., all ToolFinder types or all OpenTarget tools).
- spacestr or list of str, optional
Space configuration URI(s) to load. Can be a single URI string or a list of URIs for loading multiple Space configurations. Supported formats: - Local file: “./config.yaml” or “/path/to/config.yaml” - HuggingFace: “hf:username/repo” or “hf:username/repo/file.yaml” - HTTP URL: “https://example.com/config.yaml”
When provided, Space configurations are loaded after tool initialization, applying LLM settings, hooks, and tool selections from the configuration files. Multiple spaces can be loaded sequentially, with later configurations potentially overriding earlier ones.
Example: space=”./my-workspace.yaml” Example: space=[“hf:community/bio-tools”, “./custom-tools.yaml”]
- auto_expose_toolsbool, default True
Whether to automatically expose ToolUniverse tools as MCP tools. When True, all loaded tools become available via the MCP interface with automatic schema conversion and execution wrapping.
- search_enabledbool, default True
Enable AI-powered tool search functionality via tools/find method. Includes ToolFinderLLM (cost-optimized LLM-based), Tool_RAG (embedding-based), and simple keyword search capabilities with intelligent fallback.
- max_workersint, default 5
Maximum number of concurrent worker threads for tool execution. Higher values allow more parallel tool calls but use more resources. Recommended: 5-20 depending on server capacity and expected load.
- hooks_enabledbool, default False
Whether to enable output processing hooks for intelligent post-processing of tool outputs. When True, hooks can automatically summarize long outputs, save results to files, or apply other transformations.
- hook_configdict, optional
Custom hook configuration dictionary. If provided, overrides default hook settings. Should contain ‘hooks’ list with hook definitions. Example: {“hooks”: [{“name”: “summarization_hook”, “type”: “SummarizationHook”, …}]}
- hook_typestr, optional
Simple hook type selection. Can be ‘SummarizationHook’, ‘FileSaveHook’, or a list of both. Provides an easy way to enable hooks without full configuration. Takes precedence over hooks_enabled when specified.
- compact_modebool, default False
Enable compact mode that only exposes core tools to prevent context window overflow. When True: - Only exposes search tools (find_tools), execute tool (execute_tool),
and tool discovery tools (list_tools, grep_tools, get_tool_info)
All tools are still loaded in background for execute_tool to work
Prevents automatic exposure of all tools, reducing context window usage
Maintains full functionality through search and execute capabilities
Tool discovery tools enable progressive disclosure: start with minimal info, request details when needed
Agent-friendly features: simple text search (no regex required), natural language task discovery, combined search+detail tools to reduce tool call overhead
- kwargs
Additional arguments passed to the underlying FastMCP server instance. Supports all FastMCP configuration options for advanced customization.
Raises:¶
- ImportError
If FastMCP is not installed. FastMCP is a required dependency for SMCP. Install with: pip install fastmcp
Notes:¶
SMCP automatically handles ToolUniverse tool loading and MCP conversion
Tool search uses ToolFinderLLM (optimized for cost) when available, gracefully falls back to simpler methods
All tools support JSON argument passing for maximum flexibility
Server supports graceful shutdown and comprehensive resource cleanup
Thread pool execution ensures non-blocking operation for concurrent requests
Built-in error handling provides informative debugging information
- __init__(name=None, tooluniverse_config=None, tool_categories=None, exclude_tools=None, exclude_categories=None, include_tools=None, tools_file=None, tool_config_files=None, include_tool_types=None, exclude_tool_types=None, space=None, auto_expose_tools=True, search_enabled=True, max_workers=5, hooks_enabled=False, hook_config=None, hook_type=None, compact_mode=False, **kwargs)[source]¶
- _load_space_configs(space)[source]¶
Load Space configurations.
This method loads Space configuration(s) and retrieves the LLM config and metadata from ToolUniverse. It completely reuses ToolUniverse’s load_space functionality without reimplementing any logic.
- _register_custom_mcp_methods()[source]¶
Register custom MCP protocol methods for enhanced functionality.
This method extends the standard MCP protocol by registering custom handlers for scientific tool discovery and search operations, as well as MCP Tasks support for long-running operations.
Custom Methods Registered:¶
tools/find: AI-powered tool discovery using natural language queries
tools/search: Alternative endpoint for tool search (alias for tools/find)
tasks/get: Get current task status
tasks/list: List all tasks
tasks/cancel: Cancel a running task
tasks/result: Wait for task completion and get result
Implementation Details:¶
Uses FastMCP’s middleware system instead of request handler patching
Implements custom middleware methods for tools/find and tools/search
Adds MCP Tasks protocol support for long-running tool operations
Standard MCP methods (tools/list, tools/call) are handled by FastMCP
Implements proper error handling and JSON-RPC 2.0 compliance
Notes:¶
This method is called automatically during SMCP initialization and should not be called manually.
- _load_tools_with_filters(tool_type=None)[source]¶
Load tools with the common set of filter parameters.
Centralizes the repeated pattern of calling load_tools with the same exclude/include/tools_file/config kwargs used across _setup_smcp_tools.
- _ensure_compact_mode_categories()[source]¶
Load tool discovery categories required for compact mode.
- _load_by_categories()[source]¶
Load tools for the requested categories with validation and fallback.
- async _tools_find_middleware(context, call_next)[source]¶
Middleware for handling tools/find and tools/search requests.
This middleware intercepts tools/find and tools/search requests and provides AI-powered tool discovery functionality.
- async _handle_tools_find(request_id, params)[source]¶
Handle the custom tools/find MCP method.
Searches for tools by natural language query and returns a JSON-RPC 2.0 response in either
detailed(default) ormcp_standardformat.
- async handle_tasks_result(task_id, auth_context=None, timeout=None)[source]¶
Wait for task completion and return its result.
- async _perform_tool_search(query, categories, limit, use_advanced_search, search_method='auto')[source]¶
Execute tool search using the most appropriate search method available.
Simplified unified interface that leverages the consistent tool interfaces. All search tools now return JSON format directly.
Parameters:¶
- querystr
Natural language query describing the desired tool functionality
- categorieslist of str, optional
Tool categories to filter results by
- limitint
Maximum number of tools to return
- use_advanced_searchbool
Whether to prefer AI-powered search when available
- search_methodstr, default ‘auto’
Specific search method: ‘auto’, ‘llm’, ‘embedding’, ‘keyword’
Returns:¶
- str
JSON string containing search results
- _select_search_tool(search_method, use_advanced_search)[source]¶
Select the appropriate search tool based on method and availability.
- Returns:
Tool name to use for search
- Return type:
- _setup_smcp_tools()[source]¶
Initialize ToolUniverse tools, expose them as MCP tools, and set up search.
Handles: pre-loaded tool detection, category validation and loading with fallback, compact mode discovery categories, tool exposure to MCP, search initialization, and utility tool registration.
- _expose_tooluniverse_tools()[source]¶
Convert and register loaded ToolUniverse tools as MCP-compatible tools.
Skips meta-tools (MCPAutoLoaderTool, MCPClientTool) and tracks already-exposed tools to prevent duplicates. Individual tool failures are logged but do not halt the process.
- _add_search_tools()[source]¶
Register the
find_toolsMCP tool for AI-powered tool discovery.Initializes the tool finder (ToolFinderLLM > Tool_RAG > keyword fallback) and registers a
find_toolsMCP tool that delegates to_perform_tool_search.
- _init_tool_finder()[source]¶
Initialize the best available tool finder (LLM > RAG > keyword).
Sets
self.tool_finder_availableandself.tool_finder_type. Attempts to load thetool_findercategory if no search tools are found among the already-loaded tools.
- _add_utility_tools()[source]¶
Register utility tools (currently a no-op; execute_tool is a native ToolUniverse tool).
- add_custom_tool(name, function, description=None, **kwargs)[source]¶
Add a custom Python function as an MCP tool.
- Parameters:
- Returns:
The decorated function registered with FastMCP.
- _get_tool_annotations(tool_config)[source]¶
Get MCP tool annotations from tool config.
Annotations should already be computed and stored in tool_config[‘mcp_annotations’] during tool registration. This method simply retrieves them, with a fallback to compute them if they’re missing (for backward compatibility).
- async close()[source]¶
Gracefully shut down the SMCP server, stopping the task manager and thread pool.
- _print_tooluniverse_banner()[source]¶
Print ToolUniverse branding banner after FastMCP banner with dynamic information.
- run(*args, **kwargs)[source]¶
Override run method to display ToolUniverse banner after FastMCP banner.
This method intercepts the parent’s run() call to inject our custom banner immediately after FastMCP displays its startup banner.
- run_simple(transport='http', host='0.0.0.0', port=7000, **kwargs)[source]¶
Start the SMCP server with the given transport.
- _SIMPLE_TYPE_MAP = {'array': <class 'list'>, 'boolean': typing.Union[bool, str], 'integer': typing.Union[int, str], 'number': typing.Union[float, str], 'object': <class 'dict'>, 'string': <class 'str'>}¶
- static _resolve_oneof_type(param_info)[source]¶
Convert a JSON Schema oneOf spec to (python_type, field_kwargs_update).
- Returns:
(python_type, extra_field_kwargs) where extra_field_kwargs may contain json_schema_extra with the oneOf schema.
- Return type:
- classmethod _resolve_param_type(param_info)[source]¶
Map a single JSON Schema parameter to (python_type, extra_field_kwargs).
Handles oneOf, simple types, array items cleanup, and nested object cleanup.
- tooluniverse.create_smcp_server(name='SMCP Server', tool_categories=None, search_enabled=True, **kwargs)[source]¶
Create a configured SMCP server instance.
Convenience wrapper around
SMCP(...)with sensible defaults.- Parameters:
- Returns:
Configured SMCP server instance ready to run.
- Return type:
- class tooluniverse.ToolUniverseClient[source]¶
Bases:
objectStandalone client that mirrors ALL ToolUniverse methods via HTTP.
Uses __getattr__ magic to dynamically proxy any method call to the server. When you call client.some_method(**kwargs), it makes an HTTP POST to the server with the method name and arguments.
Benefits: - No need to update client when ToolUniverse changes - Standalone (only needs ‘requests’, no ToolUniverse package) - Automatic method discovery - Identical API to local ToolUniverse
Example
client = ToolUniverseClient(”http://localhost:8080”)
# These all work automatically: client.load_tools(tool_type=[‘uniprot’, ‘ChEMBL’]) prompts = client.prepare_tool_prompts(tool_list, mode=”prompt”) result = client.run_one_function(function_call_json)
# Tomorrow you add a new method to ToolUniverse? # It automatically works: client.your_new_method(param=”value”)
- __init__(base_url='http://localhost:8080')[source]¶
Initialize client.
- Parameters:
base_url (str) – Base URL of ToolUniverse HTTP API server
- __getattr__(method_name)[source]¶
Magic method that intercepts attribute access.
When you call client.some_method(**kwargs), Python: 1. Looks for ‘some_method’ attribute - doesn’t find it 2. Calls this __getattr__(“some_method”) 3. We return a function that makes HTTP call 4. That function gets called with your arguments 5. HTTP request sent to server with method name + args 6. Server calls tu.some_method(**kwargs) 7. Result returned to client
This means ANY ToolUniverse method works automatically! No need to define methods in this class.
- list_available_methods()[source]¶
List all available ToolUniverse methods from the server.
- Returns:
name: Method name
parameters: List of parameter info
docstring: Method documentation
- Return type:
List of method information dicts with
Example
methods = client.list_available_methods() for m in methods:
print(f”{m[‘name’]}: {m[‘docstring’]}”)
- help(method_name=None)[source]¶
Get help about available methods.
- Parameters:
method_name (str | None) – Optional specific method to get help for. If None, lists all methods.
Example
client.help() # List all methods client.help(“load_tools”) # Help for specific method
- reset_server(config=None)[source]¶
Reset the ToolUniverse instance on the server.
Example
client.reset_server() # Reset with default config client.reset_server({“log_level”: “DEBUG”}) # With custom config
- class tooluniverse.ADAStandardsTool[source]¶
Bases:
BaseToolAmerican Diabetes Association (ADA) Standards of Care tools.
Supports three operations: - list_sections: List all sections of the current ADA Standards of Care - search: Search ADA guidelines by topic via PubMed - get_section: Fetch content of a specific ADA Standards section via PMC
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ADMETAITool[source]¶
Bases:
BaseToolTool to predict ADMET properties for a given SMILES string using the admet-ai Python package.
- class tooluniverse.AHAACCGuidelineTool[source]¶
Bases:
BaseToolAmerican Heart Association (AHA) and American College of Cardiology (ACC) guideline tools. Uses PubMed to search and list clinical practice guidelines.
Supports three operations: - search: Search AHA/ACC guidelines by topic - list_aha: List recent AHA guidelines - list_acc: List recent ACC guidelines
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.AgenticTool[source]¶
Bases:
BaseToolGeneric wrapper around LLM prompting supporting JSON-defined configs with prompts and input arguments.
- STREAM_FLAG_KEY = '_tooluniverse_stream'¶
- static has_any_api_keys()[source]¶
Check if any API keys are available across all supported API types.
- Returns
bool: True if at least one API type has all required keys, False otherwise
- _get_global_fallback_chain()[source]¶
Get the global fallback chain from environment or use default.
- _try_initialize_api()[source]¶
Try to initialize the primary API, fallback to secondary if configured.
- run(arguments, stream_callback=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.AllenBrainTool[source]¶
Bases:
BaseToolTool for querying the Allen Brain Atlas REST API.
Provides access to: - Gene information and expression datasets - Brain structure ontology (mouse and human) - Section data sets for gene expression images - Spatial expression quantification
The API uses RMA (RESTful Model Access) query syntax. No authentication required.
- class tooluniverse.AllianceGenomeTool[source]¶
Bases:
BaseToolTool for querying the Alliance of Genome Resources API.
Provides cross-species gene information across 7 model organisms (yeast, fly, worm, zebrafish, rat, mouse, frog) plus human. Supports gene detail, disease associations, phenotypes, and search.
No authentication required.
- class tooluniverse.AlphaFoldRESTTool[source]¶
Bases:
BaseToolAlphaFold Protein Structure Database API tool. Generic wrapper for AlphaFold API endpoints from alphafold_tools.json.
- class tooluniverse.AlphaMissenseTool[source]¶
Bases:
BaseToolTool for querying AlphaMissense pathogenicity predictions.
AlphaMissense uses deep learning trained on evolutionary data to predict the pathogenicity of all possible single amino acid substitutions in human proteins.
Classification thresholds: - Pathogenic: score > 0.564 - Ambiguous: 0.34 <= score <= 0.564 - Benign: score < 0.34
No authentication required. Free for academic/research use.
- PATHOGENIC_THRESHOLD = 0.564¶
- BENIGN_THRESHOLD = 0.34¶
- _get_protein_scores(arguments)[source]¶
Get AlphaMissense scores for a protein by UniProt ID.
Note: The AlphaMissense API requires querying individual residue positions. This method demonstrates access to the data by sampling the first position. For complete protein-wide analysis, use get_residue_scores for each position.
- class tooluniverse.ArXivPDFSnippetsTool[source]¶
Bases:
BaseToolFetch an arXiv paper’s PDF and return bounded text snippets around user-provided terms. Uses markitdown to convert PDF to markdown text.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ArXivTool[source]¶
Bases:
BaseToolSearch arXiv for papers by keyword using the public arXiv API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ArrayExpressRESTTool[source]¶
Bases:
BaseToolArrayExpress REST API tool - Original ArrayExpress Database.
Accesses the official ArrayExpress functional genomics database. ArrayExpress is the authoritative source for gene expression data, microarray experiments, and RNA-seq studies from EBI.
The database infrastructure uses BioStudies backend for improved performance and integration, but this tool specifically queries the ArrayExpress collection to maintain the original data source.
- class tooluniverse.BRENDATool[source]¶
Bases:
BaseToolTool for querying BRENDA enzyme database.
BRENDA provides: - Enzyme kinetic parameters (Km, kcat, Ki) - Substrate/product information - Enzyme inhibitors and activators - Organism-specific data
Uses BRENDA SPARQL endpoint. No authentication required.
- class tooluniverse.BVBRCTool[source]¶
Bases:
BaseToolTool for querying the BV-BRC pathogen genomics database.
BV-BRC provides comprehensive pathogen genome data including genome metadata, antimicrobial resistance phenotypes, and annotated genome features. Covers bacteria and viruses with rich AMR surveillance data.
No authentication required.
- _build_query_string(conditions, limit=25, select_fields=None)[source]¶
Build BV-BRC SOLR-like query string.
- class tooluniverse.BaseMCPClient[source]¶
Bases:
objectBase MCP client with common functionality shared between MCPClientTool and MCPAutoLoaderTool. Provides session management, request handling, and async cleanup patterns.
- class tooluniverse.BasePythonExecutor[source]¶
Bases:
objectBase class for Python execution tools with shared security features.
- SAFE_BUILTINS = {'__import__', 'abs', 'all', 'any', 'bool', 'callable', 'dict', 'enumerate', 'filter', 'float', 'getattr', 'hasattr', 'int', 'isinstance', 'len', 'list', 'map', 'max', 'min', 'print', 'range', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'str', 'sum', 'tuple', 'type', 'zip'}¶
- DEFAULT_ALLOWED_MODULES = {'collections', 'dataclasses', 'datetime', 'decimal', 'fractions', 'itertools', 'json', 'math', 'matplotlib', 'numpy', 'random', 're', 'scipy', 'statistics', 'sympy', 'typing'}¶
- FORBIDDEN_AST_NODES = {'Attribute': ['__import__', 'open', 'file'], 'Call': ['open', 'eval', 'exec', 'compile', '__import__', 'input', 'raw_input'], 'Import': ['os', 'sys', 'subprocess', 'socket', 'urllib', 'requests', 'http']}¶
- _create_safe_globals(additional_vars=None)[source]¶
Create a safe globals dictionary with restricted builtins.
- _capture_output(func, *args, **kwargs)[source]¶
Capture stdout and stderr during function execution.
- _execute_with_timeout(func, timeout_seconds, *args, **kwargs)[source]¶
Execute function with timeout using signal or threading.
- _format_error_response(error, error_type, stdout='', stderr='', execution_time=0)[source]¶
Format error response with detailed information.
- _format_success_response(result, stdout, stderr, execution_time, code_lines=0, ast_warnings=None)[source]¶
Format success response with execution details.
- class tooluniverse.BaseRESTTool[source]¶
Bases:
BaseToolBase class for REST API tools with common HTTP request handling.
Provides reusable methods for: - Building URLs with path parameters (e.g., {id}, {doi}) - Constructing query parameters - Making HTTP requests with retry logic - Standard error handling and response formatting
Subclasses should override: - _get_param_mapping() - to customize parameter name mappings - _process_response() - to customize response processing - _handle_special_endpoint() - for endpoint-specific logic
- _get_param_mapping()[source]¶
Get parameter name mappings from argument names to API parameter names.
Override this in subclasses to provide custom mappings. Example: {“limit”: “rows”, “query”: “q”}
- _process_response(response, url)[source]¶
Process successful API response.
Override this in subclasses for API-specific response handling.
- class tooluniverse.BgeeTool[source]¶
Bases:
BaseToolTool for querying the Bgee gene expression database.
Bgee integrates expression data from multiple data types (RNA-Seq, Affymetrix, EST, in situ hybridization) and provides curated present/absent expression calls across tissues and developmental stages.
No authentication required.
- class tooluniverse.BiGGModelsTool[source]¶
Bases:
BaseToolBiGG Models API tool for metabolic modeling.
Provides access to: - Genome-scale metabolic models (85+ organisms) - Reactions, metabolites, and genes - Universal reaction/metabolite databases - Model downloads in multiple formats
- class tooluniverse.BinaryDownloadTool[source]¶
Bases:
BaseToolDownload binary files with chunked streaming.
Optimized for large binary files like images, videos, executables. Supports chunked downloads for better memory management.
Expects: {“url”: “https://…”, “output_path”: “/path/to/save”} Optional: {“chunk_size”: bytes, “timeout”: seconds} Returns: {“file_path”: “…”, “size”: bytes, “content_type”: “…”}
- class tooluniverse.BindingDBTool[source]¶
Bases:
BaseToolTool for querying BindingDB binding affinity database.
- BASE_URL = 'https://www.bindingdb.org/rest'¶
- class tooluniverse.BioGRIDRESTTool[source]¶
Bases:
BaseToolBioGRID Database REST API tool. Generic wrapper for BioGRID API endpoints defined in ppi_tools.json.
- _ORGANISM_MAP = {'homo sapiens': 9606, 'mus musculus': 10090, 'saccharomyces cerevisiae': 559292}¶
- _LIST_PARAM_MAP = {'chemical_names': 'chemicalList', 'evidence_types': 'evidenceList', 'gene_names': 'geneList', 'ptm_type': 'ptmType', 'pubmed_ids': 'pubmedList'}¶
- class tooluniverse.BioImageArchiveTool[source]¶
Bases:
BaseToolTool for querying the BioImage Archive at EBI.
Provides access to biological imaging datasets including fluorescence microscopy, cryo-EM, confocal imaging, and other life sciences imaging modalities. Supports searching studies and retrieving detailed metadata.
No authentication required.
- class tooluniverse.BioModelsRESTTool[source]¶
Bases:
BaseRESTToolGeneric REST tool for BioModels API endpoints.
- class tooluniverse.BioPortalTool[source]¶
Bases:
BaseToolTool for querying BioPortal, the largest biomedical ontology repository.
BioPortal hosts 900+ ontologies covering diseases (DOID, MONDO), phenotypes (HPO), gene function (GO), chemicals (CHEBI), anatomy (UBERON), drugs (RXNORM), and more.
Supports: cross-ontology search, concept detail lookup, text annotation with ontology terms, and concept hierarchy traversal.
Uses public demo API key (no registration required).
- class tooluniverse.BioRxivTool[source]¶
Bases:
BaseToolGet bioRxiv or medRxiv preprint metadata by DOI.
This tool retrieves full metadata for a specific preprint using the bioRxiv API. For searching preprints by keywords, use EuropePMC_search_articles with ‘SRC:PPR’ filter instead.
- Parameters:
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.BioSamplesTool[source]¶
Bases:
BaseToolTool for querying EBI BioSamples database.
Provides access to biological sample metadata including organism, tissue type, disease state, and links to associated data archives.
No authentication required for read access.
- class tooluniverse.BioStudiesRESTTool[source]¶
Bases:
BaseToolBioStudies REST API tool.
BioStudies is a general-purpose repository for biological studies at EMBL-EBI. It provides access to diverse study types including genomics, transcriptomics, proteomics, imaging, and more.
- class tooluniverse.Boltz2DockingTool[source]¶
Bases:
BaseToolTool to perform protein-ligand docking and affinity prediction using the local Boltz-2 model. This tool constructs a YAML input file, runs the boltz predict command, and parses the output to return the predicted structure and affinity.
- __init__(tool_config)[source]¶
Initializes the BoltzDockingTool. Checks if the ‘boltz’ command is available in the system’s PATH.
- run(arguments=None, timeout=1200)[source]¶
Executes the Boltz prediction.
- Parameters:
arguments (
dict) – A dictionary containing the necessary inputs. - protein_sequence (str): The amino acid sequence of the protein. - ligands (list[dict]): A list of ligands, each with a ‘smiles’ or ‘ccd’ key. - constraints (list[dict], optional): Covalent bonds or other constraints. - templates (list[dict], optional): Structural templates. - other optional boltz CLI flags (e.g., ‘recycling_steps’).timeout (
int) – The maximum time in seconds to wait for the Boltz command to complete.
- Returns
dict: A dictionary containing the path to the predicted structure and affinity data, or an error.
- class tooluniverse.CADDTool[source]¶
Bases:
BaseToolTool for querying CADD API for variant deleteriousness scores.
CADD integrates diverse annotations into a single metric (PHRED score) by contrasting variants that survived natural selection with simulated mutations.
PHRED score interpretation: - >= 10: Top 10% most deleterious (likely damaging) - >= 20: Top 1% most deleterious (damaging) - >= 30: Top 0.1% most deleterious (highly damaging) - Common pathogenic threshold: 15-20
Supported genome builds: GRCh37, GRCh38 Current version: v1.7
No authentication required. API is experimental.
- DEFAULT_VERSION = 'GRCh38-v1.7'¶
- _get_variant_score(arguments)[source]¶
Get CADD score for a specific SNV.
Query format: chrom:pos_ref_alt (e.g., 7:140453136_A_T for BRAF V600E)
- class tooluniverse.CATHTool[source]¶
Bases:
BaseToolTool for querying the CATH protein structure classification database.
CATH classifies protein domain structures into a hierarchy: Class -> Architecture -> Topology -> Homologous superfamily. Covers 500,000+ domains from PDB and AFDB structures.
No authentication required.
- class tooluniverse.CBioPortalRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CDCRESTTool[source]¶
Bases:
BaseToolCDC Data.CDC.gov REST API tool (Socrata-based open data portal).
- class tooluniverse.CELLxGENECensusTool[source]¶
Bases:
BaseToolCELLxGENE Census API tool for accessing single-cell RNA-seq data. Provides access to cell metadata, gene expression, and embeddings.
- class tooluniverse.CellPaintingTool[source]¶
Bases:
BaseToolTool for querying Cell Painting datasets hosted on the Image Data Resource (IDR).
Provides access to: - Available Cell Painting screens (studies) - Plates within a screen - Well-level metadata and image links for a plate
- class tooluniverse.CIViCTool[source]¶
Bases:
BaseToolTool for querying CIViC (Clinical Interpretation of Variants in Cancer).
CIViC provides: - Expert-curated cancer variant interpretations - Clinical evidence levels - Drug-variant associations - Disease-variant associations
Uses GraphQL API. No authentication required. Free for academic/research use.
- class tooluniverse.CMAGuidelinesTool[source]¶
Bases:
BaseToolCanadian clinical practice guidelines search tool. Searches PubMed for Canadian clinical practice guidelines published by Canadian healthcare organizations including CMA, Canadian Task Force, and others.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.COSMICTool[source]¶
Bases:
BaseToolTool for querying COSMIC (Catalogue of Somatic Mutations in Cancer).
COSMIC provides: - Somatic mutation data in human cancers - Gene-level mutation information - Mutation coordinates and amino acid changes - Associated cancer types
Uses NLM Clinical Tables API. No authentication required.
- class tooluniverse.CTDTool[source]¶
Bases:
BaseToolTool for querying the Comparative Toxicogenomics Database (CTD).
CTD curates chemical-gene, chemical-disease, and gene-disease relationships from peer-reviewed literature. Supports queries by chemical names, gene symbols, disease names, or their standard identifiers.
No authentication required.
- class tooluniverse.CTFPHCListGuidelinesTool[source]¶
Bases:
BaseToolList all published guidelines from the Canadian Task Force on Preventive Health Care (CTFPHC). Fetches the official published-guidelines index page and returns title, URL, and year for each guideline.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CTFPHCSearchGuidelinesTool[source]¶
Bases:
BaseToolSearch published guidelines from the Canadian Task Force on Preventive Health Care (CTFPHC) by keyword. Fetches the official index and filters client-side by title match.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CTGovAPITool[source]¶
Bases:
BaseRESTToolTool for querying the ClinicalTrials.gov API v2.
Provides access to 572,000+ clinical trial records including: - Study protocol information (design, eligibility, interventions) - Recruitment status and enrollment data - Results and outcome measures - Sponsor and contact information
No authentication required.
- class tooluniverse.CellosaurusGetCellLineInfoTool[source]¶
Bases:
BaseToolTool to get detailed information about a specific cell line using its accession number.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CellosaurusQueryConverterTool[source]¶
Bases:
BaseToolTool to convert natural language queries to Solr syntax for Cellosaurus API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- _calculate_similarity(term, text)[source]¶
Calculate similarity between a term and text using SequenceMatcher.
- _map_term_to_field(term)[source]¶
Map a natural language term to Cellosaurus fields based on semantic similarity.
- _extract_field_terms(query)[source]¶
Extract field-specific terms from the query using semantic mapping.
- class tooluniverse.CellosaurusSearchTool[source]¶
Bases:
BaseToolTool to search Cellosaurus cell lines using the official API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CellxGeneDiscoveryTool[source]¶
Bases:
BaseToolTool for CZI CellxGene Discovery API providing access to single-cell RNA-seq datasets and curated collections.
No authentication required.
- class tooluniverse.ChEBITool[source]¶
Bases:
BaseToolTool for querying ChEBI (Chemical Entities of Biological Interest).
Provides compound lookup, text search, and ontology navigation for small molecules of biological relevance.
No authentication required.
- class tooluniverse.ChEMBLRESTTool[source]¶
Bases:
BaseToolGeneric ChEMBL REST API tool. Wrapper for ChEMBL API endpoints defined in chembl_tools.json. Supports all ChEMBL data resources: molecules, targets, assays, activities, drugs, etc.
- class tooluniverse.ChEMBLTool[source]¶
Bases:
BaseToolTool to search for molecules similar to a given compound name or SMILES using the ChEMBL Web Services API.
Note: This tool is designed for small molecule compounds only. Biologics (antibodies, proteins, oligonucleotides, etc.) do not have SMILES structures and cannot be used for structure-based similarity search. The tool will provide detailed error messages when biologics are queried, explaining the reason and suggesting alternative tools.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- get_chembl_id_by_name(compound_name)[source]¶
Search ChEMBL for a compound by name and return the ChEMBL ID of the first match.
- get_smiles_pref_name_by_chembl_id(query)[source]¶
Given a ChEMBL ID, return a dict with canonical SMILES and preferred name.
- class tooluniverse.ChIPAtlasTool[source]¶
Bases:
BaseToolChIP-Atlas API tool for accessing chromatin data. Provides enrichment analysis, peak browsing, and dataset search.
- _enrichment_analysis(arguments)[source]¶
Perform enrichment analysis on genomic regions, motifs, or gene lists. Identifies proteins bound to input regions more often than expected.
- class tooluniverse.ClinGenARTool[source]¶
Bases:
BaseToolTool for querying the ClinGen Allele Registry.
The Allele Registry normalizes variant nomenclature and provides canonical allele identifiers (CA IDs) that link to ClinVar, dbSNP, COSMIC, gnomAD, and other variant databases. Supports HGVS notation lookup and external record retrieval.
No authentication required.
- class tooluniverse.ClinGenDosageTool[source]¶
Bases:
BaseToolClinGen Dosage Sensitivity JSON API tool.
Uses the search.clinicalgenome.org/api/dosage endpoint which returns structured JSON with detailed dosage sensitivity curations.
- class tooluniverse.ClinGenTool[source]¶
Bases:
BaseToolClinGen Database REST API tool.
Provides access to ClinGen curated data including gene-disease validity, dosage sensitivity, and clinical actionability.
- _get_actionability_adult(arguments)[source]¶
Get clinical actionability curations for adult context.
- _get_actionability_pediatric(arguments)[source]¶
Get clinical actionability curations for pediatric context.
- _get_actionability(arguments, context)[source]¶
Get clinical actionability curations for a specific context.
- _search_actionability(arguments)[source]¶
Search clinical actionability across both adult and pediatric contexts.
- class tooluniverse.ClinVarGetClinicalSignificance[source]¶
Bases:
ClinVarRESTToolGet clinical significance information for variants.
- class tooluniverse.ClinVarGetVariantDetails[source]¶
Bases:
ClinVarRESTToolGet detailed variant information by ClinVar ID.
- class tooluniverse.ClinVarRESTTool[source]¶
Bases:
BaseToolBase class for ClinVar REST API tools.
- class tooluniverse.ClinVarSearchVariants[source]¶
Bases:
ClinVarRESTToolSearch for variants in ClinVar by gene or condition.
- class tooluniverse.ClinicalTrialsDetailsTool[source]¶
Bases:
ClinicalTrialsTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ClinicalTrialsGovTool[source]¶
Bases:
BaseToolTool for searching clinical trials using ClinicalTrials.gov API v2.
- BASE_URL = 'https://clinicaltrials.gov/api/v2/studies'¶
- run(arguments)[source]¶
Executes the ClinicalTrials tool action.
- Parameters:
arguments (
Dict[str, Any]) – Dictionary containing the action and its parameters. Expected keys: - action (str): “search_studies” or “get_study_details” - condition (str, optional): Condition to search for. - intervention (str, optional): Intervention/Drug to search for. - nct_id (str, optional): NCT ID for details. - limit (int, optional): Max results (default 10).- Returns:
The results.
- Return type:
Dict[str, Any]
- class tooluniverse.ClinicalTrialsSearchTool[source]¶
Bases:
ClinicalTrialsTool
- class tooluniverse.ClinicalTrialsTool[source]¶
Bases:
RESTfulTool- _BASE_URL = 'https://clinicaltrials.gov/api/v2'¶
- _OPERATION_URLS = {'field_values': '/stats/field-values', 'get_study': '/studies', 'search': '/studies', 'stats_size': '/stats/size'}¶
- _map_param_names(arguments)[source]¶
Maps the parameter names in the arguments dictionary to the expected parameter names defined in the tool’s JSON configuration.
- Parameters:
arguments (
dict) – Runtime arguments provided to the tool’s run method.
- Returns
dict: A new dictionary with mapped parameter names.
- _prepare_api_params(arguments)[source]¶
Prepares the dictionary of parameters for the API query string based on tool config and runtime arguments.
- Parameters:
arguments (
dict) – Runtime arguments provided to the tool’s run method.
- Returns
dict: A dictionary of parameters ready for the API requests.
- _format_endpoint_url(arguments)[source]¶
Formats the endpoint URL by substituting path parameters (like {nctId}) with values from the arguments dictionary.
- Parameters:
arguments (
dict) – Runtime arguments provided to the tool’s run method.
- Returns
str: The formatted endpoint URL.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ChemComputeTool[source]¶
Bases:
BaseToolLocal computational chemistry tools using RDKit.
No external API calls. Provides: - Synthetic Accessibility (SA) Score computation
- class tooluniverse.ClueTool[source]¶
Bases:
BaseToolTool for querying the CLUE.io L1000 Connectivity Map API.
Provides access to: - Perturbation signatures (genetic and chemical) - Gene expression profiles - Cell line information - Compound/drug information
- _unwrap_list(data)[source]¶
Extract the list payload from an API response that may be a list or a dict with a ‘data’ key.
- class tooluniverse.ComplexPortalTool[source]¶
Bases:
BaseToolTool for querying the EBI Complex Portal for curated protein complexes.
Provides access to: - Protein complex search by gene/protein name - Detailed complex compositions and stoichiometry - Complex function, disease associations, and cross-references - Data from CORUM and other curated complex databases
No authentication required.
- class tooluniverse.ComposeTool[source]¶
Bases:
BaseToolA flexible tool that can compose other tools using custom code logic. Supports both inline composition_code and external Python files. Features intelligent dependency management with automatic tool loading.
- __init__(tool_config, tooluniverse=None)[source]¶
Initialize the ComposeTool.
- Parameters:
tool_config (
dict) – Tool configuration containing composition code or file referencetooluniverse (
ToolUniverse) – Reference to the ToolUniverse instance
- _discover_tool_dependencies()[source]¶
Automatically discover tool dependencies from composition code.
- Returns
set: Set of tool names that this composition calls
- _get_tool_category_mapping()[source]¶
Create a mapping from tool names to their categories.
- Returns
dict: Mapping of tool names to category names
- _load_missing_dependencies(missing_tools)[source]¶
Automatically load missing tool dependencies.
- Parameters:
missing_tools (
set) – Set of missing tool names
- Returns
tuple: (successfully_loaded, failed_to_load)
- _load_code_from_file()[source]¶
Load composition code from external Python file.
- Returns
str: The composition code as a string
- run(arguments, stream_callback=None)[source]¶
Execute the composed tool with custom code logic.
- Parameters:
arguments (
dict) – Input arguments for the compositionstream_callback (
callable, optional) – Callback function for streaming output
- Returns
Any: Result from the composition execution
- _emit_stream_chunk(chunk, stream_callback)[source]¶
Emit a stream chunk if callback is provided.
- Parameters:
chunk (
str) – The chunk to emitstream_callback (
callable, optional) – Callback function for streaming output
- _create_event_emitter(stream_callback)[source]¶
Create an event emitter function for the compose script.
- Parameters:
stream_callback (
callable, optional) – Callback function for streaming output
- Returns
callable: Event emitter function
- _execute_from_file(arguments, stream_callback=None)[source]¶
Execute composition code from external file.
- Parameters:
arguments (
dict) – Input argumentsstream_callback (
callable, optional) – Callback function for streaming output
- Returns
Any: Result from the composition execution
- class tooluniverse.CorePDFSnippetsTool[source]¶
Bases:
BaseToolFetch an open-access PDF (commonly returned by CORE) and return bounded text snippets around user-provided terms.
Extraction backends (fastest first when extractor=”auto”): - PyMuPDF (fitz) - pypdf - markitdown
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.CoreTool[source]¶
Bases:
BaseToolTool for searching CORE open access academic papers.
- class tooluniverse.CrossrefRESTTool[source]¶
Bases:
BaseRESTToolGeneric REST tool for Crossref API endpoints.
- class tooluniverse.CustomTool[source]¶
Bases:
BaseToolCustomTool class for executing dynamically generated tools
- class tooluniverse.DBLPTool[source]¶
Bases:
BaseToolSearch DBLP Computer Science Bibliography for publications.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.DBpediaSPARQLTool[source]¶
Bases:
BaseToolRun SPARQL queries against DBpedia to retrieve structured knowledge.
DBpedia is a project that extracts structured information from Wikipedia and makes it available as linked data. This tool is particularly useful for querying information about people, places, organizations, works, and other entities, especially in humanities and social sciences domains.
- Parameters (arguments):
sparql (str): SPARQL query string max_results (int): Optional result limit override
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.DGIdbTool[source]¶
Bases:
BaseToolTool for querying DGIdb REST API.
DGIdb provides drug-gene interaction data including: - Drug-gene interactions from 30+ sources - Druggability annotations - Gene categories (kinase, ion channel, etc.)
No authentication required. Free for academic/research use.
- class tooluniverse.DNATool[source]¶
Bases:
BaseToolLocal DNA sequence analysis and design tools.
No external API calls. Provides: - Restriction site detection (NEB enzyme library) - Open reading frame (ORF) finding - GC content calculation - Reverse complement generation - DNA to protein translation
- _find_restriction_sites(arguments)[source]¶
Find restriction enzyme recognition sites in a DNA sequence.
- _calculate_gc_content(arguments)[source]¶
Calculate GC content and nucleotide composition of a DNA sequence.
- _translate_sequence(arguments)[source]¶
Translate a DNA sequence to protein using the standard codon table.
- _codon_optimize(arguments)[source]¶
Codon-optimize an amino acid sequence for expression in a target species.
- _calc_tm_nn(primer)[source]¶
Calculate melting temperature using SantaLucia 1998 nearest-neighbor model.
- class tooluniverse.DOAJTool[source]¶
Bases:
BaseToolSearch DOAJ (Directory of Open Access Journals) articles and journals.
- Parameters (arguments):
query (str): Query string (Lucene syntax supported by DOAJ) max_results (int): Max number of results (default 10, max 100) type (str): “articles” or “journals” (default: “articles”)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.DailyMedSPLParserTool[source]¶
Bases:
BaseToolParse DailyMed SPL XML into structured data (adverse reactions, dosing, contraindications, interactions, PK).
- class tooluniverse.DatasetTool[source]¶
Bases:
BaseToolTool to search and filter the DrugBank vocabulary dataset. Provides functionality to search drugs by name, ID, synonyms and filter by various criteria.
- _drugbank_search(arguments)[source]¶
Search drugs by name, ID, synonyms, or other fields using text-based queries.
This function is dedicated to text-based searching across specified fields. It performs substring or exact matching based on user preferences.
- Parameters:
arguments (
dict) – Search parameters including: - query (str): Text to search for - search_fields (list): Fields to search in - case_sensitive (bool): Whether search is case sensitive - exact_match (bool): Whether to perform exact matching - limit (int): Maximum number of results
- Returns
dict: Search results with matched records and metadata
- _drugbank_filter(arguments)[source]¶
Filter drugs based on specific criteria and field-based conditions.
This function is dedicated to criteria-based filtering using simple field-condition-value parameters. It supports filter types like contains, starts_with, ends_with, exact, not_empty.
- Parameters:
arguments (
dict) – Filter parameters including: - field (str): Field name to filter on - condition (str): Type of condition (contains, starts_with, ends_with, exact, not_empty) - value (str): Value to filter by (optional for not_empty condition) - limit (int): Maximum number of results
- Returns
dict: Filtered results with matched records and applied filters
- class tooluniverse.DbfetchRESTTool[source]¶
Bases:
BaseToolDbfetch REST API tool. Generic wrapper for Dbfetch API endpoints defined in dbfetch_tools.json.
- class tooluniverse.DeepGOTool[source]¶
Bases:
BaseToolTool for predicting protein function using DeepGO.
- BASE_URL = 'https://deepgo.cbrc.kaust.edu.sa/deepgo'¶
- API_VERSION = '1.0.26'¶
- class tooluniverse.DepMapTool[source]¶
Bases:
BaseToolTool for querying DepMap/Sanger Cell Model Passports API.
Provides access to: - Cancer cell line dependency data (CRISPR screens) - Drug sensitivity profiles - Cell line metadata and annotations - Gene effect scores for target validation
No authentication required for non-commercial use.
- _get_cell_lines(arguments)[source]¶
Get list of cancer cell lines with metadata.
Filter by tissue type or cancer type.
- _get_cell_line(arguments)[source]¶
Get detailed information for a specific cell line.
Returns metadata, mutations, and available data types.
- _get_gene_dependencies(arguments)[source]¶
Get CRISPR gene dependency data.
Returns gene effect scores indicating essentiality in cancer cell lines. Negative scores indicate the gene is essential (cell death upon knockout).
- class tooluniverse.DetailedTermInfo[source]¶
Bases:
TermInfoExtended term details in OLS.
- _abc_impl = <_abc._abc_data object>¶
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tooluniverse.DfamTool[source]¶
Bases:
BaseToolTool for querying Dfam transposable element / repeat element database.
Supports: - Search TE families by name prefix, clade (taxon ID), and repeat type - Get detailed family info including consensus sequence and classification - Get TE annotation hits for genomic regions
No authentication required.
- class tooluniverse.DisGeNETTool[source]¶
Bases:
BaseToolTool for querying DisGeNET gene-disease association database.
DisGeNET provides: - Gene-disease associations (GDAs) - Variant-disease associations (VDAs) - Disease-disease associations - Aggregated evidence scores
Requires API key via DISGENET_API_KEY environment variable. Register for free at https://www.disgenet.org/
- _get_gene_disease_associations(arguments)[source]¶
Get gene-disease associations with filtering options.
- class tooluniverse.DisProtTool[source]¶
Bases:
BaseToolTool for querying DisProt intrinsically disordered protein database.
Supports: - Search disordered proteins by text query - Get detailed disorder region annotations for a specific protein
No authentication required.
- class tooluniverse.DiseaseOntologyTool[source]¶
Bases:
BaseToolTool for querying the Disease Ontology (DO) REST API.
The Disease Ontology semantically integrates disease and medical vocabularies through cross-mapping of DO terms to MeSH, ICD, NCI Thesaurus, SNOMED CT, and OMIM.
Supports: term lookup, parent hierarchy navigation.
No authentication required.
- class tooluniverse.DiseaseTargetScoreTool[source]¶
Bases:
GraphQLToolTool to extract disease-target association scores from specific data sources
- class tooluniverse.DoseResponseTool[source]¶
Bases:
BaseToolLocal dose-response curve fitting and IC50 calculation tools.
Implements the 4-Parameter Logistic (4PL) model: f(x) = Bottom + (Top - Bottom) / (1 + (IC50/x)^Hill)
No external API required. Uses scipy.optimize for curve fitting.
- class tooluniverse.DrugSynergyTool[source]¶
Bases:
BaseToolLocal drug combination synergy analysis tools.
Implements standard pharmacological synergy models: - Bliss Independence model - Highest Single Agent (HSA) model - ZIP (Zero Interaction Potency) model
No external API required. Uses numpy for computation.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- _calculate_bliss(arguments)[source]¶
Calculate Bliss Independence synergy score.
Bliss model: E_expected = E_a + E_b - E_a * E_b Synergy score = E_combination - E_expected Positive score = synergy; Negative = antagonism.
Effects should be expressed as fractional inhibition (0-1).
- class tooluniverse.DynamicPackageDiscovery[source]¶
Bases:
BaseToolSearches PyPI and evaluates packages dynamically based on requirements
- class tooluniverse.EBIProteinsCoordinatesTool[source]¶
Bases:
BaseToolTool for querying EBI Proteins API coordinate mappings.
Supports: - Map protein positions to genomic coordinates (exon-level) - Get protein-to-genome coordinate mappings for a UniProt accession
No authentication required.
- class tooluniverse.EBIProteinsEpitopeTool[source]¶
Bases:
BaseToolTool for querying protein epitope data from the EBI Proteins API.
Epitopes are regions of proteins recognized by the immune system (antibodies, T cells). This tool retrieves experimentally-determined epitope regions from the Immune Epitope Database (IEDB), including epitope sequences, positions, and supporting literature.
Useful for: vaccine design, therapeutic antibody development, immunogenicity assessment, B-cell/T-cell epitope mapping.
No authentication required.
- class tooluniverse.EBIProteinsExtTool[source]¶
Bases:
BaseToolExtended tool for EBI Proteins API covering mutagenesis and PTM data.
These endpoints provide detailed mutagenesis experiment results and mass spectrometry-based post-translational modification evidence mapped to UniProt protein sequences.
Supports: mutagenesis data, proteomics PTM evidence.
No authentication required.
- class tooluniverse.EBIProteinsFeaturesTool[source]¶
Bases:
BaseToolTool for retrieving category-specific protein features from EBI Proteins API.
Different from EBIProteinsExtTool (mutagenesis, PTM) - this covers domain/site annotations, molecule processing info, and secondary structure.
No authentication required.
- class tooluniverse.EBIProteinsInteractionsTool[source]¶
Bases:
BaseToolTool for querying EBI Proteins protein-protein interaction data.
Supports: - Get interaction partners for a protein (from IntAct) - Get detailed protein info with interactions, diseases, locations
No authentication required.
- class tooluniverse.EBISearchRESTTool[source]¶
Bases:
BaseToolEBI Search API tool. Generic wrapper for EBI Search API endpoints defined in ebi_search_tools.json.
- class tooluniverse.EBITaxonomyTool[source]¶
Bases:
BaseToolTool for querying the EBI Taxonomy REST API.
Provides taxonomy lookup by ID, scientific name, common/any name, and name suggestion for search or submission. Returns taxonomic classification including lineage, rank, division, and genetic codes.
No authentication required.
- class tooluniverse.EFOTool[source]¶
Bases:
BaseToolTool to lookup Experimental Factor Ontology (EFO) IDs for diseases via the EMBL-EBI OLS API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EMDBRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EMoleculesTool[source]¶
Bases:
BaseToolTool for searching eMolecules vendor aggregator.
eMolecules provides: - Multi-vendor compound search - Pricing and availability - Structure search - Building block sourcing
Note: Full API access may require registration. Basic search functionality available without API key.
- _search(arguments)[source]¶
Search eMolecules by keyword or compound name.
Note: eMolecules does not provide a public API. This tool returns search URLs for the eMolecules web interface.
- _search_smiles(arguments)[source]¶
Search eMolecules by SMILES structure.
Note: eMolecules does not provide a public API. This tool returns search URLs for the eMolecules web interface.
- class tooluniverse.ENABrowserRESTTool[source]¶
Bases:
BaseToolENA Browser API REST tool. Generic wrapper for ENA Browser API endpoints defined in ena_browser_tools.json.
- class tooluniverse.ENAPortalTool[source]¶
Bases:
BaseToolTool for querying the European Nucleotide Archive (ENA) Portal API.
Supports searching for studies, samples, and sequences with flexible filtering by taxonomy, text content, and custom field selection.
No authentication required.
- class tooluniverse.ENCODERESTTool[source]¶
Bases:
BaseRESTToolGeneric REST tool for ENCODE detail endpoints.
- class tooluniverse.ENCODESearchTool[source]¶
Bases:
objectGeneric search tool for ENCODE database.
Searches experiments, files, or biosamples depending on search_type in config. Consolidates ENCODESearchTool, ENCODEFilesTool, and ENCODESearchBiosamplesTool.
- class tooluniverse.EOLTool[source]¶
Bases:
BaseToolTool for querying the Encyclopedia of Life (EOL).
EOL aggregates biodiversity data from hundreds of sources into a comprehensive knowledge base covering ~3.6 million species pages. Provides species search, detailed taxon pages with media (images, text descriptions), taxonomy hierarchies from multiple classification systems, and curated collections.
Supports: species search, taxon page details, taxonomy hierarchy, collections browse.
No authentication required.
- class tooluniverse.EVETool[source]¶
Bases:
BaseToolTool for querying EVE variant effect predictions.
EVE provides: - Unsupervised pathogenicity predictions trained on evolutionary data - Scores from 0 (benign) to 1 (pathogenic) - Predictions for single amino acid variants
EVE scores complement supervised methods like ClinVar annotations. Uses Ensembl VEP API with EVE plugin for variant scoring.
- PATHOGENIC_THRESHOLD = 0.5¶
- class tooluniverse.EmbeddingCollectionSearchTool[source]¶
Bases:
BaseToolGeneric search tool for any embedding datastore collection.
Runtime arguments¶
- querystr (required)
Search query text.
- methodstr = “hybrid”
One of: “keyword”, “embedding”, “hybrid”.
- top_kint = 10
Number of results to return.
- alphafloat = 0.5
Balance for hybrid search (0=keyword only, 1=embedding only).
- returns:
doc_id
doc_key
text
metadata
score
snippet (first ~280 chars)
- rtype:
List[dict] with keys
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EmbeddingDatabase[source]¶
Bases:
BaseTool- Exposes actions:
create_from_docs
add_docs
search
Backed by SQLiteStore + VectorStore + Embedder.
- static _validate_doc_args(args)[source]¶
Validate and extract common arguments for document operations.
Returns (error_dict, name, docs, metas) where error_dict is None on success.
- static _build_doc_rows(docs, metas)[source]¶
Build (doc_key, text, meta, text_hash) rows and the corresponding key list.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EmbeddingSync[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EnamineTool[source]¶
Bases:
BaseToolTool for searching Enamine compound libraries.
Enamine provides: - Make-on-demand compounds (REAL database) - Building blocks - Screening libraries - Fragment libraries
Note: Full API access may require registration. Basic search functionality available without API key.
- class tooluniverse.EnrichrTool[source]¶
Bases:
BaseToolTool to perform gene enrichment analysis using Enrichr.
- get_official_gene_name(gene_name)[source]¶
Retrieve the official gene symbol for a given gene name or synonym using the MyGene.info API.
- Parameters
gene_name (str): The gene name or synonym to query.
- Returns
str: The official gene symbol if found; otherwise, raises an Exception.
- submit_gene_list(gene_list)[source]¶
Submit the gene list to Enrichr and return the user list ID.
- Parameters
gene_list (str): Newline-separated string of gene names.
- Returns
str: The user list ID from Enrichr.
- get_enrichment_results(user_list_id, library)[source]¶
Fetch enrichment results for a specific library.
- Parameters
user_list_id (str): The user list ID from Enrichr. library (str): The name of the enrichment library.
- Returns
dict: The enrichment results.
- build_graph(genes, enrichment_results)[source]¶
Initialize and build the graph with gene nodes and enriched terms.
- Parameters
genes (list): List of gene names. enrichment_results (dict): Dictionary of enrichment results by library.
- Returns
networkx.Graph: The constructed graph.
- rank_paths_by_weight(G, source, target)[source]¶
Find and rank paths between source and target based on total edge weight.
- Parameters
G (networkx.Graph): The graph to search. source (str): The source node. target (str): The target node.
- Returns
list: List of tuples (path, weight) sorted by weight descending.
- rank_paths_to_term(G, gene, term)[source]¶
Find and rank paths from each gene to a specified term based on total edge weight.
- Parameters
G (networkx.Graph): The graph to search. gene (str): The source gene. term (str): The target term.
- Returns
list or None: List of tuples (path, weight) sorted by weight descending, or None if no paths.
- class tooluniverse.EnsemblArchiveTool[source]¶
Bases:
BaseToolTool for Ensembl Archive API providing stable ID history tracking and batch ID version lookups.
No authentication required.
- class tooluniverse.EnsemblComparaTool[source]¶
Bases:
BaseToolTool for querying Ensembl Compara comparative genomics data.
Ensembl Compara contains whole-genome alignments, gene trees, and homology data for vertebrates and other eukaryotes. Supports finding orthologues (between-species homologs) and paralogues (within-species gene duplications).
Supports: orthologue search, paralogue search, gene tree retrieval.
No authentication required.
- class tooluniverse.EnsemblGetSequence[source]¶
Bases:
EnsemblRESTToolLegacy: Get DNA or protein sequences. Use EnsemblRESTTool with endpoint=’/sequence/id/{id}’ instead.
- class tooluniverse.EnsemblGetVariants[source]¶
Bases:
EnsemblRESTToolLegacy: Get variant information. Use EnsemblRESTTool with endpoint=’/overlap/region/{species}/{region}’ instead.
- class tooluniverse.EnsemblInfoTool[source]¶
Bases:
BaseToolTool for Ensembl info endpoints providing genome assembly metadata and species catalog.
These endpoints complement existing Ensembl tools (sequence, variation, overlap, xrefs, etc.) by providing assembly-level and species-level information needed for genomic coordinate interpretation.
No authentication required.
- class tooluniverse.EnsemblLDTool[source]¶
Bases:
BaseToolTool for querying linkage disequilibrium data from Ensembl REST API.
Provides LD statistics (r2, D’) between variants using 1000 Genomes Phase 3 population data across 26 populations.
No authentication required.
- class tooluniverse.EnsemblLookupGene[source]¶
Bases:
EnsemblRESTToolLegacy: Lookup gene information by ID or symbol. Use EnsemblRESTTool with endpoint=’/lookup/id/{id}’ instead.
- class tooluniverse.EnsemblMapTool[source]¶
Bases:
BaseToolTool for Ensembl coordinate mapping operations.
Supports: - Assembly-to-assembly coordinate conversion (GRCh37 <-> GRCh38) - Protein position to genomic coordinate mapping - cDNA position to genomic coordinate mapping
No authentication required.
- class tooluniverse.EnsemblOverlapTool[source]¶
Bases:
BaseToolTool for querying Ensembl Overlap API.
Supports: - Get features overlapping a genomic region (genes, transcripts, regulatory) - Get features overlapping an Ensembl gene ID
No authentication required.
- class tooluniverse.EnsemblPhenotypeTool[source]¶
Bases:
BaseToolTool for querying phenotype/disease associations from Ensembl REST API.
Provides gene-phenotype, region-phenotype, and variant-phenotype lookups. No authentication required.
- class tooluniverse.EnsemblRESTTool[source]¶
Bases:
BaseToolGeneric Ensembl REST API tool. Handles all Ensembl endpoints based on endpoint template in JSON config. Supports path parameters (e.g., {species}, {id}) and query parameters.
- _build_url(arguments)[source]¶
Combines endpoint_template (containing {xxx}) with path parameters from arguments. For example endpoint_template=”/lookup/id/{id}”, arguments={“id”:”ENSG00000139618”} → Returns “https://rest.ensembl.org/lookup/id/ENSG00000139618”
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EnsemblRegulationTool[source]¶
Bases:
BaseToolTool for querying regulatory and conservation features from Ensembl REST API.
Provides TF binding motifs, constrained elements, and binding matrices. No authentication required.
- class tooluniverse.EnsemblSequenceTool[source]¶
Bases:
BaseToolTool for Ensembl sequence retrieval endpoints providing DNA and protein sequences for genes, transcripts, proteins, and genomic regions.
Complements existing Ensembl tools by providing direct sequence access for specific region coordinates and protein/cDNA sequence retrieval.
No authentication required.
- class tooluniverse.EnsemblVEPTool[source]¶
Bases:
BaseToolTool for Ensembl VEP variant annotation and Variant Recoder ID conversion.
Supports three modes: - vep_hgvs: Annotate variants using HGVS notation (e.g., BRAF:p.Val600Glu) - vep_id: Annotate variants using dbSNP rsID (e.g., rs7903146) - variant_recoder: Convert variant IDs between formats (rsID -> HGVS, SPDI)
No authentication required.
- class tooluniverse.EnsemblVariationExtTool[source]¶
Bases:
BaseToolTool for querying Ensembl variant population frequencies and detailed variant info.
Supports: - Allele frequency data across gnomAD and 1000 Genomes populations - Detailed variant records with consequences, synonyms, and evidence
No authentication required.
- class tooluniverse.EnsemblXrefsTool[source]¶
Bases:
BaseToolTool for querying Ensembl cross-references API.
Supports: - Get all external database cross-references for an Ensembl ID - Filter by external database name
No authentication required.
- class tooluniverse.EpiGraphDBTool[source]¶
Bases:
BaseRESTToolTool for querying the EpiGraphDB API.
Provides access to: - Mendelian Randomization (MR) results between GWAS traits - Genetic correlations between traits - Drug repurposing via genetic evidence (drugs targeting risk factor genes) - GWAS trait to EFO/disease ontology mapping - Gene druggability information via PPI network - Gene-drug associations from pharmacogenomics databases - OpenGWAS GWAS study search
Uses IEU OpenGWAS trait IDs (e.g., ‘ieu-a-2’ for BMI, ‘ieu-a-7’ for CHD). No authentication required.
- _get_mr(arguments)[source]¶
Get Mendelian Randomization results between exposure and outcome traits.
- _get_genetic_cor(arguments)[source]¶
Get genetic correlations between a trait and other GWAS traits.
- class tooluniverse.EpigenomicsTool[source]¶
Bases:
BaseToolTool for epigenomics and methylation analysis across multiple databases.
Supports: - ENCODE histone ChIP-seq, methylation (WGBS/RRBS), chromatin accessibility - ENCODE annotations (cCREs, chromatin states) - GEO methylation and ChIP-seq dataset search - Ensembl regulatory features
No authentication required.
- _encode_chromatin_accessibility_search(arguments)[source]¶
Search ENCODE chromatin accessibility experiments (ATAC-seq / DNase-seq).
- class tooluniverse.EuHealthDeepDiveTool[source]¶
Bases:
BaseToolWrapper for the EU Health deep dive function.
- You can dive:
explicit UUIds: uuids=[…]
or a topic: topic=”euhealthinfo_search_cancer”
- Supported arguments:
uuids: Optional[List[str]]
topic: Optional[str]
limit: int
links_per: int
method: “keyword” | “embedding” | “hybrid”
alpha: float
top_k: int
country: Optional[str]
language: Optional[str]
term_override: Optional[str]
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EuHealthTopicSearchTool[source]¶
Bases:
BaseToolGeneric wrapper for all EU Health ‘topic search’ tools.
- The associated JSON config supplies:
fields.topic = “euhealthinfo_search_cancer” (for example)
- Supported arguments:
limit: int
method: “keyword” | “embedding” | “hybrid”
alpha: float
top_k: int
country: Optional[str]
language: Optional[str]
term_override: Optional[str]
- Returns:
{“warning”: “…”, “results”: […]} (fallback) or
[… shaped rows …]
- Return type:
Either
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EuroPMCAnnotationsTool[source]¶
Bases:
BaseToolTool for extracting text-mined annotations from scientific articles via the Europe PMC Annotations API.
Supports annotation types: Chemicals, Organisms, Gene Ontology, Diseases, Genes & Proteins, Accession Numbers.
No authentication required.
- class tooluniverse.EuropePMCFullTextFetchTool[source]¶
Bases:
BaseToolFetch full text content for a PMC article with deterministic fallbacks and machine-readable provenance (retrieval_trace).
This tool is intended for machine consumption: it always returns a structured status payload and, when successful, includes source/format/content_type.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EuropePMCFullTextSnippetsTool[source]¶
Bases:
BaseToolFetch Europe PMC fullTextXML (open access) and return bounded text snippets around user-provided terms. This helps answer questions where the crucial detail is present in the full text (e.g., methods/section titles) but not necessarily in the abstract.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EuropePMCGuidelinesTool[source]¶
Bases:
BaseToolSearch Europe PMC for clinical guidelines. Europe PMC provides access to life science literature including guidelines.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.EuropePMCRESTTool[source]¶
Bases:
BaseToolGeneric REST tool for Europe PMC API endpoints. Supports citations, references, and other article-related endpoints.
- class tooluniverse.EuropePMCTool[source]¶
Bases:
BaseToolTool to search for articles on Europe PMC including abstracts.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- tooluniverse.ExecuteTool¶
alias of
ExecuteToolTool
- class tooluniverse.ExecuteToolTool[source]¶
Bases:
BaseToolExecute a ToolUniverse tool directly with custom arguments.
- run(arguments)[source]¶
Execute a ToolUniverse tool directly with custom arguments.
- Parameters:
arguments (
dict) –Dictionary containing: - tool_name (str): Name of the tool to execute - arguments (dict|str): Arguments to pass to the tool.
Accepts: 1) JSON object/dict: {“param1”: “value1”, “param2”: 5} 2) JSON string that parses to object:
”{“param1”: “value1”, “param2”: 5}”
- Returns:
- Tool execution result. If result is already a dict,
return as-is. If it’s a string (JSON), parse and return as dict.
- Return type:
- class tooluniverse.ExpressionAtlasTool[source]¶
Bases:
BaseToolTool for querying EBI Expression Atlas gene expression data.
Provides access to: - Baseline gene expression across tissues and cell types - Differential expression in disease and treatment contexts - Experiment search and metadata - Both bulk RNA-seq and single-cell data
No authentication required.
- _get_baseline_expression(arguments)[source]¶
Get baseline expression experiments for a gene.
Uses EBI Search to find experiments mentioning the gene, then filters the Expression Atlas experiment catalog for baseline experiments in the specified species.
- _search_differential_experiments(arguments)[source]¶
Search for differential expression experiments by gene and/or condition.
- class tooluniverse.FAERSAnalyticsTool[source]¶
Bases:
BaseToolFAERS Analytics Tool for statistical signal detection in adverse event data.
Provides: - Disproportionality analysis (ROR, PRR, IC, EBGM) - Demographic stratification - Serious event filtering - Drug comparison - Temporal trend analysis - MedDRA hierarchy rollups
- _with_data_payload(result)[source]¶
Ensure successful operation responses include a standardized data wrapper.
- _calculate_disproportionality(arguments)[source]¶
Calculate disproportionality measures (ROR, PRR, IC) with 95% confidence intervals.
- Uses 2x2 contingency table:
Event+ Event-
Drug+ a b Drug- c d
- _stratify_by_demographics(arguments)[source]¶
Stratify adverse event data by demographics (age, sex, country).
- _filter_serious_events(arguments)[source]¶
Filter for serious adverse events (death, hospitalization, disability, life-threatening).
- _rollup_meddra_hierarchy(arguments)[source]¶
Aggregate adverse events by MedDRA hierarchy levels (PT → HLT → SOC).
- class tooluniverse.FDACountAdditiveReactionsTool[source]¶
Bases:
FDADrugAdverseEventToolLeverage openFDA API to count adverse reaction events across multiple drugs in one request.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FDADrugAdverseEventDetailTool[source]¶
Bases:
BaseToolTool for retrieving detailed adverse event reports from FAERS. Uses limit/skip parameters instead of count aggregation.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- validate_enum_arguments(arguments)[source]¶
Validate that enum-based arguments match the allowed values
- _extract_essential_fields(report)[source]¶
Extract only essential fields from a FAERS report. Removes verbose metadata like openfda to keep output concise. Can be customized via tool_config[‘fields’][‘essential_fields’].
- class tooluniverse.FDADrugAdverseEventTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FDADrugInteractionDetailTool[source]¶
Bases:
BaseToolTool for retrieving detailed adverse event reports involving multiple drugs (drug interactions). Uses limit/skip parameters instead of count aggregation.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- validate_enum_arguments(arguments)[source]¶
Validate that enum-based arguments match the allowed values
- _extract_essential_fields(report)[source]¶
Extract only essential fields from a FAERS report. Removes verbose metadata like openfda to keep output concise. Can be customized via tool_config[‘fields’][‘essential_fields’].
- tooluniverse.FDADrugLabel¶
alias of
FDADrugLabelTool
- tooluniverse.FDADrugLabelAggregated¶
- class tooluniverse.FDADrugLabelFieldValueTool[source]¶
Bases:
BaseToolSearch the openFDA drug label dataset by specifying a single openFDA field (e.g., “openfda.generic_name”) and a corresponding field_value.
This tool is intentionally generic and does not modify any existing FDA tools.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FDADrugLabelGetDrugGenericNameTool[source]¶
Bases:
FDADrugLabelTool
- class tooluniverse.FDADrugLabelGetDrugNamesByIndicationAggregated[source]¶
Bases:
FDADrugLabelToolEnhanced version of FDA_get_drug_names_by_indication that: - Iterates through all results in batches of 100 (no limit) - Aggregates results by generic name - Returns one entry per generic name with indication and all brand names
- run(arguments)[source]¶
Run the aggregated drug names search by indication.
Iterates through all results in batches of 100, aggregates by generic name, and returns a list where each entry contains: - generic_name: The generic drug name - indication: The indication (from input) - brand_names: List of all brand names for this generic name
- class tooluniverse.FDADrugLabelGetDrugNamesByIndicationStats[source]¶
Bases:
FDADrugLabelToolEnhanced version using FDA count API to efficiently aggregate drug names by indication. Uses count mechanism to get brand_name and generic_name distributions without fetching full records.
- class tooluniverse.FDADrugLabelSearchIDTool[source]¶
Bases:
FDATool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FDADrugLabelSearchTool[source]¶
Bases:
FDATool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- tooluniverse.FDADrugLabelStats¶
- class tooluniverse.FDALabelTool[source]¶
Bases:
BaseToolTool for querying FDA-approved drug label (prescribing information).
Supports searching by drug name, indication, or listing drug classes. Returns official FDA clinical content: indications, dosing, contraindications, warnings, drug interactions, and adverse reactions.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FDAOrangeBookTool[source]¶
Bases:
BaseToolFDA Orange Book and Drugs@FDA tool for drug approval information.
Provides: - Drug approval history - Patent information - Exclusivity dates - Therapeutic equivalence (TE) codes - Generic availability - Regulatory review documents
- _with_data_payload(result)[source]¶
Ensure successful operation responses include a standardized data wrapper.
- _search_drug(arguments)[source]¶
Search for drugs by brand name, generic name, or application number.
- _get_approval_history(arguments)[source]¶
Get approval history and submission details for an application.
- class tooluniverse.FDAPharmacogenomicBiomarkersTool[source]¶
Bases:
BaseToolTool to retrieve data from the FDA’s Table of Pharmacogenomic Biomarkers in Drug Labeling. Fetches the table from the FDA website and provides filtering capabilities.
- FDA_URL = 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling'¶
- HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}¶
- run(arguments)[source]¶
Executes the tool to retrieve and filter pharmacogenomic biomarkers.
- Parameters:
arguments (
Dict[str, Any]) –drug_name (str, optional): Filter by drug name (case-insensitive partial match).
biomarker (str, optional): Filter by biomarker (case-insensitive partial match).
limit (int, optional): Maximum number of results to return (default: 10).
- Returns:
A dictionary containing the ‘count’ and ‘results’ list.
- Return type:
Dict[str, Any]
- class tooluniverse.FDATool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FatcatMetadataParser[source]¶
Bases:
HTMLParserExtract metadata from Fatcat release page meta tags.
- class tooluniverse.FatcatResultParser[source]¶
Bases:
HTMLParserParse Fatcat search results from HTML.
- class tooluniverse.FatcatScholarTool[source]¶
Bases:
BaseToolSearch Internet Archive Scholar via Fatcat releases search.
Uses web scraping of the scholar.archive.org interface to retrieve bibliographic information about research papers and publications.
- Parameters (arguments):
query (str): Query string max_results (int): Max results (default 10, max 100)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.FederalRegisterTool[source]¶
Bases:
BaseRESTToolREST tool for Federal Register API with bracket-notation parameter mapping.
- class tooluniverse.FileDownloadTool[source]¶
Bases:
BaseToolDownload files from HTTP/HTTPS URLs - similar to curl.
Supports: - Direct file downloads to specified or temporary locations - Binary and text file handling - Progress tracking (optional) - Cross-platform (Windows, Mac, Linux)
Expects: {“url”: “https://…”, “output_path”: “/path/to/save”} Optional: {“timeout”: seconds, “return_content”: bool} Returns: {“file_path”: “…”, “file_size”: bytes} or {“error”: “…”}
- run(arguments)[source]¶
Download a file from a URL.
- Parameters:
arguments (Dict[str, Any]) – Dictionary containing: - url (str): URL to download from - output_path (str, optional): Path to save the file - timeout (int, optional): Request timeout (default: 30) - return_content (bool): Return as text (default: False) - chunk_size (int, optional): Chunk size (default: 8192) - follow_redirects (bool): Follow redirects (default: True)
- Returns:
Dict with file_path and file_size, or content, or error
- Return type:
- class tooluniverse.FoodDataCentralTool[source]¶
Bases:
BaseToolTool for querying the USDA FoodData Central API.
FoodData Central provides comprehensive food and nutrient data including: - Food search by name/keyword - Detailed food nutrient profiles - Food listing with pagination - Multiple data types: Foundation, SR Legacy, Branded, Survey (FNDDS)
Authentication: Requires a free API key from data.gov. Rate limit: 1,000 requests per hour per IP address. Set the FDC_API_KEY environment variable, or use ‘DEMO_KEY’ for testing.
- class tooluniverse.FourDNTool[source]¶
Bases:
BaseTool4DN Data Portal API tool for accessing Hi-C and chromatin conformation data.
- class tooluniverse.GDCGeneExpressionTool[source]¶
Bases:
objectQuery gene expression files from GDC.
- class tooluniverse.GDCMutationFrequencyTool[source]¶
Bases:
objectGet mutation frequency for a gene across cancer types.
- class tooluniverse.GDCProjectsTool[source]¶
Bases:
objectList GDC projects including TCGA and TARGET cohorts.
- class tooluniverse.GEOGetDatasetInfo[source]¶
Bases:
GEORESTToolGet detailed information about a specific GEO dataset.
- class tooluniverse.GEOGetSampleInfo[source]¶
Bases:
GEORESTToolGet sample information for a GEO dataset.
- class tooluniverse.GEORESTTool[source]¶
Bases:
NCBIEUtilsToolGEO Database REST API tool with rate limiting. Generic wrapper for GEO API endpoints defined in expression_tools.json.
- _detect_database(dataset_id)[source]¶
Return the appropriate NCBI GEO database name.
For NCBI E-utilities, GEO records (GDS, GSE, GSM, GPL) are all accessed through the single gds database. The accession prefix (GDS/GSE/GSM) is used in the search term, not as the database name.
- class tooluniverse.GEOSearchDatasets[source]¶
Bases:
GEORESTToolSearch GEO datasets by various criteria.
- class tooluniverse.GINGuidelinesTool[source]¶
Bases:
BaseToolGuidelines International Network (GIN) Guidelines Search Tool. Searches the global guidelines database with 6400+ guidelines from various organizations.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.GNPSTool[source]¶
Bases:
BaseToolTool for querying GNPS mass spectrometry spectral data.
Provides access to reference MS/MS spectra through Universal Spectrum Identifiers (USIs) for metabolomics compound identification.
No authentication required.
- class tooluniverse.GOAPITool[source]¶
Bases:
BaseToolTool for querying the Gene Ontology (GO) REST API.
The GO API provides access to three major ontology domains: - Biological Process (BP): cellular/organismal processes - Molecular Function (MF): molecular-level activities - Cellular Component (CC): locations of gene products
Supports: GO term lookup, gene GO annotations, gene function associations.
No authentication required.
- class tooluniverse.GPCRdbTool[source]¶
Bases:
BaseToolTool for querying GPCRdb GPCR database.
GPCRdb provides: - GPCR protein information and classification - Structure data for GPCR crystal/cryo-EM structures - Ligand binding data - Mutation data and effects - Sequence alignments
No authentication required. Free public access.
- _list_proteins(arguments)[source]¶
List GPCR protein families from GPCRdb.
- Parameters:
arguments (Dict[str, Any]) – Dict containing: - family: GPCR family (e.g., “001” for Class A). If provided, returns proteins in that family. - species: Species (ignored if no family specified)
Note: GPCRdb API does not support listing all proteins by species alone. Without family, returns list of protein families.
- class tooluniverse.GProfilerTool[source]¶
Bases:
BaseToolTool for g:Profiler functional enrichment, ID conversion, and ortholog mapping.
Supports: - g:GOSt: Functional enrichment analysis (GO, KEGG, Reactome, WP, HP, MIRNA, CORUM) - g:Convert: Gene ID conversion between namespaces - g:Orth: Cross-species ortholog mapping
No authentication required.
- class tooluniverse.GTExV2Tool[source]¶
Bases:
BaseToolGTEx Portal API V2 tool for gene expression and eQTL analysis.
Provides access to: - Gene expression data (median, per-sample) - eQTL associations (single-tissue, multi-tissue) - Tissue and sample metadata - Dataset information
- class tooluniverse.GWASAssociationByID[source]¶
Bases:
GWASRESTToolGet a specific GWAS association by its ID.
- class tooluniverse.GWASAssociationSearch[source]¶
Bases:
GWASRESTToolSearch for GWAS associations by various criteria.
- class tooluniverse.GWASAssociationsForSNP[source]¶
Bases:
GWASRESTToolGet all associations for a specific SNP.
- class tooluniverse.GWASAssociationsForStudy[source]¶
Bases:
GWASRESTToolGet all associations for a specific study.
- class tooluniverse.GWASAssociationsForTrait[source]¶
Bases:
GWASRESTToolGet all associations for a specific trait, sorted by p-value.
- class tooluniverse.GWASGeneSearch[source]¶
Bases:
BaseToolLocal tool wrapper for GWAS Catalog REST API. Searches associations by gene name.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.GWASRESTTool[source]¶
Bases:
BaseToolBase class for GWAS Catalog REST API tools.
- _efo_id_from_uri_or_id(value)[source]¶
Best-effort normalize an EFO/OBA/etc identifier.
Accepts either a full URI (e.g., ‘http://www.ebi.ac.uk/efo/OBA_2050062’) or a bare ID (e.g., ‘OBA_2050062’ or ‘OBA:2050062’).
Note: The GWAS Catalog v2 REST API supports filtering by efo_id (and sometimes efo_trait) on associations/studies endpoints. Passing a full URI via efo_uri is not consistently supported; we normalize to efo_id.
- class tooluniverse.GWASSNPByID[source]¶
Bases:
GWASRESTToolGet a specific GWAS SNP by its rs ID.
- class tooluniverse.GWASSNPSearch[source]¶
Bases:
GWASRESTToolSearch for GWAS single nucleotide polymorphisms (SNPs).
- class tooluniverse.GWASSNPsForGene[source]¶
Bases:
GWASRESTToolGet SNPs mapped to a specific gene.
- class tooluniverse.GWASStudiesForTrait[source]¶
Bases:
GWASRESTToolGet studies for a specific trait with optional filters.
- class tooluniverse.GWASStudyByID[source]¶
Bases:
GWASRESTToolGet a specific GWAS study by its ID.
- class tooluniverse.GWASStudySearch[source]¶
Bases:
GWASRESTToolSearch for GWAS studies by various criteria.
- class tooluniverse.GWASVariantsForTrait[source]¶
Bases:
GWASRESTToolGet all variants associated with a specific trait.
- class tooluniverse.GeneOntologyTool[source]¶
Bases:
BaseToolA general-purpose tool for calling the Gene Ontology (GO) API. It is configured via a dictionary that defines the specific API endpoint.
- __init__(tool_config)[source]¶
Initializes the tool with a configuration.
- Parameters:
tool_config (
Dict) – A dictionary containing ‘fields’ with an ‘endpoint’.
- _extract_data(data, extract_path)[source]¶
Extract specific data from the GO API response using custom paths.
- class tooluniverse.GenomeNexusTool[source]¶
Bases:
BaseToolTool for annotating cancer variants using Genome Nexus (MSK).
Supports: - Full variant annotation (VEP + SIFT + PolyPhen + AlphaMissense + hotspots) - Cancer hotspot lookup - Canonical transcript retrieval - Coordinate-based mutation annotation
No authentication required. All coordinates in GRCh37/hg19.
- class tooluniverse.GetSPLBySetIDTool[source]¶
Bases:
BaseToolGet complete SPL label based on SPL Set ID, returns content in XML or JSON format.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- tooluniverse.GetToolInfo¶
alias of
GetToolInfoTool
- class tooluniverse.GetToolInfoTool[source]¶
Bases:
BaseToolGet tool information with configurable detail level. Supports single or batch tool queries.
- run(arguments)[source]¶
Get tool information with configurable detail level.
- Parameters:
arguments (
dict) –Dictionary containing: - tool_names (str | list): Single tool name (string) or list of tool names - detail_level (str, optional): “description” or “full”. Default: “full”
”description”: Returns only the description field (complete, not truncated)
”full”: Returns complete tool definition including parameter schema
- Returns:
Dictionary with tool information - Single tool: Direct tool info object - Batch tools: {“tools”: […], “total_requested”: N, “total_found”: M}
- Return type:
- class tooluniverse.GhostTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.GlyGenTool[source]¶
Bases:
BaseToolTool for querying the GlyGen glycoinformatics database.
GlyGen provides access to glycan structures, glycoproteins, glycosylation sites, biosynthetic enzymes, and related publications from integrated sources including GlyTouCan, GlyConnect, UniProt, and PubMed.
No authentication required.
- _glycan_detail(arguments)[source]¶
Get detailed information about a specific glycan by GlyTouCan accession.
- class tooluniverse.GraphQLTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- tooluniverse.GrepTools¶
alias of
GrepToolsTool
- class tooluniverse.GrepToolsTool[source]¶
Bases:
BaseToolNative grep-like pattern search for tools (simple regex, independent from Tool_Finder_Keyword).
- run(arguments)[source]¶
Search tools using simple text matching or regex pattern matching.
- Parameters:
arguments (
dict) –Dictionary containing: - pattern (str): Search pattern (text or regex) - field (str, optional): Field to search in: “name”,
”description”, “type”, “category” (default: “name”)
search_mode (str, optional): “text” for simple text matching or “regex” for regex (default: “text”)
categories (list, optional): Optional category filter
- Returns:
Dictionary with matching tools (name + description)
- Return type:
- class tooluniverse.GtoPdbRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.GxATool[source]¶
Bases:
BaseToolTool for EBI Gene Expression Atlas API providing access to baseline and differential gene expression experiments across tissues and conditions.
No authentication required.
- class tooluniverse.HALTool[source]¶
Bases:
BaseToolSearch the French HAL open archive via its public API.
- Parameters:
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HCATool[source]¶
Bases:
BaseToolTool for interacting with the Human Cell Atlas (HCA) Data Coordination Platform (DCP) v2 API. Allows searching for projects and retrieving file manifests.
- BASE_URL = 'https://service.azul.data.humancellatlas.org'¶
- run(arguments)[source]¶
Executes the HCA tool action.
- Parameters:
arguments (
Dict[str, Any]) – Dictionary containing the action and its parameters. Expected keys: - action (str): “search_projects” or “get_file_manifest” - organ (str, optional): Organ to filter by (for search_projects) - disease (str, optional): Disease to filter by (for search_projects) - project_id (str, optional): Project ID (for get_file_manifest) - limit (int, optional): Max results to return (default 10)- Returns:
The results of the action.
- Return type:
Dict[str, Any]
- class tooluniverse.HGNCTool[source]¶
Bases:
BaseToolTool for querying the HGNC gene nomenclature database.
HGNC provides authoritative human gene naming. Supports fetching genes by symbol, HGNC ID, or searching by various fields including name, location, and aliases.
No authentication required.
- class tooluniverse.HMDBTool[source]¶
Bases:
BaseToolTool for querying HMDB (Human Metabolome Database).
HMDB provides: - Metabolite identification - Chemical properties - Biological functions - Disease associations - Spectral data (MS, NMR)
Uses PubChem for data retrieval with HMDB cross-references.
- _get_metabolite(arguments)[source]¶
Get metabolite by HMDB ID.
Uses PubChem to retrieve metabolite data via HMDB ID cross-reference.
- class tooluniverse.HPAGetBiologicalProcessTool[source]¶
Bases:
HPASearchApiToolGet biological process information related to a gene. Get specific biological processes a gene is involved in by gene name.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetCancerPrognosticsTool[source]¶
Bases:
HPAJsonApiToolGet prognostic value of a gene across various cancers. Uses the efficient JSON API to retrieve cancer prognostic data.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetComparativeExpressionTool[source]¶
Bases:
HPASearchApiToolCompare gene expression levels in specific cell lines and healthy tissues. Get expression data for comparison by gene name and cell line name.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetContextualBiologicalProcessTool[source]¶
Bases:
BaseToolAnalyze a gene’s biological processes in the context of specific tissue or cell line. Enhanced with intelligent context validation and recommendation.
- _validate_context(context_name)[source]¶
Validate context_name and provide intelligent recommendations
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetDiseaseExpressionTool[source]¶
Bases:
HPASearchApiToolGet expression data for a gene in specific diseases and tissues. Get related expression information by gene name, tissue type, and disease name.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetGeneJSONTool[source]¶
Bases:
HPAJsonApiToolEnhanced legacy tool - Get basic gene information using Ensembl Gene ID. Now uses the efficient JSON API instead of search API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetGenePageDetailsTool[source]¶
Bases:
HPAXmlApiToolGet detailed information about a gene page, including images, protein expression, antibody data, etc. Get the most comprehensive data by parsing HPA’s single gene XML endpoint. Enhanced version with improved image extraction and comprehensive data parsing based on optimization plan.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- _parse_gene_xml(root, ensembl_id, include_images, include_antibodies, include_expression)[source]¶
Parse gene XML data comprehensively based on actual HPA XML schema
- _extract_ihc_images(root)[source]¶
Extract tissue immunohistochemistry (IHC) images based on actual HPA XML structure
- _extract_if_images(root)[source]¶
Extract subcellular immunofluorescence (IF) images based on actual HPA XML structure
- _extract_expression_summary(root)[source]¶
Extract expression summary information from actual HPA XML structure
- class tooluniverse.HPAGetGeneXMLTool[source]¶
Bases:
HPASearchApiToolLegacy tool - Get gene TSV format data (alternative to XML).
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetProteinInteractionsTool[source]¶
Bases:
HPASearchApiToolGet protein-protein interaction partners for a gene. Uses search API to retrieve interaction data.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetRnaExpressionBySourceTool[source]¶
Bases:
HPASearchApiToolGet RNA expression for a gene from specific biological sources using optimized columns parameter. This tool directly leverages the comprehensive columns table for efficient queries.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetRnaExpressionByTissueTool[source]¶
Bases:
HPAJsonApiToolQuery RNA expression levels for a gene in specific tissues. More precise than general tissue expression queries.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAGetSubcellularLocationTool[source]¶
Bases:
HPASearchApiToolGet annotated subcellular locations for a protein using optimized columns parameter. Uses scml (main location) and scal (additional location) columns for efficient queries.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPAJsonApiTool[source]¶
Bases:
BaseToolBase class for interacting with HPA’s /{ensembl_id}.json API. More efficient for getting comprehensive gene data.
- class tooluniverse.HPASearchApiTool[source]¶
Bases:
BaseToolBase class for interacting with HPA’s search_download.php API. Uses HPA’s search and download API to get protein expression data.
- class tooluniverse.HPASearchGenesTool[source]¶
Bases:
HPASearchApiToolSearch for matching genes by gene name, keywords, or cell line names and return Ensembl ID list. This is the entry tool for many query workflows.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.HPASearchTool[source]¶
Bases:
HPASearchApiToolGeneric search tool for Human Protein Atlas.
This tool allows custom search queries and retrieval of specific columns from the Human Protein Atlas API. It provides more flexibility than the specialized tools by allowing direct access to the search API with custom parameters.
- Parameters:
search_query (
str) – The search term to query for (e.g., gene name, description).columns (
str, optional) –Comma-separated list of columns to retrieve. Defaults to “g,gs,gd” (Gene, Gene synonym, Gene description).
Available columns and their specifiers: - g: Gene name - gs: Gene synonym - gd: Gene description - e: Ensembl ID - u: UniProt ID - en: Enhanced - pe: Protein existence - r: Reliability - p: Pathology - c: Cancer - pt: Protein tissue - ptm: Predicted Transmembrane - s: Subcellular location - scml: Subcellular main location - scal: Subcellular additional location - rnat: RNA tissue specificity - rnats: RNA tissue specific score - rnatsm: RNA tissue specific nTPM - rnablm: RNA blood lineage specific nTPM - rnabrm: RNA brain region specific nTPM - rnascm: RNA single cell type specific nTPM
See HPA API documentation for the full list of over 40 available columns.
format (
str, optional) – Response format, “json” or “tsv”. Defaults to “json”.
- Returns:
- A dictionary containing the search results.
If successful, returns the API response (list of entries). If failed, returns a dictionary with an “error” key.
- Return type:
Example
>>> tool = HPASearchTool() >>> result = tool.run({ ... "search_query": "p53", ... "columns": "g,gs,scml,rnat", ... "format": "json" ... }) >>> print(result[0]["Gene"]) TP53
- run(arguments)[source]¶
Execute the search tool.
- Parameters:
arguments (
Dict[str, Any]) – Dictionary containing: - search_query (str): The term to search for. - columns (str, optional): Columns to retrieve. - format (str, optional): Response format.- Returns:
Search results or error message.
- Return type:
Dict[str, Any]
- class tooluniverse.HPAXmlApiTool[source]¶
Bases:
BaseToolBase class for interacting with HPA’s /{ensembl_id}.xml API. Optimized for comprehensive XML data extraction.
- class tooluniverse.HPOTool[source]¶
Bases:
BaseToolTool for querying the Human Phenotype Ontology (HPO) at JAX.
HPO provides structured phenotype terms used in clinical genetics, rare disease research, and differential diagnosis. Each term has definitions, synonyms, cross-references, and hierarchical relationships.
No authentication required.
- class tooluniverse.HarmonizomeTool[source]¶
Bases:
BaseToolTool for querying Harmonizome gene and dataset information.
Supports: - Gene details (symbol, name, description, synonyms, proteins) - Dataset catalog (100+ integrated genomics datasets)
No authentication required.
- class tooluniverse.HealthDisparitiesTool[source]¶
Bases:
BaseToolHealth disparities data information tool.
- class tooluniverse.HumanBaseTool[source]¶
Bases:
BaseToolTool to retrieve protein-protein interactions and biological processes from HumanBase.
- get_official_gene_name(gene_name)[source]¶
Retrieve the official gene symbol (same as EnrichrTool method)
- Parameters
gene_name (str): The gene name or synonym to query.
- Returns
str: The official gene symbol.
- get_entrez_ids(gene_names)[source]¶
Convert gene names to Entrez IDs using NCBI Entrez API.
- Parameters
gene_names (list): List of gene names to convert.
- Returns
list: List of Entrez IDs corresponding to the gene names.
- humanbase_ppi_retrieve(genes, tissue, max_node=10, interaction=None)[source]¶
Retrieve protein-protein interactions and biological processes from HumanBase.
- Parameters
genes (list): List of gene names to analyze. tissue (str): Tissue type for tissue-specific interactions. max_node (int): Maximum number of nodes to retrieve. interaction (str): Specific interaction type to filter by.
- Returns
tuple: (NetworkX Graph of interactions, list of biological processes)
- _convert_to_string(graph, bp_collection, original_genes, tissue)[source]¶
Convert NetworkX graph and biological processes to string representation.
- Parameters
graph (networkx.Graph): The network graph. bp_collection (list): List of biological processes. original_genes (list): Original gene list provided by user. tissue (str): Tissue type used for analysis.
- Returns
str: Comprehensive string representation of the network data.
- class tooluniverse.ICDTool[source]¶
Bases:
BaseToolWHO ICD-11 API tool for disease classification and coding.
- _PLACEHOLDER_KEYS = {'{code}': 'code', '{entity_id}': 'entity_id', '{linearization}': 'linearization'}¶
- _BOOL_PARAMS = ('flatResults', 'useFlexisearch')¶
- class tooluniverse.IEDBTool[source]¶
Bases:
BaseToolTool for interacting with the IEDB Query API (PostgREST).
This tool is JSON-config driven: each tool config supplies fields.endpoint and (optionally) fields.default_params + fields.shorthand_filters to map friendly arguments into PostgREST filter expressions (e.g., eq.123, ilike.*KVF*).
- QUERY_API_URL = 'https://query-api.iedb.org'¶
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.IMGTTool[source]¶
Bases:
BaseToolTool for accessing IMGT immunoglobulin/TCR data.
IMGT provides: - Immunoglobulin gene sequences - T cell receptor sequences - MHC/HLA sequences - Germline gene assignments
Uses EBI DBFetch for sequence retrieval. No authentication required.
- class tooluniverse.IMPCTool[source]¶
Bases:
BaseToolTool for querying IMPC mouse phenotyping data via Solr API.
Provides access to: - Gene information and phenotyping status - Mouse knockout phenotype associations (MP terms) - Statistical results from standardized phenotyping - Viability and fertility data
No authentication required. Data freely available (CC-BY 4.0).
- _solr_query(core, query, rows=50, fields=None, filter_query=None)[source]¶
Execute a Solr query against an IMPC core.
- _get_gene_summary(arguments)[source]¶
Get gene summary from IMPC including phenotyping status, viability, and basic info.
Queries the ‘gene’ core for a given gene symbol.
- _get_phenotypes_by_gene(arguments)[source]¶
Get all phenotype annotations for a gene from IMPC knockout mice.
Queries the ‘genotype-phenotype’ core for significant phenotype calls.
- class tooluniverse.INaturalistTool[source]¶
Bases:
BaseToolTool for querying iNaturalist biodiversity data.
iNaturalist aggregates citizen science observations from around the world. Research-grade observations are community-verified and used in scientific research. Covers all kingdoms of life with over 150 million observations.
Supports: taxa search, taxon details, observation search, species counts.
No authentication required.
- class tooluniverse.ITISTool[source]¶
Bases:
BaseToolTool for querying the ITIS taxonomic database.
ITIS provides standardized species names, classification hierarchies, common names, and authority references. Supports search by scientific name, common name, TSN (Taxonomic Serial Number), and hierarchy retrieval.
No authentication required.
- class tooluniverse.IdentifiersOrgTool[source]¶
Bases:
BaseRESTToolTool for Identifiers.org - biological identifier resolution service.
Resolves compact identifiers (e.g., ‘uniprot:P04637’) to resource URLs and searches the namespace registry.
No authentication required.
- class tooluniverse.IntActRESTTool[source]¶
Bases:
BaseToolIntAct REST API tool. Generic wrapper for IntAct API endpoints defined in intact_tools.json.
- class tooluniverse.InterProDomainArchTool[source]¶
Bases:
BaseToolTool for InterPro domain architecture analysis via the InterPro API.
No authentication required.
- _get_protein_domain_architecture(arguments)[source]¶
Get Pfam domain architecture for a protein with exact positions.
- class tooluniverse.InterProEntryTool[source]¶
Bases:
BaseToolTool for InterPro entry API providing protein-to-domain mappings and domain/family search.
Complements existing InterPro tools by offering reverse lookups (protein -> all domains) and keyword-based entry search.
No authentication required.
- class tooluniverse.InterProExtTool[source]¶
Bases:
BaseToolExtended InterPro API tool for protein-by-domain queries.
Complements existing InterPro tools (get_protein_domains, search_domains, get_domain_details) by providing reverse lookup: find all proteins containing a specific domain.
No authentication required.
- class tooluniverse.InterProScanTool[source]¶
Bases:
BaseToolTool for running InterProScan sequence analysis via EBI REST API.
Provides protein domain/family prediction by scanning sequences against: - Pfam - PRINTS - ProSite - SMART - Gene3D - TIGRFAM - SUPERFAMILY - CDD - PANTHER
Job-based API: Submit sequence, poll for results. Max 100 sequences per request. Results available for 7 days.
- MAX_POLL_ATTEMPTS = 60¶
- POLL_INTERVAL = 2¶
- _scan_sequence(arguments)[source]¶
Submit a protein sequence for InterProScan analysis.
Submits the job and polls for results (up to 2 minutes). For longer jobs, use get_job_status and get_job_results.
- class tooluniverse.JASPARRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.KEGGExtTool[source]¶
Bases:
BaseToolTool for KEGG REST API extended endpoints providing gene-pathway links, pathway gene lists, and compound details.
No authentication required.
- class tooluniverse.KEGGFindGenes[source]¶
Bases:
KEGGRESTToolFind genes by keyword in KEGG database.
- class tooluniverse.KEGGGetGeneInfo[source]¶
Bases:
KEGGRESTToolGet detailed gene information by gene ID.
- class tooluniverse.KEGGGetPathwayInfo[source]¶
Bases:
KEGGRESTToolGet detailed pathway information by pathway ID.
- class tooluniverse.KEGGListOrganisms[source]¶
Bases:
KEGGRESTToolList available organisms in KEGG database.
- class tooluniverse.KEGGSearchPathway[source]¶
Bases:
KEGGRESTToolSearch KEGG pathways by keyword.
- class tooluniverse.LOINCTool[source]¶
Bases:
BaseToolLOINC tool for lab tests, code details, answer lists, and clinical forms.
- _parse_search_results(api_response, fields)[source]¶
Parse the Clinical Tables response: [total_count, codes, extra_info, data].
- _search_loinc_items(arguments)[source]¶
Search LOINC lab tests and observations by name or keywords.
- _OPERATION_MAP = {'get_answer_list': '_get_answer_list', 'get_code_details': '_get_code_details', 'search_forms': '_search_forms', 'search_tests': '_search_loinc_items'}¶
- class tooluniverse.L1000FWDTool[source]¶
Bases:
BaseToolTool for querying the L1000FWD Connectivity Map API.
Provides access to: - Signature search: find L1000 signatures similar or opposite to a user gene set
- class tooluniverse.LipidMapsTool[source]¶
Bases:
BaseToolTool for querying LIPID MAPS Structure Database REST API.
LIPID MAPS provides comprehensive lipidomics data including: - Lipid structure information (LMSD - LIPID MAPS Structure Database) - Lipid-related gene information (LMPD - LIPID MAPS Proteome Database) - Lipid-related protein information - Mass spectrometry m/z search
No authentication required. Free for academic/research use.
URL Pattern: /rest/{context}/{input_item}/{input_value}/{output_item}/{output_format}
- tooluniverse.ListTools¶
alias of
ListToolsTool
- class tooluniverse.ListToolsTool[source]¶
Bases:
BaseToolUnified tool listing with multiple modes.
Note: Defaults to mode=’names’ to avoid huge outputs when many tools are loaded. For getting tool descriptions or detailed information, use the ‘get_tool_info’ tool instead (supports single or batch queries), as modes like ‘basic’/’summary’ can return very large payloads.
- run(arguments)[source]¶
List tools with configurable output format via mode parameter.
- Parameters:
arguments (
dict) –Dictionary containing: - mode (str, optional, default=”names”): Output mode
”names”: Return only tool names (default, recommended for large tool sets)
”basic”: Return name + description (warning: can return very large payloads)
”categories”: Return category statistics
”by_category”: Return tools grouped by category
”summary”: Return name + description + type + has_parameters (warning: can return very large payloads)
”custom”: Return user-specified fields
Note: For getting tool descriptions, use ‘get_tool_info’ tool instead of ‘basic’/’summary’ modes to avoid large payloads. - categories (list, optional): Filter by categories - fields (list, required for mode=”custom”): Fields to include - group_by_category (bool, optional): Group by category
(mode=”names”|”basic”|”summary”)
brief (bool, optional): Truncate description (mode=”basic”|”summary”)
- Returns:
Dictionary with tools in requested format
- Return type:
- class tooluniverse.MCPAutoLoaderTool[source]¶
Bases:
BaseTool,BaseMCPClientAn advanced MCP tool that automatically discovers and loads all tools from an MCP server. It can register discovered tools as individual ToolUniverse tools for seamless usage.
- class tooluniverse.MCPClientTool[source]¶
Bases:
BaseTool,BaseMCPClientA tool that acts as an MCP client to connect to existing MCP servers. Supports both HTTP and WebSocket transports.
- class tooluniverse.MCPProxyTool[source]¶
Bases:
MCPClientToolA proxy tool that automatically forwards tool calls to an MCP server. This creates individual tools for each tool available on the MCP server.
- class tooluniverse.MCPServerDiscovery[source]¶
Bases:
objectHelper class to discover and create tool configurations for MCP servers.
- async static discover_server_tools(server_url, transport='http')[source]¶
Discover all tools available on an MCP server and return tool configurations.
- static create_mcp_tools_config(server_configs)[source]¶
Create tool configurations for multiple MCP servers.
- Parameters:
server_configs (List[Dict[str, str]]) – List of server configurations, each containing: - server_url: URL of the MCP server - transport: ‘http’ or ‘websocket’ (optional, defaults to ‘http’) - server_name: Name prefix for tools (optional)
- Returns:
List of tool configurations that can be loaded into ToolUniverse
- Return type:
- class tooluniverse.MGnifyExpandedTool[source]¶
Bases:
BaseToolExpanded tool for querying MGnify metagenomics database.
Covers genome catalog, taxonomic profiling, biome browsing, and sample metadata - extending existing study/analysis tools.
No authentication required.
- class tooluniverse.MPDRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.MarkItDownTool[source]¶
Bases:
BaseToolMarkItDown tool for converting files to Markdown.
- class tooluniverse.MeSHTool[source]¶
Bases:
BaseToolTool for querying NLM’s MeSH (Medical Subject Headings) vocabulary.
MeSH is the authoritative vocabulary for biomedical indexing, used by PubMed to categorize literature. Supports descriptor lookup, term search, and hierarchical tree browsing.
No authentication required.
- class tooluniverse.MedlinePlusRESTTool[source]¶
Bases:
BaseToolMedlinePlus REST API tool class. Supports health topic search, code lookup, genetics information retrieval, etc.
- class tooluniverse.MetaCycTool[source]¶
Bases:
BaseToolTool for querying MetaCyc metabolic pathway database.
MetaCyc provides: - Experimentally elucidated metabolic pathways - Enzymes and reactions - Metabolites and compounds - Pathway diagrams
Uses BioCyc web services API. No authentication required for basic access.
- class tooluniverse.MetaboLightsRESTTool[source]¶
Bases:
BaseToolMetaboLights REST API tool. Generic wrapper for MetaboLights API endpoints defined in metabolights_tools.json.
- _extract_samples_from_study(study_id)[source]¶
Extract sample information from study endpoint as fallback
- class tooluniverse.MetabolomicsWorkbenchTool[source]¶
Bases:
BaseToolTool for querying Metabolomics Workbench REST API.
Metabolomics Workbench provides metabolomics data including: - Study metadata and experimental results - Compound/metabolite information and structures - RefMet standardized nomenclature - Mass spectrometry data searches
No authentication required. Free for academic/research use.
- class tooluniverse.MobiDBTool[source]¶
Bases:
BaseToolTool for querying MobiDB protein disorder database.
Supports: - Get protein disorder predictions, curated regions, PTMs, binding modes - Get consensus disorder summary for a protein
No authentication required.
- class tooluniverse.Molecule2DTool[source]¶
Bases:
VisualizationToolTool for visualizing 2D molecular structures using RDKit.
- class tooluniverse.Molecule3DTool[source]¶
Bases:
VisualizationToolTool for visualizing 3D molecular structures using RDKit and py3Dmol.
- _create_molecule_html(mol, input_data, input_type, width, height, mol_props, style, color_scheme)[source]¶
Create HTML content for molecule 3D visualization.
- tooluniverse.Monarch¶
alias of
MonarchTool
- tooluniverse.MonarchDiseasesForMultiplePheno¶
alias of
MonarchDiseasesForMultiplePhenoTool
- class tooluniverse.MonarchDiseasesForMultiplePhenoTool[source]¶
Bases:
MonarchTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.MonarchTool[source]¶
Bases:
RESTfulTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.MonarchV3Tool[source]¶
Bases:
BaseToolTool for querying the Monarch Initiative V3 knowledge graph.
Monarch provides integrated data linking genes, diseases, phenotypes, and model organisms. The V3 API supports entity lookup, association queries, and cross-species phenotype comparisons. Data sources include OMIM, ClinVar, HPO, MGI, ZFIN, FlyBase, WormBase, and others.
Supports: entity lookup, phenotype associations, disease-gene associations.
No authentication required.
- class tooluniverse.MyChemTool[source]¶
Bases:
BaseToolTool for querying MyChem.info API.
MyChem.info provides chemical/drug annotation data from 30+ sources for 90M+ chemicals and drugs.
No authentication required. Free for academic/research use.
- MYCHEM_BASE_URL = 'https://mychem.info/v1'¶
- class tooluniverse.MyDiseaseTool[source]¶
Bases:
BaseToolTool for MyDisease.info BioThings API providing aggregated disease annotations from MONDO, Disease Ontology, CTD, HPO, and DisGeNET.
No authentication required.
- class tooluniverse.MyGeneTool[source]¶
Bases:
BaseToolTool for querying MyGene.info API.
MyGene.info provides gene annotation data from 30+ sources including Entrez Gene, Ensembl, UniProt, HGNC, and more.
No authentication required. Free for academic/research use.
- class tooluniverse.MyVariantTool[source]¶
Bases:
BaseToolTool for querying MyVariant.info API.
MyVariant.info provides variant annotation data from 19+ sources for 400M+ human variants.
No authentication required. Free for academic/research use.
- MYVARIANT_BASE_URL = 'https://myvariant.info/v1'¶
- class tooluniverse.NCBIDatasetsTool[source]¶
Bases:
BaseToolTool for querying the NCBI Datasets API v2.
Provides access to gene information by ID/symbol, gene orthologs, genome assembly reports by taxon, taxonomy details by taxon ID, and taxonomy name suggestions.
No authentication required.
- class tooluniverse.NCBIEUtilsTool[source]¶
Bases:
BaseToolBase class for NCBI E-utilities tools with rate limiting.
- class tooluniverse.NCBINucleotideSearchTool[source]¶
Bases:
NCBIEUtilsToolNCBI Nucleotide Database Search Tool using E-utilities. Searches GenBank/EMBL/RefSeq for DNA/RNA sequences by organism, gene, keywords.
- _search_nucleotide(arguments)[source]¶
Search NCBI nucleotide database and return UIDs. Uses esearch to find matching records.
- class tooluniverse.NCBISRATool[source]¶
Bases:
NCBIEUtilsToolNCBI SRA Tool using E-utilities for sequencing run metadata and downloads.
- _OPERATIONS = {'get_download_urls': '_get_download_urls', 'get_run_info': '_get_run_info', 'link_to_biosample': '_link_to_biosample', 'search': '_search_sra_runs'}¶
- static _normalize_accessions(arguments)[source]¶
Extract and normalize accessions from arguments, always returning a list.
- _SEARCH_FIELDS = {'organism': 'Organism', 'platform': 'Platform', 'source': 'Source', 'strategy': 'Strategy', 'study': 'Study'}¶
- class tooluniverse.NCCNGuidelineTool[source]¶
Bases:
BaseToolNational Comprehensive Cancer Network (NCCN) guideline tools.
Supports three operations: - list_patient: List NCCN Guidelines for Patients (free, scraped from nccn.org) - search: Search NCCN content via PubMed (JNCCN journal articles) - get_patient: Get content from a specific NCCN patient guideline page
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.NCIThesaurusTool[source]¶
Bases:
BaseToolTool for querying the NCI Thesaurus (NCIt).
NCIt provides a rich set of cancer-related terms with definitions, synonyms, semantic types, and cross-references to ICD, SNOMED-CT, MedDRA, and CDISC. Covers ~190,000 concepts organized in a polyhierarchy.
Supports: concept search, concept details, hierarchy navigation.
No authentication required.
- class tooluniverse.NDExTool[source]¶
Bases:
BaseToolTool for querying the NDEx biological network repository.
NDEx provides access to thousands of published biological networks including protein-protein interaction (PPI), signaling pathways, gene regulatory networks, and metabolic networks. Networks are contributed by research groups and databases like NCI-PID, SIGNOR, and individual labs.
Supports: network search, network summary, network content retrieval.
No authentication required for public networks.
- class tooluniverse.NICEGuidelineFullTextTool[source]¶
Bases:
BaseToolFetch full text content from NICE guideline pages. Takes a NICE guideline URL and extracts the complete guideline content.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.NICEWebScrapingTool[source]¶
Bases:
BaseToolReal NICE guidelines search using web scraping. Makes actual HTTP requests to NICE website and parses HTML responses.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.NeuroMorphoTool[source]¶
Bases:
BaseToolTool for querying NeuroMorpho.Org neuron morphology database.
Provides access to: - Neuron metadata (species, brain region, cell type, etc.) - Morphometric measurements (surface area, volume, branch count) - Associated literature - Search/filtering by multiple neuron attributes
No authentication required.
- class tooluniverse.NextstrainTool[source]¶
Bases:
BaseToolTool for querying Nextstrain, the pathogen evolution tracker.
Provides access to phylogenetic datasets for various pathogens including influenza, SARS-CoV-2, Zika, Ebola, Dengue, and more. Returns metadata and phylogenetic tree data.
No authentication required.
- class tooluniverse.NvidiaNIMTool[source]¶
Bases:
BaseToolNVIDIA NIM Healthcare API tool.
Provides unified access to 16 NVIDIA cloud-hosted healthcare AI APIs:
Structure Prediction: - AlphaFold2, AlphaFold2-Multimer, ESMFold, OpenFold2, OpenFold3, Boltz2
Protein Design: - ProteinMPNN, RFdiffusion
Molecular Tools: - DiffDock, GenMol, MolMIM
Genomics: - Evo2-40B, MSA-Search, ESM2-650M
Medical Imaging: - MAISI, Vista3D
Configuration fields: - endpoint: API endpoint path (relative to base URL) - base_url: Override base URL (default: https://health.api.nvidia.com/v1/biology) - async_expected: Whether 202 async response is expected - poll_seconds: NVCF-POLL-SECONDS header value (default 300) - response_type: Expected response type (json, pdb, mfasta, zip) - timeout: Request timeout in seconds (default 600)
- DEFAULT_BASE_URL = 'https://health.api.nvidia.com/v1/biology'¶
- STATUS_URL = 'https://integrate.api.nvidia.com/v1/status'¶
- ASSETS_URL = 'https://api.nvcf.nvidia.com/v2/nvcf/assets'¶
- DEFAULT_TIMEOUT = 600¶
- DEFAULT_POLL_SECONDS = 300¶
- MAX_POLL_ATTEMPTS = 120¶
- POLL_INTERVAL = 5¶
- _upload_asset(content, description='diffdock-file')[source]¶
Upload a file to NVIDIA’s asset storage for tools that require staged inputs (e.g., DiffDock).
This implements the NVCF asset upload pattern: 1. POST to assets API to get an upload URL and asset ID 2. PUT the file content to the upload URL 3. Return the asset ID to be used in the main API request
- class tooluniverse.ODPHPItemList[source]¶
Bases:
ODPHPRESTToolRetrieve list of topics or categories.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ODPHPMyHealthfinder[source]¶
Bases:
ODPHPRESTToolSearch for demographic-specific health recommendations (MyHealthfinder).
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ODPHPOutlinkFetch[source]¶
Bases:
BaseToolFetch article pages referenced by AccessibleVersion / RelatedItems.Url and return readable text. - HTML: extracts main/article/body text; strips nav/aside/footer/script/style. - PDF or non-HTML: returns metadata + URL so the agent can surface it.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ODPHPRESTTool[source]¶
Bases:
BaseToolBase class for ODPHP (MyHealthfinder) REST API tools.
- class tooluniverse.ODPHPTopicSearch[source]¶
Bases:
ODPHPRESTToolSearch for health topics by ID, category, or keyword.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OLSRESTTool[source]¶
Bases:
BaseToolGeneric tool for the EMBL-EBI OLS v4 REST API.
This is a JSON-config driven tool. Each tool config supplies: - fields.kind: “search” | “term” | “children” | “ontology” | “ontologies” - fields.base_url: optional override (defaults to OLS4 API root) - fields.ontology_id: optional ontology scope (e.g., “efo”)
- DEFAULT_BASE_URL = 'https://www.ebi.ac.uk/ols4/api'¶
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OLSTool[source]¶
Bases:
BaseToolInteract with the EMBL-EBI Ontology Lookup Service (OLS) REST API.
- _OPERATIONS = {'find_similar_terms': '_handle_find_similar_terms', 'get_ontology_info': '_handle_get_ontology_info', 'get_term_ancestors': '_handle_get_term_ancestors', 'get_term_children': '_handle_get_term_children', 'get_term_info': '_handle_get_term_info', 'search_ontologies': '_handle_search_ontologies', 'search_terms': '_handle_search_terms'}¶
- _get_json(path, params=None)[source]¶
Make a GET request to the OLS API and return JSON response.
- Parameters:
- Returns:
JSON response as dictionary
- Raises:
requests.RequestException – On network errors or timeouts
requests.HTTPError – On HTTP errors (4xx, 5xx)
- Return type:
- class tooluniverse.OMATool[source]¶
Bases:
BaseToolTool for querying the OMA Orthology Browser.
OMA provides orthology relationships among 2,600+ complete genomes using a highly reliable algorithm. Supports protein lookup, pairwise orthologs, Hierarchical Orthologous Groups (HOGs), and OMA Groups.
No authentication required.
- class tooluniverse.OMIMTool[source]¶
Bases:
BaseToolTool for querying OMIM (Online Mendelian Inheritance in Man).
OMIM provides: - Mendelian disease information - Gene-disease relationships - Clinical synopses - Inheritance patterns
Requires API key via OMIM_API_KEY environment variable. Register at https://omim.org/api for free academic access.
- class tooluniverse.ORCIDTool[source]¶
Bases:
BaseToolTool for querying the ORCID Public API.
Provides access to: - Researcher profiles and biographical data - Publication works - Search across all ORCID records - Employment and affiliation history
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OSFPreprintsTool[source]¶
Bases:
BaseToolSearch OSF Preprints via OSF API v2 filters.
- Parameters (arguments):
query (str): Query string max_results (int): Max results (default 10, max 100) provider (str): Optional preprint provider (e.g., ‘osf’, ‘psyarxiv’)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OmniPathTool[source]¶
Bases:
BaseToolTool for querying OmniPath intercellular and intracellular signaling data.
OmniPath integrates 100+ databases covering: - Ligand-receptor interactions (14,000+ pairs) - Intercellular communication roles - Signaling pathway interactions - Protein complexes (22,000+) - Cell communication annotations - Enzyme-substrate relationships
No authentication required.
- _get_ligand_receptor(arguments)[source]¶
Get ligand-receptor interactions from the ligrecextra dataset.
- class tooluniverse.OncoKBTool[source]¶
Bases:
BaseToolTool for querying OncoKB precision oncology knowledge base.
OncoKB provides: - Actionable cancer variant annotations - Evidence levels for clinical actionability - FDA-approved and investigational treatments - Gene-level oncogenic classifications
Requires API token via ONCOKB_API_TOKEN environment variable. Demo API available for testing (limited to BRAF, TP53, ROS1 genes).
- _annotate_variant(arguments)[source]¶
Annotate a specific variant for oncogenic potential and treatment implications.
- _get_cancer_genes(arguments)[source]¶
Get list of all cancer genes curated in OncoKB.
Returns genes classified as oncogenes and/or tumor suppressors.
- class tooluniverse.OntologyInfo[source]¶
Bases:
BaseModelDescription of a single ontology entry in OLS.
- _abc_impl = <_abc._abc_data object>¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tooluniverse.OntologySearchResponse[source]¶
Bases:
PagedResponsePaginated collection of ontologies returned by the search endpoint.
- ontologies: List[OntologyInfo]¶
- _abc_impl = <_abc._abc_data object>¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tooluniverse.OpenAIRETool[source]¶
Bases:
BaseToolSearch OpenAIRE Explore for research products (publications by default).
- Parameters (arguments):
query (str): Query string max_results (int): Max number of results (default 10, max 100) type (str): product type filter: publications | datasets | software
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OpenAlexGuidelinesTool[source]¶
Bases:
BaseToolOpenAlex Guidelines Search Tool. Specialized tool for searching clinical practice guidelines using OpenAlex API.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OpenAlexRESTTool[source]¶
Bases:
BaseToolGeneric JSON-config driven OpenAlex REST tool.
Notes: - OpenAlex strongly encourages providing a contact email via the mailto query param. - This tool returns a consistent wrapper: {status, data, url} (plus error fields on failure).
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OpenAlexTool[source]¶
Bases:
BaseToolTool to retrieve literature from OpenAlex based on search keywords.
- search_literature(search_keywords, max_results=10, year_from=None, year_to=None, open_access=None, *, require_has_fulltext=False, fulltext_terms=None)[source]¶
Search for literature using OpenAlex API.
- Parameters
search_keywords (str): Keywords to search for in title, abstract, and content. max_results (int): Maximum number of results to return (default: 10). year_from (int): Start year for publication date filter (optional). year_to (int): End year for publication date filter (optional). open_access (bool): Filter for open access papers only (optional).
- Returns
list: List of dictionaries containing paper information.
- _extract_paper_info(work)[source]¶
Extract relevant information from a work object returned by OpenAlex API.
- Parameters
work (dict): Work object from OpenAlex API response.
- Returns
dict: Formatted paper information.
- class tooluniverse.OpenNeuroTool[source]¶
Bases:
GraphQLToolTool for querying the OpenNeuro neuroimaging data repository.
OpenNeuro stores brain imaging datasets in BIDS format including: - MRI, fMRI, EEG, MEG, PET datasets - Dataset metadata, subjects, tasks, modalities - Download information and analytics
No authentication required for public datasets.
- tooluniverse.OpenTarget¶
alias of
OpentargetTool
- tooluniverse.OpenTargetGenetics¶
alias of
OpentargetGeneticsTool
- class tooluniverse.OpenTreeTool[source]¶
Bases:
BaseToolTool for querying the Open Tree of Life.
The Open Tree synthesizes published phylogenetic trees and taxonomy from NCBI, GBIF, IRMNG, and other sources into a single comprehensive tree of all life on Earth (~2.3 million tips).
Supports: name resolution (TNRS), taxonomy lookup, MRCA computation, and induced subtree extraction.
No authentication required.
- class tooluniverse.OpentargetGeneticsTool[source]¶
Bases:
GraphQLTool
- class tooluniverse.OpentargetTool[source]¶
Bases:
GraphQLTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OpentargetToolDrugNameMatch[source]¶
Bases:
GraphQLTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.OrphanetTool[source]¶
Bases:
BaseToolTool for querying Orphanet rare disease database.
Orphanet provides: - Rare disease nomenclature and classification - Disease-gene associations - Epidemiology data (prevalence, inheritance) - Expert centers and patient organizations
RDcode API requires apiKey header (any value accepted). Orphadata API is free public access.
- class tooluniverse.OrthoDBTool[source]¶
Bases:
BaseToolOrthoDB v12 tool for orthologous group analysis.
Provides search for orthologous groups, group details with functional annotations (KEGG, GO), and member gene lists across species.
No authentication required.
- class tooluniverse.OxOTool[source]¶
Bases:
BaseToolTool for EBI OxO (Ontology Xref Service) API providing cross-reference mappings between ontology terms across biomedical databases.
No authentication required.
- class tooluniverse.PANTHERTool[source]¶
Bases:
BaseToolTool for querying PANTHER gene classification and enrichment analysis.
Provides gene functional annotation, overrepresentation analysis with GO/pathway enrichment, and ortholog mapping across 144 organisms.
No authentication required.
- class tooluniverse.PDBECompoundTool[source]¶
Bases:
BaseToolTool for querying PDBe compound (ligand/small molecule) information.
Supports: - Get compound summary (formula, weight, SMILES, InChI, cross-references) - Get all PDB structures containing a specific compound
No authentication required.
- class tooluniverse.PDBeAPIRESTTool[source]¶
Bases:
BaseToolPDBe API REST tool. Generic wrapper for PDBe API endpoints defined in pdbe_api_tools.json.
- class tooluniverse.PDBeLigandsTool[source]¶
Bases:
BaseToolTool for querying PDBe structure-bound ligands and residue details.
Supports: - Get all ligands bound in a PDB structure (drug-like, cofactors, ions) - Get per-residue listing with observed ratio for a PDB chain
No authentication required.
- class tooluniverse.PDBeSIFTSTool[source]¶
Bases:
BaseToolPDBe SIFTS Mapping tool for UniProt-PDB cross-referencing.
Provides ranked best structures for a protein, PDB-to-UniProt chain mapping, and comprehensive structure coverage analysis.
No authentication required.
- class tooluniverse.PDBeSearchTool[source]¶
Bases:
BaseToolTool for searching PDBe, the Protein Data Bank in Europe.
Provides full-text and field-specific Solr queries across all PDB entries, plus compound/ligand lookup by identifier.
No authentication required.
- class tooluniverse.PDBeValidationTool[source]¶
Bases:
BaseToolTool for querying PDBe structure validation data.
Supports: - Global quality percentile scores (Ramachandran, rotamer, clashscore) - Residue-level validation outliers
No authentication required.
- class tooluniverse.PDBe_KB_Tool[source]¶
Bases:
BaseToolTool for querying PDBe-KB (Knowledge Base) Graph API.
PDBe-KB aggregates structural biology knowledge including: - Ligand binding sites mapped to UniProt positions - Protein-protein interaction interfaces - Structural coverage statistics - Superposition clusters and best chain coverage
Data is indexed by UniProt accession and provides residue-level annotations using UniProt numbering.
No authentication required.
- class tooluniverse.PMCTool[source]¶
Bases:
BaseToolTool for searching PMC full-text biomedical literature.
- _parse_esummary_xml(xml_text)[source]¶
Parse NCBI E-utilities esummary XML into a dict keyed by numeric PMC id.
- _fetch_pubmed_abstracts(pmids)[source]¶
Best-effort: fetch PubMed abstracts for PMIDs via efetch XML.
- class tooluniverse.PRIDERESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.PackageTool[source]¶
Bases:
BaseToolUniversal tool to provide information about Python packages. Fetches real-time data from PyPI API with local fallback.
- class tooluniverse.PagedResponse[source]¶
Bases:
BaseModelBase structure for paginated responses returned by OLS.
- _abc_impl = <_abc._abc_data object>¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tooluniverse.PaleobiologyRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.PathwayCommonsTool[source]¶
Bases:
BaseToolTool for interacting with Pathway Commons (PC2).
- BASE_URL = 'https://www.pathwaycommons.org/pc2'¶
- class tooluniverse.PfamTool[source]¶
Bases:
BaseToolTool for Pfam protein family queries via the InterPro API.
No authentication required.
- class tooluniverse.PharmGKBTool[source]¶
Bases:
BaseToolTool for querying PharmGKB REST API.
PharmGKB provides pharmacogenomics data: - Drug-gene-variant clinical annotations - CPIC dosing guidelines - Drug and gene details - Pharmacogenetic pathways
No authentication required for most endpoints.
- _get_entity_details(entity_type, arguments)[source]¶
Get details for a specific entity by PharmGKB ID.
- class tooluniverse.PharosTool[source]¶
Bases:
BaseToolTool for querying Pharos/TCRD GraphQL API.
Pharos provides drug target information including: - Target Development Level (Tdark, Tbio, Tchem, Tclin) - Druggability assessments - Protein family classifications - Disease associations - Ligand/drug information
No authentication required. Free for academic/research use.
- _get_target(arguments)[source]¶
Get detailed target information by gene symbol or UniProt ID.
Returns TDL classification, protein family, disease associations, ligands, and druggability information.
- _search_targets(arguments)[source]¶
Search targets by query string.
Returns targets matching the search term with TDL classification.
- _get_tdl_summary(arguments)[source]¶
Get Target Development Level summary statistics.
Returns counts of targets at each TDL level: - Tclin: Targets with approved drugs - Tchem: Targets with small molecule activities - Tbio: Targets with biological annotations - Tdark: Understudied targets with minimal information
- class tooluniverse.PlantReactomeTool[source]¶
Bases:
BaseToolTool for querying the Plant Reactome pathway database.
Plant Reactome provides curated plant metabolic and regulatory pathways. Supports searching pathways, getting pathway details, and listing available species. Covers photosynthesis, carbon fixation, nitrogen metabolism, hormone signaling, secondary metabolites, and more.
No authentication required.
- class tooluniverse.PomBaseTool[source]¶
Bases:
BaseToolTool for querying PomBase, the S. pombe genome database.
Provides detailed gene information for fission yeast including protein domains, GO annotations, phenotypes, and more.
No authentication required.
- class tooluniverse.ProtacDBTool[source]¶
Bases:
BaseToolTool for querying PROTAC-DB 3.0 (Zhejiang University).
Provides access to: - PROTAC compound search and retrieval by target or E3 ligase - Compound details (SMILES, DC50, Dmax, cell lines, references) - Target protein information
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ProteinStructure3DTool[source]¶
Bases:
VisualizationToolTool for visualizing 3D protein structures using py3Dmol.
- class tooluniverse.ProteinsAPIRESTTool[source]¶
Bases:
BaseToolProteins API REST tool. Generic wrapper for Proteins API endpoints defined in proteins_api_tools.json.
- _extract_from_protein_endpoint(accession, tool_name)[source]¶
Extract data from main protein endpoint when specific endpoints don’t exist
- _parse_accessions(accession)[source]¶
Parse accession parameter - handle string, list, or comma-separated string
- class tooluniverse.ProteinsPlusRESTTool[source]¶
Bases:
AsyncPollingToolProteinsPlus API tool for protein-ligand docking and binding site analysis.
Now uses AsyncPollingTool base class for automatic polling, progress reporting, and timeout management. Original functionality preserved.
- _SIENA_OPTIONAL_KEYS = {'flexibility_sensitivity': 'flexibility_sensitivity', 'fragment_length': 'fragment_length', 'maximum_mutations': 'maximum_mutations', 'minimal_site_coverage': 'minimalSiteCoverage', 'minimal_site_identity': 'minimalSiteIdentity', 'site_radius': 'siteRadius'}¶
- _transform_params(arguments)[source]¶
Transform user-facing arguments into the nested format ProteinsPlus expects.
- _build_api_url(arguments)[source]¶
Build API URL by substituting argument placeholders in the endpoint.
- submit_job(arguments)[source]¶
Submit job to ProteinsPlus API and return job location URL.
This method handles job submission for async tools. For sync tools, it’s not called (handled by run() override).
- check_status(job_id)[source]¶
Check ProteinsPlus job status and return result if complete.
- Parameters:
job_id (str) – Job location URL from submit_job()
- Returns:
done (bool): True if complete
result (any): Results if done
progress (int): Progress percentage (0-100)
error (str): Error message if failed
- Return type:
Dict with keys
- async run(arguments, progress=None)[source]¶
Execute the tool with provided arguments.
Overrides AsyncPollingTool.run() to support both sync and async tools.
- _abc_impl = <_abc._abc_data object>¶
- class tooluniverse.ProteomeXchangeTool[source]¶
Bases:
BaseToolTool for querying ProteomeXchange, the proteomics data consortium.
Provides access to metadata for proteomics datasets including species, instruments, publications, and data files from PRIDE, MassIVE, PeptideAtlas, jPOST, and iProX.
No authentication required.
- class tooluniverse.PubChemBioAssayTool[source]¶
Bases:
BaseToolTool for querying PubChem BioAssay data.
Access biological assay descriptions, targets, and screening results from PubChem. Supports searching by assay ID, target gene, or keyword.
No authentication required.
- class tooluniverse.PubChemRESTTool[source]¶
Bases:
BaseToolGeneric PubChem PUG-REST tool class. Directly concatenates URL from the fields.endpoint template and sends requests to PubChem PUG-REST.
- _build_url(arguments)[source]¶
Use regex to replace all {placeholder} in endpoint_template to generate complete URL path. For example endpoint_template=”/compound/cid/{cid}/property/{property_list}/JSON” arguments={“cid”:2244}, property_list=[“MolecularWeight”,”IUPACName”] → “/compound/cid/2244/property/MolecularWeight,IUPACName/JSON” Finally returns “https://pubchem.ncbi.nlm.nih.gov/rest/pug” + concatenated path.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.PubChemToxTool[source]¶
Bases:
BaseToolTool for PubChem toxicity and safety data via PUG View API.
No authentication required.
- _find_sections_recursive(sections, heading)[source]¶
Recursively find all sections matching a heading at any depth.
- _extract_info_from_sections(sections, heading)[source]¶
Find sections matching heading recursively and extract their Information entries.
- _get_ghs_classification(arguments)[source]¶
Get GHS (Globally Harmonized System) hazard classification for a compound.
- _get_toxicity_values(arguments)[source]¶
Get non-human toxicity values (LD50, LC50, etc.) for a compound.
- _get_carcinogen_classification(arguments)[source]¶
Get carcinogen classification data for a compound.
- class tooluniverse.PubMedGuidelinesTool[source]¶
Bases:
BaseToolSearch PubMed for clinical practice guidelines. Uses NCBI E-utilities with guideline publication type filter.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.PubMedRESTTool[source]¶
Bases:
BaseRESTToolGeneric REST tool for PubMed E-utilities (efetch, elink).
Implements rate limiting per NCBI guidelines: - Without API key: 3 requests/second - With API key: 10 requests/second
API key is read from environment variable NCBI_API_KEY. Get your free key at: https://www.ncbi.nlm.nih.gov/account/
- _last_request_time = 0.0¶
- _rate_limit_lock = <unlocked _thread.lock object>¶
- _enforce_rate_limit(has_api_key)[source]¶
Enforce NCBI E-utilities rate limits.
- Parameters:
has_api_key (bool) – Whether an API key is provided
- class tooluniverse.PubTatorTool[source]¶
Bases:
BaseToolGeneric wrapper around a single PubTator 3 endpoint supporting JSON-defined configs.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.PyPIPackageInspector[source]¶
Bases:
BaseToolExtracts comprehensive package information from PyPI and GitHub. Provides detailed metrics on popularity, maintenance, security, and compatibility.
- _calculate_quality_scores(pypi_data, downloads, github_data)[source]¶
Calculate quality scores based on collected metrics
- _generate_recommendation(scores, pypi_data, github_data)[source]¶
Generate a human-readable recommendation based on scores
- class tooluniverse.PythonCodeExecutor[source]¶
Bases:
BasePythonExecutor,BaseToolExecute Python code snippets safely in sandboxed environment.
- class tooluniverse.PythonScriptRunner[source]¶
Bases:
BasePythonExecutor,BaseToolRun Python script files in isolated subprocess with resource limits.
- class tooluniverse.QuickGOTool[source]¶
Bases:
BaseToolTool for querying the EBI QuickGO Gene Ontology browser.
QuickGO provides comprehensive GO annotation data with filtering by gene product, GO term, taxon, evidence code, and more. Also provides ontology term details and hierarchical relationships.
No authentication required.
- class tooluniverse.RCSBAdvancedSearchTool[source]¶
Bases:
BaseToolAdvanced attribute-based search of the RCSB Protein Data Bank.
Enables complex queries combining organism, resolution, experimental method, molecular weight, and more. Returns PDB IDs matching all criteria.
No authentication required.
- class tooluniverse.RCSBDataTool[source]¶
Bases:
BaseToolTool for RCSB PDB Data API providing direct REST access to PDB structure metadata, biological assembly info, and non-polymer entities.
Complements existing RCSB GraphQL and Search tools by providing simpler, direct access to individual resource endpoints.
No authentication required.
- class tooluniverse.RCSBGraphQLTool[source]¶
Bases:
BaseToolTool for querying the RCSB PDB Data API via GraphQL.
Supports: - Structure summary (title, resolution, method, citation, etc.) - Chemical component / ligand details (formula, SMILES, targets) - Polymer entity details (sequence, annotations, descriptions)
No authentication required.
- class tooluniverse.RCSBSearchTool[source]¶
Bases:
BaseToolTool for searching similar protein structures using RCSB PDB Search API v2.
Supports: - Sequence-based similarity search - Structure-based similarity search (using PDB ID) - Text-based search (by name, keyword, etc.)
- _build_sequence_query(sequence, identity_cutoff, max_results)[source]¶
Build sequence similarity search query.
Uses the correct RCSB Search API v2 format: - Uses “value” parameter (not “target”) - Includes evalue_cutoff (required, default 0.1) - Includes identity_cutoff (optional, 0-1) - Includes sequence_type (“protein”)
- _build_structure_query(pdb_id, similarity_threshold, max_results)[source]¶
Build structure similarity search query.
Uses the correct RCSB Search API v2 format: - Uses “value” as an object with “entry_id” and “assembly_id” - Includes “operator” (default: “strict_shape_match”) - Includes “target_search_space” (default: “assembly”)
- _build_text_query(search_text, max_results)[source]¶
Build text search query.
Uses the correct RCSB Search API v2 format: - Searches in multiple attributes
(struct.title, struct_keywords.pdbx_keywords)
Uses OR logic to combine search conditions
Supports pagination and sorting
- _parse_search_results(response_data)[source]¶
Parse RCSB Search API response.
Expected response format: {
“query_id”: “…”, “result_type”: “entry”, “total_count”: 123, “result_set”: [
{“identifier”: “6B3Q”, “score”: 1.0}, …
]
}
- run(arguments=None, stream_callback=None, use_cache=False, validate=True)[source]¶
Execute structure similarity search.
- Parameters:
arguments (Dict[str, Any] | None) –
Dictionary containing: - query: PDB ID, protein sequence, or search text - search_type: “sequence”, “structure”, or “text”
(default: “sequence”)
similarity_threshold: Similarity threshold 0-1 (default: 0.7) (not used for text search)
max_results: Maximum number of results (default: 20)
stream_callback (Any | None) – Optional callback for streaming
use_cache (bool) – Whether to use caching
validate (bool) – Whether to validate parameters
- Returns:
Dictionary with search results or error information
- Return type:
- class tooluniverse.RCSBTool[source]¶
Bases:
BaseTool- run(params)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.RESTfulTool[source]¶
Bases:
GraphQLTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ReMapRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.ReactomeAnalysisTool[source]¶
Bases:
BaseToolTool for Reactome pathway analysis (enrichment/overrepresentation).
Accepts gene/protein identifiers and performs overrepresentation analysis or species comparison against Reactome pathways. Returns enriched pathways with p-values, FDR, and entity counts.
No authentication required.
- class tooluniverse.ReactomeContentTool[source]¶
Bases:
BaseToolTool for Reactome Content Service providing pathway search, contained event retrieval, and enhanced pathway details.
Complements existing Reactome tools by adding free-text search and hierarchical event decomposition.
No authentication required.
- class tooluniverse.ReactomeInteractorsTool[source]¶
Bases:
BaseToolTool for querying protein interactors and entity pathways from Reactome.
Reactome provides curated protein-protein interaction data derived from IntAct, with confidence scores and evidence counts. Also supports finding Reactome pathways associated with specific entities.
Supports: get protein interactors, find pathways for entity, search Reactome entities.
No authentication required.
- class tooluniverse.ReactomeRESTTool[source]¶
Bases:
BaseToolGeneric Reactome Content Service REST tool. If there is no “fields.extract_path” in config or its value is empty, returns complete JSON; Otherwise, drills down according to the “dot-separated path” in extract_path and returns corresponding sub-node.
- _build_url(arguments)[source]¶
Combines endpoint_template (containing {xxx}) with path parameters from arguments to generate complete URL. For example endpoint_template=”/data/pathway/{stId}”, arguments={“stId”:”R-HSA-73817”} → Returns “https://reactome.org/ContentService/data/pathway/R-HSA-73817”
- run(arguments, stream_callback=None, use_cache=False, validate=True)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.RegulomeDBRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.RemoteTool[source]¶
Bases:
BaseToolA placeholder tool class for external MCP/SMCP tools.
RemoteTool represents tools that are hosted on external MCP/SMCP servers and are only available for discovery and listing purposes. These tools cannot be executed locally through ToolUniverse but their configurations are preserved for reference.
- __init__(tool_config=None)[source]¶
Initialize the RemoteTool.
- Parameters:
tool_config (
dict, optional) – Tool configuration dictionary
- run(arguments=None)[source]¶
Placeholder run method for remote tools.
Remote tools cannot be executed locally. This method always returns an error message indicating that the tool is not available for local execution.
- Parameters:
arguments (
dict, optional) – Tool arguments (ignored)
- Returns
dict: Error message indicating the tool is not available locally
- get_remote_info()[source]¶
Get information about the remote server hosting this tool.
- Returns
dict: Remote server information including server type, URL, and original tool type
- class tooluniverse.RfamTool[source]¶
Bases:
BaseToolRfam Database API tool for RNA family data.
Provides access to: - RNA family information and metadata - Secondary structure diagrams - Covariance models - Sequence alignments (Stockholm, FASTA formats) - Phylogenetic trees - Sequence searches
- class tooluniverse.RheaTool[source]¶
Bases:
BaseToolTool for querying the Rhea biochemical reaction database.
Rhea contains over 15,000 manually curated biochemical reactions, each linked to ChEBI compounds and EC enzyme numbers. The search API returns TSV which is parsed to structured JSON.
No authentication required.
- class tooluniverse.RxNormTool[source]¶
Bases:
BaseToolTool for querying RxNorm API to get drug standardization information.
This tool performs a two-step process: 1. Look up RXCUI (RxNorm Concept Unique Identifier) by drug name 2. Retrieve all associated names (generic names, brand names, synonyms, etc.) using RXCUI
- _preprocess_drug_name(drug_name)[source]¶
Preprocess drug name to improve matching success rate. Removes common patterns that might prevent matching: - Dosage information (e.g., “200mg”, “81mg”) - Formulations (e.g., “tablet”, “capsule”, “oral”) - Modifiers (e.g., “Extra Strength”, “Extended Release”) - Special characters that might interfere
- _get_all_names_by_rxcui(rxcui)[source]¶
Get all names associated with an RXCUI, including generic names, brand names, and synonyms.
- run(arguments)[source]¶
Execute the RxNorm tool.
- Parameters:
arguments (Dict[str, Any]) – Dictionary containing: - drug_name (str, required): The name of the drug to search for
- Returns:
rxcui: The RxNorm Concept Unique Identifier
names: List of all associated names (generic names, brand names, synonyms, etc.)
drug_name: The original drug name queried
processed_name: The preprocessed drug name used for search (if different)
- Return type:
Dictionary containing
- class tooluniverse.SASBDBRESTTool[source]¶
Bases:
BaseToolSASBDB API tool for small-angle scattering (SAXS/SANS) data.
- class tooluniverse.SASBDBSearchTool[source]¶
Bases:
BaseToolSASBDB search tool - lists entries by molecular type or all entries.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SAbDabTool[source]¶
Bases:
BaseToolTool for querying SAbDab structural antibody database.
SAbDab provides: - Antibody structures from PDB - CDR (complementarity-determining region) annotations - Heavy/light chain pairing information - Antigen binding information
No authentication required.
- class tooluniverse.SCREENRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SGDTool[source]¶
Bases:
BaseToolTool for querying the Saccharomyces Genome Database (SGD).
SGD provides curated information about the budding yeast S. cerevisiae, including gene function, phenotypes, interactions, GO annotations, pathways, and literature.
No authentication required.
- class tooluniverse.SIGNListGuidelinesTool[source]¶
Bases:
BaseToolList SIGN (Scottish Intercollegiate Guidelines Network) clinical guidelines, optionally filtered by clinical topic/specialty. Returns up to limit guidelines from the full SIGN guidelines table.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SIGNSearchGuidelinesTool[source]¶
Bases:
BaseToolSearch SIGN (Scottish Intercollegiate Guidelines Network) clinical guidelines by keyword. Fetches the full SIGN guidelines table (84 guidelines as of 2024) and filters results client-side.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SIMBADAdvancedTool[source]¶
Bases:
BaseToolAdvanced SIMBAD queries using TAP (Table Access Protocol) for complex queries.
This tool allows ADQL (Astronomical Data Query Language) queries for more sophisticated database searches.
- class tooluniverse.SIMBADTool[source]¶
Bases:
BaseToolQuery the SIMBAD astronomical database for object information.
SIMBAD (Set of Identifications, Measurements, and Bibliography for Astronomical Data) is a comprehensive database of astronomical objects beyond the Solar System.
- _get_format_string(output_format)[source]¶
Get SIMBAD format string based on requested output format.
- class tooluniverse.STITCHTool[source]¶
Bases:
BaseToolTool for querying STITCH database.
STITCH provides chemical-protein interaction data including: - Known drug-target interactions - Predicted chemical-protein interactions - Interaction scores and evidence - Network analysis data
No authentication required. Free for academic/research use.
- _get_interactions(arguments)[source]¶
Get chemical-protein interactions.
Endpoint: GET /json/interactions
- class tooluniverse.STRINGExtTool[source]¶
Bases:
BaseToolExtended STRING API tool for functional annotation queries.
Complements existing STRING tools (interactions, enrichment, network, PPI enrichment) by providing per-protein functional annotations from GO, KEGG, DISEASES, TISSUES, COMPARTMENTS, and other databases.
No authentication required.
- class tooluniverse.STRINGRESTTool[source]¶
Bases:
BaseToolSTRING Database REST API tool. Generic wrapper for STRING API endpoints defined in ppi_tools.json.
- class tooluniverse.SearchSPLTool[source]¶
Bases:
BaseToolSearch SPL list based on multiple filter conditions (drug_name/ndc/rxcui/setid/published_date). Returns original DailyMed API JSON (including metadata + data array).
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SemanticScholarPDFSnippetsTool[source]¶
Bases:
BaseToolFetch a paper’s PDF from Semantic Scholar and return bounded text snippets around user-provided terms. Uses markitdown to convert PDF to markdown text.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SemanticScholarTool[source]¶
Bases:
BaseToolTool to search for papers on Semantic Scholar including abstracts.
API key is read from environment variable SEMANTIC_SCHOLAR_API_KEY. Request an API key at: https://www.semanticscholar.org/product/api
Rate limits: - Without API key: 1 request/second - With API key: 100 requests/second
- _last_request_time = 0.0¶
- _rate_limit_lock = <unlocked _thread.lock object>¶
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.SmolAgentTool[source]¶
Bases:
BaseToolWrap smolagents agents so they can be used as ToolUniverse tools.
Supports: - CodeAgent, ToolCallingAgent, Agent, ManagedAgent - Mixed tools: ToolUniverse tools and smolagents-native tools - Streaming integration with ToolUniverse stream callbacks
- _import_smolagents_tool(class_name, import_path)[source]¶
Dynamically import smolagents tool class with helpful error messages.
- run(arguments, stream_callback=None, **_)[source]¶
Execute the agent with optional streaming back into ToolUniverse.
Supports: - Streaming output (when stream_callback is provided and agent.stream_outputs=True) - Execution timeout (via agent_init_params.max_execution_time) - Thread-safe stdout/stderr redirection
- class tooluniverse.SpliceAITool[source]¶
Bases:
BaseToolSpliceAI and Pangolin Splice Prediction API tool.
Provides access to deep learning-based splice prediction scores from the Broad Institute’s SpliceAI Lookup service.
- class tooluniverse.SurvivalTool[source]¶
Bases:
BaseToolLocal survival analysis tools.
Implements: - Kaplan-Meier survival estimator - Log-rank test (Mantel-Cox) - Cox proportional hazards regression (basic)
No external API required. Uses numpy/scipy.
- _km_estimator(durations, events)[source]¶
Compute Kaplan-Meier product-limit survival estimate.
Returns (times, survival, at_risk, events_at_t, n_censored).
- _kaplan_meier(arguments)[source]¶
Compute Kaplan-Meier survival estimate.
durations: list of observed times event_observed: list of 1 (event occurred) or 0 (censored) group_labels: optional list of group labels for stratified analysis
- class tooluniverse.SwissDockTool[source]¶
Bases:
AsyncPollingToolTool for molecular docking using SwissDock REST API with AsyncPollingTool base class.
SwissDock performs protein-ligand docking using: - Attracting Cavities 2.0 (default) - cavity-based docking - AutoDock Vina - blind or targeted docking
Now uses AsyncPollingTool for automatic polling, progress reporting, and timeout management.
- _set_docking_parameters(session_id, exhaustiveness=8, box_center=None, box_size=None, docking_engine='attracting_cavities')[source]¶
Set docking parameters (raises on error).
- _STATUS_KEYWORD_MAP = [(('COMPLETE', 'FINISHED', 'DONE'), 'FINISHED'), (('RUNNING', 'PROGRESS'), 'RUNNING'), (('ERROR', 'FAIL'), 'ERROR')]¶
- submit_job(arguments)[source]¶
Submit docking job through multi-step workflow.
This handles the complete SwissDock workflow: 1. Check server status 2. Prepare ligand from SMILES 3. Prepare target protein 4. Set docking parameters 5. Start docking job
Returns session_id for polling.
- check_status(job_id)[source]¶
Check SwissDock job status and retrieve results if complete.
- Parameters:
job_id (str) – Session ID from submit_job()
- Returns:
done (bool): True if complete
result (any): Results if done
progress (int): Progress percentage
error (str): Error message if failed
- Return type:
Dict with keys
- _OPERATION_HANDLERS = {'check_job_status': '_check_job_status_operation', 'retrieve_results': '_retrieve_results_operation'}¶
- async run(arguments, progress=None)[source]¶
Execute the SwissDock API call.
Routes to appropriate operation handler based on tool configuration.
- async _check_job_status_operation(arguments)[source]¶
Check the status of a docking job by session ID (instant operation).
- async _retrieve_results_operation(arguments)[source]¶
Retrieve results for a completed docking job (instant operation).
- _abc_impl = <_abc._abc_data object>¶
- class tooluniverse.SwissModelTool[source]¶
Bases:
BaseToolTool for querying the SWISS-MODEL Repository.
Provides pre-computed protein homology models for UniProt entries, including template structures, sequence coverage, quality metrics, and download coordinates.
No authentication required.
- class tooluniverse.SynBioHubTool[source]¶
Bases:
BaseToolTool for querying SynBioHub, a synthetic biology parts repository.
SynBioHub hosts the iGEM Registry (20,000+ BioBricks), as well as other public collections of genetic parts and designs encoded in SBOL format. Parts include promoters, coding sequences (CDS), terminators, ribosome binding sites (RBS), reporters (GFP, RFP, LacZ), regulatory elements, and composite devices.
Supports: search parts by keyword, list collections, get part SBOL data.
No authentication required for public collections.
- class tooluniverse.TIMERTool[source]¶
Bases:
BaseToolReplicates TIMER2.0 tumor immune estimation using cBioPortal TCGA data.
Since TIMER3.0 no longer has a public REST API, this tool queries cBioPortal (www.cbioportal.org) for TCGA expression and survival data and computes equivalent statistics locally.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.TRIPDatabaseTool[source]¶
Bases:
BaseToolSearch TRIP Database (Turning Research into Practice). Specialized evidence-based medicine database with clinical guidelines filter.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- _search_trip_database(query, limit, search_type)[source]¶
Search TRIP Database for clinical guidelines.
- _fetch_guideline_content(url)[source]¶
Extract content from a guideline URL using targeted parsers when available.
- class tooluniverse.TermInfo[source]¶
Bases:
BaseModelBasic term representation returned by OLS.
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- iri: HttpUrl¶
- _abc_impl = <_abc._abc_data object>¶
- class tooluniverse.TermSearchResponse[source]¶
Bases:
PagedResponsePaginated set of OLS terms.
- _abc_impl = <_abc._abc_data object>¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tooluniverse.TextDownloadTool[source]¶
Bases:
BaseToolDownload and return text content from URLs.
Optimized for text files - returns content as string directly. Supports encoding detection and normalization.
Expects: {“url”: “https://…”} Optional: {“encoding”: “utf-8”, “timeout”: seconds} Returns: {“content”: “text content”, “encoding”: “utf-8”}
- class tooluniverse.TheraSAbDabTool[source]¶
Bases:
BaseToolTool for querying Thera-SAbDab therapeutic antibody database.
Provides access to: - WHO INN therapeutic antibody names - Heavy/light chain sequences - Target antigens - Clinical trial status - PDB structural coverage
No authentication required.
- _therapeutics_cache = None¶
- _search_therapeutics(arguments)[source]¶
Search therapeutic antibodies by name or keyword.
Searches the Thera-SAbDab database for matching therapeutics.
- class tooluniverse.ThreeDBeaconsTool[source]¶
Bases:
BaseToolTool for 3D Beacons Hub API providing aggregated 3D structure models from multiple providers for a given UniProt protein accession.
Aggregates experimental structures (PDBe), predicted models (AlphaFold DB), homology models (SWISS-MODEL), conformational ensembles (PED), and more.
No authentication required.
- class tooluniverse.ToolFinderEmbedding[source]¶
Bases:
BaseToolA tool finder model that uses RAG (Retrieval-Augmented Generation) to find relevant tools based on user queries using semantic similarity search.
This class leverages sentence transformers to encode tool descriptions and find the most relevant tools for a given query through embedding-based similarity matching.
- rag_model¶
The loaded sentence transformer model
- Type:
SentenceTransformer
- tool_desc_embedding¶
Cached embeddings of tool descriptions
- Type:
torch.Tensor
- tooluniverse¶
Reference to the tool universe containing all tools
- __init__(tool_config, tooluniverse)[source]¶
Initialize the ToolFinderEmbedding with configuration and RAG model.
- Parameters:
tool_config (
dict) – Configuration dictionary for the tool
- _maybe_refresh_embeddings()[source]¶
Check if the tool list has changed and refresh embeddings if needed.
This method is called before each Tool_RAG query to ensure the embeddings are up-to-date with the currently loaded tools. This is critical when using Tool_RAG via HTTP API where tools are loaded dynamically.
- load_rag_model()[source]¶
Load the sentence transformer model for RAG-based tool retrieval.
Configures the model with appropriate sequence length and tokenizer settings for optimal performance in tool description encoding.
The model is automatically moved to GPU if available for faster inference.
- Raises:
ImportError – If sentence-transformers is not installed.
- load_tool_desc_embedding(tooluniverse, include_names=None, exclude_names=None, include_categories=None, exclude_categories=None)[source]¶
Load or generate embeddings for tool descriptions from the tool universe.
This method either loads cached embeddings from disk or generates new ones by encoding all tool descriptions. Embeddings are cached to disk for faster subsequent loads. Memory is properly cleaned up after embedding generation to avoid OOM issues.
- Parameters:
tooluniverse – ToolUniverse instance containing all available tools
include_names (
list, optional) – Specific tool names to includeexclude_names (
list, optional) – Tool names to excludeinclude_categories (
list, optional) – Tool categories to includeexclude_categories (
list, optional) – Tool categories to exclude
- rag_infer(query, top_k=5)[source]¶
Perform RAG inference to find the most relevant tools for a given query.
Uses semantic similarity between the query embedding and pre-computed tool embeddings to identify the most relevant tools.
- Parameters:
query (
str) – User query or description of desired functionalitytop_k (
int, optional) – Number of top tools to return. Defaults to 5.
- Returns
list: List of top-k tool names ranked by relevance to the query
- Raises:
ImportError – If dependencies are not available.
SystemExit – If tool_desc_embedding is not loaded
- find_tools(message=None, picked_tool_names=None, rag_num=5, return_call_result=False, categories=None)[source]¶
Find relevant tools based on a message or pre-selected tool names.
This method either uses RAG inference to find tools based on a message or processes a list of pre-selected tool names. It filters out special tools and returns tool prompts suitable for use in agent workflows.
- Parameters:
message (
str, optional) – Query message to find tools for. Required if picked_tool_names is None.picked_tool_names (
list, optional) – Pre-selected tool names to process. Required if message is None.rag_num (
int, optional) – Number of tools to return after filtering. Defaults to 5.return_call_result (
bool, optional) – If True, returns both prompts and tool names. Defaults to False.categories (
list, optional) – List of tool categories to filter by. Currently not implemented for embedding-based search.
- Returns
- str or tuple:
If return_call_result is False: Tool prompts as a formatted string
If return_call_result is True: Tuple of (tool_prompts, tool_names)
- Raises:
AssertionError – If both message and picked_tool_names are None
- run(arguments)[source]¶
Run the tool finder with given arguments following the standard tool interface.
This is the main entry point for using ToolFinderEmbedding as a standard tool. It extracts parameters from the arguments dictionary and delegates to find_tools().
- Parameters:
arguments (
dict) – Dictionary containing: - description (str, optional): Query message to find tools for (maps to ‘message’) - limit (int, optional): Number of tools to return (maps to ‘rag_num’). Defaults to 5. - picked_tool_names (list, optional): Pre-selected tool names to process - return_call_result (bool, optional): Whether to return both prompts and names. Defaults to False. - categories (list, optional): List of tool categories to filter by
- class tooluniverse.ToolFinderKeyword[source]¶
Bases:
BaseToolAdvanced keyword-based tool finder that uses sophisticated text processing and TF-IDF scoring.
This class implements natural language processing techniques for tool discovery including: - Tokenization and normalization - Stop word removal - Basic stemming - TF-IDF relevance scoring - Semantic phrase matching
The search operates by parsing user queries to extract key terms, processing them through NLP pipelines, and matching against pre-built indices of tool metadata for efficient and relevant tool discovery.
- STOP_WORDS = {'a', 'all', 'an', 'and', 'any', 'are', 'as', 'at', 'be', 'boy', 'but', 'by', 'came', 'can', 'day', 'did', 'do', 'down', 'each', 'find', 'for', 'from', 'get', 'had', 'has', 'have', 'he', 'how', 'if', 'in', 'is', 'it', 'its', 'long', 'made', 'may', 'new', 'no', 'now', 'number', 'of', 'old', 'on', 'part', 'said', 'see', 'that', 'the', 'their', 'they', 'this', 'time', 'to', 'two', 'up', 'use', 'was', 'way', 'what', 'which', 'who', 'will', 'with', 'your'}¶
- STEMMING_RULES = [('ies', 'y'), ('ied', 'y'), ('ying', 'y'), ('ing', ''), ('ly', ''), ('ed', ''), ('ies', 'y'), ('ier', 'y'), ('iest', 'y'), ('s', ''), ('es', ''), ('er', ''), ('est', ''), ('tion', 't'), ('sion', 's'), ('ness', ''), ('ment', ''), ('able', ''), ('ible', ''), ('ful', ''), ('less', ''), ('ous', ''), ('ive', ''), ('al', ''), ('ic', ''), ('ize', ''), ('ise', ''), ('ate', ''), ('fy', ''), ('ify', '')]¶
- __init__(tool_config, tooluniverse=None)[source]¶
Initialize the Advanced Keyword-based Tool Finder.
- Parameters:
tool_config (
dict) – Configuration dictionary for the tooltooluniverse – Reference to the ToolUniverse instance containing all tools
- _tokenize_and_normalize(text)[source]¶
Tokenize text and apply normalization including stop word removal and stemming.
- Parameters:
text (
str) – Input text to tokenize
- Returns
List[str]: List of processed tokens
- _apply_stemming(word)[source]¶
Apply basic stemming rules to reduce words to their root form.
- Parameters:
word (
str) – Word to stem
- Returns
str: Stemmed word
- _extract_phrases(tokens, max_phrase_length=3)[source]¶
Extract meaningful phrases from tokens for better semantic matching.
- Parameters:
tokens (
List[str]) – Tokenized wordsmax_phrase_length (
int) – Maximum length of phrases to extract
- Returns
List[str]: List of phrases and individual tokens
- _build_tool_index(tools)[source]¶
Build TF-IDF index for all tools to enable efficient relevance scoring.
- Parameters:
tools (
List[Dict]) – List of tool configurations
- _extract_parameter_text(parameter_schema)[source]¶
Extract searchable text from parameter schema.
- Parameters:
parameter_schema (
Dict) – Tool parameter schema
- Returns
List[str]: List of text elements from parameters
- _calculate_tfidf_score(query_terms, tool_name)[source]¶
Calculate TF-IDF relevance score for a tool given query terms.
- Parameters:
query_terms (
List[str]) – Processed query terms and phrasestool_name (
str) – Name of the tool to score
- Returns
float: TF-IDF relevance score
- _calculate_exact_match_bonus(query, tool)[source]¶
Calculate bonus score for exact matches in tool name or key phrases.
- Parameters:
query (
str) – Original query stringtool (
Dict) – Tool configuration
- Returns
float: Exact match bonus score
- find_tools(message=None, picked_tool_names=None, rag_num=5, return_call_result=False, categories=None)[source]¶
Find relevant tools based on a message or pre-selected tool names.
This method matches the interface of other tool finders to ensure seamless replacement. It uses keyword-based search instead of embedding similarity.
- Parameters:
message (
str, optional) – Query message to find tools for. Required if picked_tool_names is None.picked_tool_names (
list, optional) – Pre-selected tool names to process. Required if message is None.rag_num (
int, optional) – Number of tools to return after filtering. Defaults to 5.return_call_result (
bool, optional) – If True, returns both prompts and tool names. Defaults to False.categories (
list, optional) – List of tool categories to filter by.
- Returns
- str or tuple:
If return_call_result is False: Tool prompts as a formatted string
If return_call_result is True: Tuple of (tool_prompts, tool_names)
- Raises:
AssertionError – If both message and picked_tool_names are None
- run(arguments)[source]¶
Find tools using advanced keyword-based search with NLP processing and TF-IDF scoring.
This method provides a unified interface compatible with other tool finders.
- Parameters:
arguments (
dict) – Dictionary containing: - description (str): Search query string (unified parameter name) - categories (list, optional): List of categories to filter by - limit (int, optional): Maximum number of results to return (default: 10) - picked_tool_names (list, optional): Pre-selected tool names to process - return_call_result (bool, optional): Whether to return both prompts and names. Defaults to False.
- Returns
- str or tuple:
If return_call_result is False: Tool prompts as a formatted string
If return_call_result is True: Tuple of (tool_prompts, tool_names)
- class tooluniverse.ToolFinderLLM[source]¶
Bases:
BaseToolLLM-based tool finder that uses natural language processing to select relevant tools.
This class leverages AgenticTool’s LLM capabilities to analyze tool descriptions and match them with user queries. It’s optimized for minimal context window cost by only sending essential information (tool name and description) to the LLM, providing an intelligent alternative to embedding-based similarity search.
Cost optimizations: - Only includes tool name and description in LLM prompt - Uses compact formatting to minimize token usage - Excludes unnecessary tool metadata and parameters - Implements caching to avoid repeated tool processing
- __init__(tool_config, tooluniverse=None)[source]¶
Initialize the LLM-based Tool Finder.
- Parameters:
tool_config (
dict) – Configuration dictionary containing LLM settings and promptstooluniverse – Reference to the ToolUniverse instance containing all tools
- _get_tool_selection_prompt()[source]¶
Get the prompt template for tool selection. Optimized for minimal token usage.
- _get_available_tools(force_refresh=False)[source]¶
Get available tools with their descriptions, with caching.
- Parameters:
force_refresh (
bool) – Whether to force refresh the cache
- Returns
list: List of tool dictionaries with names and descriptions
- _prefilter_tools_by_keywords(available_tools, query, max_tools=100)[source]¶
Pre-filter tools using keyword matching to reduce context size before LLM processing.
- Parameters:
- Returns
list: Filtered list of tools
- _format_tools_for_prompt(tools)[source]¶
Format tools for inclusion in the LLM prompt with minimal information to reduce context cost. Only includes name and description to minimize token usage.
- Parameters:
tools (
list) – List of tool dictionaries
- Returns
str: Compact formatted tool descriptions for the prompt
- find_tools_llm(query, limit=5, include_reasoning=False, categories=None)[source]¶
Find relevant tools using LLM-based selection.
- Parameters:
- Returns
dict: Dictionary containing selected tools and metadata
- find_tools(message=None, picked_tool_names=None, rag_num=5, return_call_result=False, categories=None, return_list_only=None)[source]¶
Find relevant tools based on a message or pre-selected tool names.
This method matches the interface of the original ToolFinderEmbedding to ensure seamless replacement. It uses LLM-based selection instead of embedding similarity.
- Parameters:
message (
str, optional) – Query message to find tools for. Required if picked_tool_names is None.picked_tool_names (
list, optional) – Pre-selected tool names to process. Required if message is None.rag_num (
int, optional) – Number of tools to return after filtering. Defaults to 5.return_call_result (
bool, optional) – If True, returns both prompts and tool names. Defaults to False.categories (
list, optional) – List of tool categories to filter by. Applied before LLM selection.return_list_only (
bool, optional) – If True, returns only a list of tool specifications. Overrides other return options.
- Returns
- str, tuple, or list:
If return_list_only is True: List of tool specifications
If return_call_result is False: Tool prompts as a formatted string
If return_call_result is True: Tuple of (tool_prompts, tool_names)
- Raises:
AssertionError – If both message and picked_tool_names are None
- _format_as_json(result, query, limit, categories, return_call_result)[source]¶
Format the find_tools result as a standardized JSON string.
- Parameters:
result – Result from find_tools method (either string, list, or tuple)
query – Original search query
limit – Requested number of tools
categories – Requested categories filter
return_call_result – Whether return_call_result was True
- Returns
str: JSON formatted search results
- run(arguments)[source]¶
Run the tool finder with given arguments following the standard tool interface.
This method now returns JSON format by default to ensure consistency with other search tools and simplify integration with SMCP.
- Parameters:
arguments (
dict) – Dictionary containing: - description (str, optional): Query message to find tools for (maps to ‘message’) - limit (int, optional): Number of tools to return (maps to ‘rag_num’). Defaults to 5. - picked_tool_names (list, optional): Pre-selected tool names to process - return_call_result (bool, optional): Whether to return both prompts and names. Defaults to False. - return_format (str, optional): ‘json’ (default) or ‘legacy’ for old format - return_list_only (bool, optional): Whether to return only tool specifications as a list - categories (list, optional): List of tool categories to filter by
- class tooluniverse.ToolUniverseTool[source]¶
Bases:
objectAdapter that wraps a ToolUniverse tool and exposes it as a smolagents Tool.
We create the real subclass dynamically to avoid hard dependency when the module is imported without smolagents installed.
- class tooluniverse.UCSCEpigenomicsTool[source]¶
Bases:
BaseToolUCSC Genome Browser epigenomics-specific tools.
Provides access to: - CpG island annotations - ENCODE4 candidate cis-Regulatory Elements (cCREs) - Transcription Factor binding site clusters
No authentication required.
- class tooluniverse.UCSCGenomeTool[source]¶
Bases:
BaseToolTool for querying the UCSC Genome Browser REST API.
Provides genomic search, DNA sequence retrieval, and annotation track data for 220+ genome assemblies (hg38, mm39, etc.).
No authentication required.
- class tooluniverse.URLHTMLTagTool[source]¶
Bases:
BaseToolFetches a webpage and extracts the content of a specified HTML tag. Expects: {“url”: “https://…”} The tag to extract is specified in the tool’s configuration. The tag to extract is specified in the tool’s configuration. Optional: {“timeout”: <seconds>} (default 20) Returns: {“content”: “<extracted content>”} or {“error”: “…”}
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.URLToPDFTextTool[source]¶
Bases:
BaseToolLoads a webpage (with JavaScript), exports it as a PDF, and extracts text. Expects: {“url”: “https://…”} Optional: {“timeout”: <seconds>} (default 30) Returns: {“text”: “<extracted text>”} or {“error”: “…”}
- _ensure_playwright_browsers(browsers=('chromium',), with_deps=False, timeout_seconds=600)[source]¶
Ensure Playwright browser binaries are installed.
- Returns
None on success, or an error string on failure.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.USPTOOpenDataPortalTool[source]¶
Bases:
BaseToolA tool for interacting with the USPTO Open Data Portal API to search for and retrieve patent information. The run method dynamically constructs API requests based on the provided tool configuration.
- __init__(tool_config, api_key=None, base_url='https://api.uspto.gov/api/v1')[source]¶
Initializes the USPTOOpenDataPortalTool.
- Parameters:
tool_config – The configuration for the specific tool being run.
api_key – Your USPTO Open Data Portal API key.
base_url – The base URL for the USPTO API.
- assign_by_path(d, path, value)[source]¶
Create nested dicts for a dot‑path and set the final key to value.
- run(arguments)[source]¶
Runs the specified tool by constructing and executing an API call based on the tool’s configuration.
- Parameters:
arguments – A dictionary of arguments for the tool, matching the parameters in the tool definition.
- Returns
The result of the API call, either as a dictionary (for JSON) or a string (for CSV).
- class tooluniverse.UniChemTool[source]¶
Bases:
BaseToolTool for querying UniChem compound cross-referencing service.
Maps chemical identifiers across 40+ databases using InChIKey, source compound IDs, or UCIs (UniChem Compound Identifiers).
No authentication required.
- class tooluniverse.UniParcTool[source]¶
Bases:
BaseToolTool for querying UniProt UniParc sequence archive.
Supports: - Get UniParc entry by UPI identifier (cross-references, sequence features) - Search UniParc by gene name, organism, database membership
No authentication required.
- class tooluniverse.UniProtIDMappingTool[source]¶
Bases:
BaseToolTool for converting identifiers between databases using the UniProt ID Mapping service.
Handles the async submit -> poll -> results workflow automatically. No authentication required.
- class tooluniverse.UniProtLocationsTool[source]¶
Bases:
BaseToolTool for querying the UniProt Subcellular Locations database.
Supports: - Get location details by ID (SL-XXXX) - Search locations by name or keyword
No authentication required.
- class tooluniverse.UniProtRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.UniProtRefTool[source]¶
Bases:
BaseToolTool for querying UniProt reference datasets (diseases, keywords, proteomes).
UniProt maintains curated controlled vocabularies that standardize protein annotations across the database. This tool provides access to: - Disease vocabulary: 6K+ curated disease entries with cross-refs to OMIM, MeSH, MedGen - Keyword vocabulary: 1.2K+ standardized terms for biological process, function, etc. - Proteomes: Reference proteome summaries with assembly and component data
No authentication required.
- class tooluniverse.UniProtTaxonomyTool[source]¶
Bases:
BaseToolTool for querying UniProt taxonomy data.
Supports: - Get taxonomy details by NCBI taxon ID - Search taxonomy by name
No authentication required.
- class tooluniverse.UniRefTool[source]¶
Bases:
BaseToolTool for querying UniProt UniRef protein sequence clusters.
Supports: - Get cluster details by ID (UniRef90_XXXXX, UniRef50_XXXXX, UniRef100_XXXXX) - Search clusters by protein name, gene, or organism
No authentication required.
- class tooluniverse.UnpaywallTool[source]¶
Bases:
BaseToolQuery Unpaywall by DOI to check open-access status and OA locations. Requires a contact email.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.VisualizationTool[source]¶
Bases:
BaseToolBase class for all visualization tools in ToolUniverse.
Provides common functionality for: - HTML generation and embedding - Static image conversion - Error handling - Output formatting
- create_visualization_response(html_content, viz_type, data=None, static_image=None, metadata=None)[source]¶
Create a standardized visualization response.
- create_error_response(error_message, error_type='VisualizationError')[source]¶
Create a standardized error response.
- create_plotly_html(fig, width=None, height=None, include_plotlyjs='cdn')[source]¶
Create HTML from Plotly figure.
- class tooluniverse.WFGYPromptBundleTool[source]¶
Bases:
BaseToolLocal prompt-bundle tool for triaging LLM/RAG failures via WFGY ProblemMap.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WHOGHOQueryTool[source]¶
Bases:
WHOGHORESTToolTool for answering generic health questions using natural language.
- class tooluniverse.WHOGHORESTTool[source]¶
Bases:
BaseToolBase class for WHO Global Health Observatory (GHO) REST API tools.
- static parse_query(query)[source]¶
Parse natural language query to extract health topic, country, year.
- static format_health_answer(value, indicator_name, country_code=None, year=None)[source]¶
Format health data into a human-readable answer.
- class tooluniverse.WHOGHOStatisticTool[source]¶
Bases:
WHOGHORESTToolTool for getting health statistics by indicator name.
- class tooluniverse.WHOGHOTopicTool[source]¶
Bases:
WHOGHORESTToolTool for finding indicators by topic.
- class tooluniverse.WHOGuidelineFullTextTool[source]¶
Bases:
BaseToolFetch full text content from WHO guideline pages. Takes a WHO publication URL and extracts content or PDF download link.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WHOGuidelinesTool[source]¶
Bases:
BaseToolWHO (World Health Organization) Guidelines Search Tool. Searches WHO official guidelines from their publications website.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WebAPIDocumentationSearchTool[source]¶
Bases:
WebSearchToolSpecialized web search tool for API documentation and Python libraries.
This tool is optimized for finding API documentation, Python packages, and technical resources using DDGS with multiple search engines.
- run(arguments)[source]¶
Execute API documentation focused search.
- Parameters:
arguments (Dict[str, Any]) – Dictionary containing: - query: Search query string - max_results: Maximum number of results (default: 10) - focus: Focus area (‘api_docs’, ‘python_packages’, etc.) - backend: Search engine backend (default: ‘auto’)
- Returns:
Dictionary containing search results
- Return type:
- class tooluniverse.WebSearchTool[source]¶
Bases:
BaseToolWeb search tool using DDGS library.
This tool performs web searches using the DDGS library which supports multiple search engines including Google, Bing, Brave, Yahoo, DuckDuckGo, etc.
- _search_with_ddgs(query, max_results=10, backend='auto', region='us-en', safesearch='moderate')[source]¶
Perform a web search using DDGS library and return formatted results.
- Parameters:
- Returns:
List of search results with title, url, and snippet
- Return type:
- _search_with_fallback(query, max_results, backend, region, safesearch)[source]¶
Search with backend fallback strategy.
- _search_with_duckduckgo_html(query, max_results)[source]¶
Fallback provider: parse DuckDuckGo HTML results without DDGS.
- _search_with_wikipedia_api(query, max_results)[source]¶
Fallback provider: Wikipedia OpenSearch API.
- run(arguments)[source]¶
Execute web search using DDGS.
- Parameters:
arguments (Dict[str, Any]) – Dictionary containing: - query: Search query string - max_results: Maximum number of results (default: 10) - search_type: Type of search (default: ‘general’) - backend: Search engine backend (default: ‘auto’) - region: Search region (default: ‘us-en’) - safesearch: Safe search level (default: ‘moderate’)
- Returns:
Dictionary containing search results
- Return type:
- class tooluniverse.WikiPathwaysExtTool[source]¶
Bases:
BaseToolTool for WikiPathways extended API endpoints.
No authentication required.
- class tooluniverse.WikidataSPARQLTool[source]¶
Bases:
BaseToolRun SPARQL queries against Wikidata (powering Scholia views).
- Parameters (arguments):
sparql (str): SPARQL query string max_results (int): Optional result limit override
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WikipediaContentTool[source]¶
Bases:
BaseToolExtract content from Wikipedia articles using MediaWiki API.
- Parameters (arguments):
title (str): Article title (required) language (str): Wikipedia language code (default: “en”) extract_type (str): Type of content - “intro” (first paragraph),
“summary” (first few paragraphs), or “full” (entire article) (default: “summary”)
- max_chars (int): Maximum characters for summary/extract
(default: 2000)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WikipediaSearchTool[source]¶
Bases:
BaseToolSearch Wikipedia articles using MediaWiki API.
- Parameters (arguments):
query (str): Search query string limit (int): Maximum number of results to return (default: 10, max: 50) language (str): Wikipedia language code (default: “en”)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WikipediaSummaryTool[source]¶
Bases:
BaseToolGet a brief summary/introduction from a Wikipedia article.
This is a convenience tool that extracts just the first paragraph(s) of an article.
- Parameters (arguments):
title (str): Article title (required) language (str): Wikipedia language code (default: “en”) max_chars (int): Maximum characters to return (default: 500)
- run(arguments=None)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WoRMSRESTTool[source]¶
Bases:
BaseTool- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.WormBaseTool[source]¶
Bases:
BaseToolTool for querying WormBase, the C. elegans genome database.
Provides detailed gene information for C. elegans and other nematodes including phenotypes, expression data, orthologs, and functional annotations.
No authentication required.
- class tooluniverse.XMLDatasetTool[source]¶
Bases:
BaseToolTool to search and filter XML datasets that are organized as a collection of searchable records (e.g., dataset of medical subjects or drug descriptions). Supports user-friendly queries without requiring XPath knowledge.
- _find_matches(record_data, search_query, search_fields, case_sensitive, exact_match)[source]¶
Find matching fields in a record.
- _get_searchable_value(record_data, field, case_sensitive)[source]¶
Get searchable string value for a field.
- _is_match(field_value, search_query, exact_match)[source]¶
Check if field value matches search query.
- tooluniverse.XMLTool¶
alias of
XMLDatasetTool
- class tooluniverse.ZenodoRESTTool[source]¶
Bases:
BaseRESTToolGeneric REST tool for Zenodo API endpoints.
- class tooluniverse.dbSNPGetFrequencies[source]¶
Bases:
dbSNPRESTToolGet allele frequencies for a variant.
- class tooluniverse.dbSNPGetVariantByRsID[source]¶
Bases:
dbSNPRESTToolGet variant information by rsID.
- class tooluniverse.dbSNPRESTTool[source]¶
Bases:
NCBIEUtilsToolBase class for dbSNP REST API tools with rate limiting.
- class tooluniverse.dbSNPSearchByGene[source]¶
Bases:
dbSNPRESTToolSearch variants by gene symbol.
- class tooluniverse.gnomADGetGeneConstraints[source]¶
Bases:
gnomADGraphQLToolGet gene constraint metrics from gnomAD.
- class tooluniverse.gnomADGraphQLQueryTool[source]¶
Bases:
gnomADGraphQLToolGeneric gnomAD GraphQL tool driven by JSON config.
Config fields supported: - fields.query_schema: GraphQL query string - fields.variable_map: map tool argument names -> GraphQL variable names - fields.default_variables: default GraphQL variable values
- class tooluniverse.gnomADGraphQLTool[source]¶
Bases:
BaseToolBase class for gnomAD GraphQL API tools.
- class tooluniverse.miRNAGetTool[source]¶
Bases:
BaseToolGet detailed miRNA/lncRNA information from RNAcentral by ID. Returns sequence, species, RNA type, and database cross-references.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- class tooluniverse.miRNASearchTool[source]¶
Bases:
BaseToolSearch for miRNAs/lncRNAs/ncRNAs via EBI Search of RNAcentral. Can filter results by RNA type for focused results.
- run(arguments)[source]¶
Execute the tool.
The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.
- Parameters:
arguments (
dict, optional) – Tool-specific argumentsstream_callback (
callable, optional) – Callback for streaming responsesuse_cache (
bool, optional) – Whether result caching is enabledvalidate (
bool, optional) – Whether parameter validation was performed
Note
These additional parameters (stream_callback, use_cache, validate) are passed from run_one_function() to provide context about the execution. Tools can use these for optimization or special handling.
For backward compatibility, tools that don’t accept these parameters will still work - they will only receive the arguments parameter.
- tooluniverse.__dir__()[source]¶
Dynamic directory listing. Includes standard globals plus all available tools.
- tooluniverse.__getattr__(name)[source]¶
Dynamic dispatch for tool classes. This replaces the manual _LazyImportProxy list.
Subpackages¶
- tooluniverse.compose_scripts package
- tooluniverse.compose_scripts.biomarker_discovery module
- tooluniverse.compose_scripts.comprehensive_drug_discovery module
- tooluniverse.compose_scripts.drug_safety_analyzer module
- tooluniverse.compose_scripts.literature_tool module
- tooluniverse.compose_scripts.output_summarizer module
- tooluniverse.compose_scripts.tool_description_optimizer module
- tooluniverse.compose_scripts.tool_discover module
- tooluniverse.compose_scripts.tool_graph_composer module
- tooluniverse.compose_scripts.tool_graph_generation module
- tooluniverse.compose_scripts.tool_metadata_generator module
Submodules¶
- tooluniverse.admetai_tool module
- tooluniverse.agentic_tool module
- tooluniverse.alphafold_tool module
- tooluniverse.arxiv_tool module
- tooluniverse.base_tool module
- tooluniverse.biorxiv_tool module
- tooluniverse.boltz_tool module
- tooluniverse.chem_tool module
- tooluniverse.compose_tool module
- tooluniverse.core_tool module
- tooluniverse.crossref_tool module
- tooluniverse.ctg_tool module
- tooluniverse.custom_tool module
- tooluniverse.dailymed_tool module
- tooluniverse.dataset_tool module
- tooluniverse.dblp_tool module
- tooluniverse.default_config module
- tooluniverse.doaj_tool module
- tooluniverse.efo_tool module
- tooluniverse.embedding_database module
- tooluniverse.embedding_sync module
- tooluniverse.enrichr_tool module
- tooluniverse.europe_pmc_tool module
- tooluniverse.execute_function module
- tooluniverse.extended_hooks module
- tooluniverse.fatcat_tool module
- tooluniverse.gene_ontology_tool module
- tooluniverse.graphql_tool module
- tooluniverse.gwas_tool module
- tooluniverse.hal_tool module
- tooluniverse.hpa_tool module
- tooluniverse.humanbase_tool module
- tooluniverse.llm_clients module
- tooluniverse.logging_config module
- tooluniverse.mcp_client_tool module
- tooluniverse.mcp_integration module
- tooluniverse.mcp_tool_registry module
- tooluniverse.medlineplus_tool module
- tooluniverse.medrxiv_tool module
- tooluniverse.memory_manager module
- tooluniverse.odphp_tool module
- tooluniverse.openaire_tool module
- tooluniverse.openalex_tool module
- tooluniverse.openfda_adv_tool module
- tooluniverse.openfda_tool module
- tooluniverse.osf_preprints_tool module
- tooluniverse.output_hook module
- tooluniverse.package_tool module
- tooluniverse.pmc_tool module
- tooluniverse.pubchem_tool module
- tooluniverse.pubmed_tool module
- tooluniverse.pubtator_tool module
- tooluniverse.rcsb_pdb_tool module
- tooluniverse.reactome_tool module
- tooluniverse.remote_tool module
- tooluniverse.restful_tool module
- tooluniverse.semantic_scholar_tool module
- tooluniverse.smcp module
- tooluniverse.smcp_server module
- tooluniverse.tool_finder_embedding module
- tooluniverse.tool_finder_keyword module
- tooluniverse.tool_finder_llm module
- tooluniverse.tool_graph_web_ui module
- tooluniverse.tool_registry module
- tooluniverse.unified_guideline_tools module
- tooluniverse.uniprot_tool module
- tooluniverse.unpaywall_tool module
- tooluniverse.url_tool module
- tooluniverse.uspto_tool module
- tooluniverse.utils module
- tooluniverse.wikidata_sparql_tool module
- tooluniverse.xml_tool module
- tooluniverse.zenodo_tool module