Skip to main content
Glama
kegg-mcp-server

kegg-mcp-server

by Lucas-Servi

get_brite_info

Read-onlyIdempotent

Retrieve a bounded summary of a KEGG BRITE functional hierarchy, including level line counts, leaf column names, and top-level labels, without parsing multi-megabyte A/B/C/D trees.

Instructions

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).

Input Schema

NameRequiredDescriptionDefault
brite_idYes
detail_levelNosummary

Output Schema

NameRequiredDescriptionDefault
entryYes
labelsNo
columnsNo
raw_contentNo
total_linesNo
detail_levelNosummary
last_updatedNo
level_countsNo
deepest_levelNo
raw_truncatedNo
labels_truncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv0.5.0
    • removedOutput schema / $defs
      Removed value: -{
      -  "BriteHierarchy": {
      -    "description": "Bounded projection of a KEGG BRITE ``A``/``B``/``C``/… tree.\n\nBRITE entries are hierarchies, not flat-file entries: ``/get/br:ko00001`` is\n4.3 MB / 65,337 lines and ``/get/br:hsa00001`` is 6.8 MB. Returning the raw\ntext would overflow the context window of the model this feeds, so the\ndefault projection keeps the navigational skeleton (per-level line counts +\nthe top two levels' labels) and drops the leaves. ``raw_content`` is\npopulated only for ``detail_level=\"full\"``, and is itself capped.",
      -    "properties": {
      -      "columns": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "title": "Columns",
      -        "type": "array"
      -      },
      -      "deepest_level": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Deepest Level"
      -      },
      -      "detail_level": {
      -        "default": "summary",
      -        "title": "Detail Level",
      -        "type": "string"
      -      },
      -      "entry": {
      -        "title": "Entry",
      -        "type": "string"
      -      },
      -      "labels": {
      -        "additionalProperties": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "title": "Labels",
      -        "type": "object"
      -      },
      -      "labels_truncated": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "title": "Labels Truncated",
      -        "type": "array"
      -      },
      -      "last_updated": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Last Updated"
      -      },
      -      "level_counts": {
      -        "additionalProperties": {
      -          "type": "integer"
      -        },
      -        "title": "Level Counts",
      -        "type": "object"
      -      },
      -      "raw_content": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Raw Content"
      -      },
      -      "raw_truncated": {
      -        "default": false,
      -        "title": "Raw Truncated",
      -        "type": "boolean"
      -      },
      -      "total_lines": {
      -        "default": 0,
      -        "title": "Total Lines",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "entry"
      -    ],
      -    "title": "BriteHierarchy",
      -    "type": "object"
      -  },
      -  "ErrorResult": {
      -    "description": "Structured error returned by a tool when the KEGG API fails.\n\nA tool returns this instead of raising so the model can reason about\nthe failure and decide whether to retry, change inputs, or give up.\nA point lookup that receives a 404 uses code ``not_found``; an empty search\nremains a successful result with no items.",
      -    "properties": {
      -      "code": {
      -        "default": "kegg_api_error",
      -        "title": "Code",
      -        "type": "string"
      -      },
      -      "error": {
      -        "title": "Error",
      -        "type": "string"
      -      },
      -      "hint": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Hint"
      -      },
      -      "path": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Path"
      -      },
      -      "retryable": {
      -        "default": false,
      -        "title": "Retryable",
      -        "type": "boolean"
      -      },
      -      "status": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Status"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "title": "ErrorResult",
      -    "type": "object"
      -  }
      -}
    • addedOutput schema / description
      Added value: +"Bounded projection of a KEGG BRITE ``A``/``B``/``C``/… tree.\n\nBRITE entries are hierarchies, not flat-file entries: ``/get/br:ko00001`` is\n4.3 MB / 65,337 lines and ``/get/br:hsa00001`` is 6.8 MB. Returning the raw\ntext would overflow the context window of the model this feeds, so the\ndefault projection keeps the navigational skeleton (per-level line counts +\nthe top two levels' labels) and drops the leaves. ``raw_content`` is\npopulated only for ``detail_level=\"full\"``, and is itself capped."
    • addedOutput schema / properties / columns
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "title": "Columns",
      +  "type": "array"
      +}
    • addedOutput schema / properties / deepest_level
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Deepest Level"
      +}
    • addedOutput schema / properties / detail_level
      Added value: +{
      +  "default": "summary",
      +  "title": "Detail Level",
      +  "type": "string"
      +}
    • addedOutput schema / properties / entry
      Added value: +{
      +  "title": "Entry",
      +  "type": "string"
      +}
    • addedOutput schema / properties / labels
      Added value: +{
      +  "additionalProperties": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "title": "Labels",
      +  "type": "object"
      +}
    • addedOutput schema / properties / labels_truncated
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "title": "Labels Truncated",
      +  "type": "array"
      +}
    • addedOutput schema / properties / last_updated
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Last Updated"
      +}
    • addedOutput schema / properties / level_counts
      Added value: +{
      +  "additionalProperties": {
      +    "type": "integer"
      +  },
      +  "title": "Level Counts",
      +  "type": "object"
      +}
    • addedOutput schema / properties / raw_content
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Raw Content"
      +}
    • addedOutput schema / properties / raw_truncated
      Added value: +{
      +  "default": false,
      +  "title": "Raw Truncated",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "$ref": "#/$defs/BriteHierarchy"
      -    },
      -    {
      -      "$ref": "#/$defs/ErrorResult"
      -    }
      -  ],
      -  "title": "Result"
      -}
    • addedOutput schema / properties / total_lines
      Added value: +{
      +  "default": 0,
      +  "title": "Total Lines",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "entry"
      +]
    • changedOutput schema / title
      Previous value: -"get_brite_infoOutput"New value: +"BriteHierarchy"
  2. Changed4 schema fields changedv0.4.0
    • addedOutput schema / $defs / BriteHierarchy
      Added value: +{
      +  "description": "Bounded projection of a KEGG BRITE ``A``/``B``/``C``/… tree.\n\nBRITE entries are hierarchies, not flat-file entries: ``/get/br:ko00001`` is\n4.3 MB / 65,337 lines and ``/get/br:hsa00001`` is 6.8 MB. Returning the raw\ntext would overflow the context window of the model this feeds, so the\ndefault projection keeps the navigational skeleton (per-level line counts +\nthe top two levels' labels) and drops the leaves. ``raw_content`` is\npopulated only for ``detail_level=\"full\"``, and is itself capped.",
      +  "properties": {
      +    "columns": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Columns",
      +      "type": "array"
      +    },
      +    "deepest_level": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Deepest Level"
      +    },
      +    "detail_level": {
      +      "default": "summary",
      +      "title": "Detail Level",
      +      "type": "string"
      +    },
      +    "entry": {
      +      "title": "Entry",
      +      "type": "string"
      +    },
      +    "labels": {
      +      "additionalProperties": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "title": "Labels",
      +      "type": "object"
      +    },
      +    "labels_truncated": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Labels Truncated",
      +      "type": "array"
      +    },
      +    "last_updated": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Last Updated"
      +    },
      +    "level_counts": {
      +      "additionalProperties": {
      +        "type": "integer"
      +      },
      +      "title": "Level Counts",
      +      "type": "object"
      +    },
      +    "raw_content": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Raw Content"
      +    },
      +    "raw_truncated": {
      +      "default": false,
      +      "title": "Raw Truncated",
      +      "type": "boolean"
      +    },
      +    "total_lines": {
      +      "default": 0,
      +      "title": "Total Lines",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "entry"
      +  ],
      +  "title": "BriteHierarchy",
      +  "type": "object"
      +}
    • removedOutput schema / $defs / BriteInfo
      Removed value: -{
      -  "properties": {
      -    "dblinks": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Dblinks"
      -    },
      -    "definition": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Definition"
      -    },
      -    "entry": {
      -      "title": "Entry",
      -      "type": "string"
      -    },
      -    "name": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      ],
      -      "title": "Name"
      -    },
      -    "raw_content": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Raw Content"
      -    }
      -  },
      -  "required": [
      -    "entry",
      -    "name"
      -  ],
      -  "title": "BriteInfo",
      -  "type": "object"
      -}
    • removedOutput schema / $defs / EntrySummary
      Removed value: -{
      -  "description": "Compact projection of a KEGG flat-file entry.\n\nReturned from `get_*_info` tools when `detail_level=\"summary\"` (the default) to\nkeep response size small. Counts replace long linked-entity lists; long text\nblocks (sequences, comments, raw content) and per-entry xref/reference dumps\nare omitted. Request `detail_level=\"full\"` for the complete entry.",
      -  "properties": {
      -    "cls": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Cls"
      -    },
      -    "counts": {
      -      "additionalProperties": {
      -        "type": "integer"
      -      },
      -      "title": "Counts",
      -      "type": "object"
      -    },
      -    "dblinks_sample": {
      -      "additionalProperties": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "title": "Dblinks Sample",
      -      "type": "object"
      -    },
      -    "definition": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Definition"
      -    },
      -    "description": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Description"
      -    },
      -    "detail_level": {
      -      "default": "summary",
      -      "title": "Detail Level",
      -      "type": "string"
      -    },
      -    "entry": {
      -      "title": "Entry",
      -      "type": "string"
      -    },
      -    "entry_type": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Entry Type"
      -    },
      -    "equation": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Equation"
      -    },
      -    "exact_mass": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Exact Mass"
      -    },
      -    "formula": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Formula"
      -    },
      -    "mol_weight": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Mol Weight"
      -    },
      -    "name": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      ],
      -      "default": "",
      -      "title": "Name"
      -    },
      -    "organism": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Organism"
      -    }
      -  },
      -  "required": [
      -    "entry"
      -  ],
      -  "title": "EntrySummary",
      -  "type": "object"
      -}
    • changedOutput schema / properties / result / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/BriteInfo"
      -  },
      -  {
      -    "$ref": "#/$defs/EntrySummary"
      -  },
      -  {
      -    "$ref": "#/$defs/ErrorResult"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/BriteHierarchy"
      +  },
      +  {
      +    "$ref": "#/$defs/ErrorResult"
      +  }
      +]
  3. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely new behavior: output is deliberately bounded (level line counts, leaf column names, top two levels), and `full` includes raw_content that is TRUNCATED because hierarchies reach several megabytes. It does not describe error behavior for invalid IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then the rationale for the bounded summary, then a tight per-parameter block. Every sentence adds information an agent would otherwise have to discover by trial; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return shape need not be spelled out, and the description still pre-warns about summarization and truncation. Parameter handling is complete for a two-param tool. The only gaps are failure modes on bad IDs and any explicit routing between this and sibling info tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does: brite_id documents three accepted forms with concrete examples ('br:ko00001', 'ko00001'/'br08303', bare '00001'), and detail_level enumerates both values plus the consequence of 'full' and its truncation. Nothing about either parameter is left ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get the structure of a KEGG BRITE functional hierarchy") and immediately scopes the return value to a bounded summary rather than the full tree. The reference to IDs "returned by search_brite" implicitly separates this lookup tool from the sibling search tool, though the contrast is never stated outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditions for use: BRITE entries are A/B/C/D trees, not flat-file entries, so this tool returns a bounded summary and only `detail_level: full` expands it. It also explains which ID forms are acceptable, removing a common failure mode. No explicit when-not-to-use case (e.g. versus get_pathway_info) is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.