kegg-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| render_pathway_asciiA | Render a KEGG pathway as ASCII text optimized for LLM consumption. Two styles available:
Args: pathway_id: KEGG pathway ID (e.g. 'hsa00010' for human glycolysis). Must be organism-specific; reference pathways (map*) have limited KGML. style: 'chain' (default, linear text) or 'grid' (2D spatial layout). max_width: Maximum line width in characters (40-200, default 100). max_height: Grid mode only: maximum height in lines (20-80, default 40). |
| search_briteA | Search KEGG BRITE functional hierarchy databases. Args: query: Hierarchy name (e.g. 'KEGG pathway', 'transporter', 'ribosome'). max_results: Maximum number of results to return (capped at 100). |
| get_brite_infoA | Get the structure of a KEGG BRITE functional hierarchy. BRITE entries are large A/B/C/D trees, not flat-file entries, so the result is a bounded summary: the level line counts, the leaf column names, and the labels of the top two levels. Args: brite_id: KEGG BRITE hierarchy ID. Any form KEGG hands out works — 'br:ko00001' (canonical), 'ko00001' / 'br08303' (as listed by list_databases), or the bare '00001' / '08303' returned by search_brite. detail_level: 'summary' (default) or 'full' (adds raw_content, the raw hierarchy text — TRUNCATED, since the largest hierarchies are several megabytes). |
| search_compoundsA | Search KEGG compounds by name or chemical property. Args: query: Search term (compound name, formula, or mass). search_type: 'name' (default), 'formula', 'exact_mass', 'mol_weight', or 'nop'. max_results: Maximum number of results to return (capped at 100). |
| get_compound_infoB | Get detailed information for a KEGG compound entry. Args: compound_id: KEGG compound ID (e.g. 'C00002' for ATP, 'C00031' for D-Glucose). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| get_compound_reactionsA | Get all reactions involving a KEGG compound. Args: compound_id: KEGG compound ID (e.g. 'C00002'). max_results: Maximum number of reactions to return (capped at 100). |
| batch_entry_lookupA | Fetch multiple KEGG entries in bulk (max 50 IDs). Automatically chunks requests into groups of 10 to respect KEGG's API limit. Args: entry_ids: List of KEGG entry IDs (e.g. ['C00002', 'C00031', 'C00033']). Can mix databases. Max 50 entries. detail_level: 'summary' (default, compact per-entry projection) or 'full' (complete flat-file parse — sequences and GENES lists make this large for 50 entries at once). |
| convert_identifiersA | Convert KEGG IDs to/from external database identifiers. Converts within one kind only, KEGG side <-> outside side: genes (organism code 'hsa' or T-number 'T01001') <-> ncbi-geneid / ncbi-proteinid / uniprot; chemistry (compound / drug / glycan) <-> pubchem / chebi. Cross-kind pairs such as compound<->uniprot are rejected by KEGG, and 'kegg' is not a database conv accepts. Args: source_db: Source database — 'hsa', 'T01001', 'ncbi-geneid', 'ncbi-proteinid', 'uniprot', 'compound', 'drug', 'glycan', 'pubchem' or 'chebi'. target_db: Target database, from the same list and the opposite side of the pair (e.g. source_db='hsa' + target_db='uniprot', or source_db='chebi' + target_db='compound'). entry_ids: Optional list of specific IDs to convert. Bare ids are prefixed with source_db automatically ('1956' -> 'hsa:1956'). KEGG accepts at most 10 per request; longer lists are chunked and fetched concurrently rather than silently dropped. If None, converts the full source database (large: hsa <-> ncbi-geneid is ~700 KB). |
| find_related_entriesA | Find related entries in another KEGG database for a given entry. Args: entry_id: Source KEGG entry ID (e.g. 'hsa:1956', 'C00002', 'K00844'). target_db: Target database (e.g. 'pathway', 'disease', 'drug', 'ko', 'compound', 'reaction', 'module', 'genes'). max_results: Maximum number of pairs to return (capped at 100). |
| get_database_infoA | Get release information and statistics for a KEGG database. Args: database: Database name (e.g. 'kegg', 'pathway', 'compound', 'drug', 'genome'). |
| list_organismsA | List organisms available in KEGG with their 3-4 letter codes and names. KEGG has ~12,000 organisms, so the full list is large. Pass Args:
query: Case-insensitive substring filter on the organism code or name.
Empty (the default) returns the first |
| search_diseasesA | Search KEGG diseases by name or keyword. Args: query: Disease name (e.g. 'diabetes', 'cancer', 'Alzheimer'). max_results: Maximum number of results to return (capped at 100). |
| get_disease_infoA | Get detailed information for a KEGG disease entry. Args: disease_id: KEGG disease ID (e.g. 'H00004' for colorectal cancer). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| search_drugsA | Search KEGG drugs by name, formula, or molecular weight. Args: query: Drug name, formula, or mass value. search_type: 'name' (default), 'formula', 'exact_mass', or 'mol_weight'. max_results: Maximum number of results to return (capped at 100). |
| get_drug_infoA | Get detailed information for a KEGG drug entry. Args: drug_id: KEGG drug ID (e.g. 'D00001' for aspirin, 'D00564' for ibuprofen). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| get_drug_interactionsA | Get drug-drug interactions for one or more KEGG drugs. Args: drug_ids: Single drug ID (e.g. 'D00001') or multiple IDs joined with '+' (e.g. 'D00001+D00564'). Max 10 entries. max_results: Maximum number of interactions to return (capped at 100). |
| search_enzymesA | Search KEGG enzymes by EC number or name. Args: query: EC number (e.g. '1.1.1.1') or enzyme name (e.g. 'kinase', 'oxidase'). max_results: Maximum number of results to return (capped at 100). |
| get_enzyme_infoA | Get detailed information for a KEGG enzyme (EC number). Args: enzyme_id: EC number (e.g. '1.1.1.1') or prefixed ID (e.g. 'ec:1.1.1.1'). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| search_genesA | Search for genes in a KEGG organism database. Args: query: Search term (gene name, symbol, or description). organism_code: KEGG organism code (e.g. 'hsa' human, 'mmu' mouse, 'eco' E. coli). max_results: Maximum number of results to return (capped at 100). |
| get_gene_infoA | Get detailed information for a KEGG gene entry. Args: gene_id: KEGG gene ID in format 'organism:gene' (e.g. 'hsa:1956' for EGFR). detail_level: 'summary' (default, compact) or 'full' (complete parse with linked orthologs, pathways, xrefs, and references). include_sequence: If True and detail_level='full', fetches amino acid and nucleotide sequences. |
| get_gene_orthologsB | Get KO (KEGG Orthology) entries and cross-organism orthologs for a gene. Args: gene_id: KEGG gene ID (e.g. 'hsa:1956'). |
| search_glycansA | Search KEGG glycan database by keyword or composition. Args: query: Glycan name or composition (e.g. 'GlcNAc', 'Man5', 'sialic acid'). max_results: Maximum number of results to return (capped at 100). |
| get_glycan_infoA | Get detailed information for a KEGG glycan entry. Args: glycan_id: KEGG glycan ID (e.g. 'G00001'). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| search_modulesA | Search KEGG modules by keyword. Args: query: Module name or pathway block (e.g. 'glycolysis', 'TCA cycle'). max_results: Maximum number of results to return (capped at 100). |
| get_module_infoB | Get detailed information for a KEGG module. Args: module_id: KEGG module ID (e.g. 'M00001' for glycolysis core module). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| search_ko_entriesA | Search KEGG Orthology (KO) entries by keyword. Args: query: Gene function (e.g. 'hexokinase', 'ribosomal protein', 'cytochrome'). max_results: Maximum number of results to return (capped at 100). |
| get_ko_infoB | Get detailed information for a KEGG Orthology (KO) entry. Args: ko_id: KEGG KO identifier (e.g. 'K00844' for hexokinase). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
| draw_pathway_mapA | Draw a KEGG pathway map as a PNG image, with gene boxes coloured by group. The map is redrawn from KEGG's KGML layout (gene boxes, compounds, reactions and links to other maps), not copied from KEGG's image. Each gene box is split into one stripe per highlight group: coloured when the group has one of the box's KOs, grey when it doesn't. Returns the PNG plus an exact summary of what the image shows (per group: map KOs found and boxes coloured; per box: KOs and the groups that have them), so check the summary rather than describing the picture from memory. Args: pathway_id: KEGG map number: 'map00010', 'ko00010', an organism map such as 'eco00010' (drawn as the KO reference map), or '00010'. Global and overview maps (011xx, 012xx) are refused. highlight: Optional {label: ids}, at most 8 groups (e.g. one per genome). Ids are KO ids ('K00844', 'ko:K00844', 'KEGG:K00844') or complete EC numbers ('2.7.1.1', 'EC:2.7.1.1'). One item may hold one gene's ids separated by spaces ('K00845 EC:2.7.1.2', or a GenBank db_xref string). A KO with no KO match is coloured through EC numbers only when one item carries every EC KEGG links to it; those KOs are listed under matched_by_ec. |
| search_pathwaysA | Search KEGG pathways by keyword. Args: query: Search term (e.g. 'glycolysis', 'TCA', 'insulin signaling'). organism_code: 3-4 letter organism code (e.g. 'hsa' for human, 'mmu' for mouse). Use 'map' for reference pathways. max_results: Maximum number of results to return (capped at 100). |
| get_pathway_infoA | Get detailed information for a KEGG pathway. Args: pathway_id: KEGG pathway ID (e.g. 'hsa00010', 'map00010'). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse with all linked genes, compounds, reactions, references, and xrefs). |
| get_pathway_genesA | Get all genes associated with a KEGG pathway. Args: pathway_id: KEGG pathway ID (e.g. 'hsa00010'). Use organism-specific IDs (e.g. 'pae00350' for P. aeruginosa) — reference pathways ('map*') are not supported by the KEGG gene link API. max_results: Maximum number of pairs to return (capped at 100). |
| get_pathway_compoundsA | Get all compounds (metabolites) associated with a KEGG pathway. Args: pathway_id: KEGG pathway ID (e.g. 'map00010'). max_results: Maximum number of pairs to return (capped at 100). |
| get_pathway_reactionsA | Get all reactions in a KEGG pathway. Args: pathway_id: KEGG pathway ID (e.g. 'hsa00010'). max_results: Maximum number of pairs to return (capped at 100). |
| search_reactionsB | Search KEGG reactions by keyword. Args: query: Search term (reaction name or description). max_results: Maximum number of results to return (capped at 100). |
| get_reaction_infoA | Get detailed information for a KEGG reaction. Args: reaction_id: KEGG reaction ID (e.g. 'R00756' for glucose phosphorylation). detail_level: 'summary' (default, compact) or 'full' (complete flat-file parse). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| pathway_enrichment_analysis | Guided KEGG pathway enrichment analysis for a list of genes. Walk through mapping a gene list to KEGG IDs, aggregating pathway associations, and identifying over-represented pathways. Args: gene_list: Comma- or newline-separated gene symbols or IDs (e.g. 'EGFR, TP53, BRCA1' or Entrez IDs). organism: KEGG organism code (default 'hsa' for human). |
| drug_target_investigation | Comprehensive investigation of a drug's targets, pathways, and interactions. Guides the analysis from drug identification through target mapping, pathway involvement, and drug-drug interaction screening. Args: drug_name: Drug name or synonym (e.g. 'imatinib', 'aspirin', 'metformin'). |
| visualize_pathway | Visualize a KEGG pathway as ASCII art with biological context. Renders the pathway in both chain and grid modes, then annotates key enzymes, branch points, and disease associations. Args: pathway_id: Reference pathway number (e.g. '00010' for glycolysis). organism: KEGG organism code (default 'hsa' for human). |
| metabolic_pathway_comparison | Cross-species comparison of a metabolic pathway. Compares gene content, reactions, and compounds across multiple organisms to reveal conserved and species-specific elements. Args: pathway_id: Reference KEGG pathway ID (e.g. 'map00010' for glycolysis, 'map00020' for TCA cycle). organisms: Comma-separated KEGG organism codes to compare (default: 'hsa,mmu,eco' for human, mouse, E. coli). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Most tools map cleanly to a specific KEGG entry type plus action, so an agent can generally distinguish search_compounds, search_drugs, get_pathway_genes, get_pathway_reactions, etc. Minor overlap exists between find_related_entries and convert_identifiers/get_gene_orthologs, and between draw_pathway_map and render_pathway_ascii in the sense of pathway visualization, but the descriptions clarify output modes.
The set is overwhelmingly snake_case and follows predictable patterns such as search_<db>, get_<db>_info, get_pathway_<subresource>, and list_organisms. A few one-off verbs (draw_pathway_map, render_pathway_ascii, batch_entry_lookup, convert_identifiers) are semantically appropriate but keep it from being perfectly uniform.
KEGG is a very broad domain with many entry types, so 35 tools is defensible, but it is still heavy for an agent to navigate. Several search/get pairs could potentially be consolidated or generalized, making the surface borderline rather than well-scoped.
The server covers the major KEGG databases with search, retrieval, linking, batch lookup, identifier conversion, and pathway visualization. Gaps are modest: there is no dedicated genome-info retrieval beyond list_organisms/get_database_info, and cross-database traversal relies heavily on find_related_entries rather than more specific linked-resource tools.