Skip to main content
Glama
tc2fh

reactome-db-mcp

by tc2fh

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REACTOME_DB_HOSTNoMySQL endpoint host127.0.0.1
REACTOME_DB_NAMENoDatabase namereactome_local
REACTOME_DB_PORTNoMySQL endpoint port3306
REACTOME_DB_USERNoMySQL usernamero_user
REACTOME_DB_MAX_ROWSNoDefault row cap200
REACTOME_DB_PASSWORDNoMySQL password
REACTOME_DB_POOL_SIZENoMax pooled connections4
REACTOME_DB_MAX_CELL_CHARSNoPer-cell text cap in characters2000
REACTOME_DB_STMT_TIMEOUT_MSNoPer-query timeout in milliseconds15000

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

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

Tools

Functions exposed to the LLM to take actions

NameDescription
schema_overviewA

Explain the Reactome GKB schema so you can write correct SQL.

Returns a primer on the class-table-inheritance model (the `DatabaseObject`
supertable, subclass tables sharing `DB_ID`, the `Class_2_attribute` link
tables, and the stable-id join), the most useful tables, key join recipes,
and the data release loaded. **Read this once before writing `query()` SQL.**
The same primer is also available as the `schema://reactome` MCP resource.
list_tablesA

List tables in the database with their (exact) row counts and engine.

Args:
    filter: If given, only tables whose name contains this substring
        (case-insensitive). e.g. "_2_" for link tables, "Reference" for
        reference-data tables.
    limit: Max tables to return (default 500; the DB has 242).

Returns:
    Dict `{count, tables: [{table, rows, engine}], truncated}`, ordered by
    row count descending. Row counts are exact (all tables are MyISAM).
describe_tableA

Show the columns of a table: name, type, nullability, key, default, extra.

Args:
    table: Exact table name (see `list_tables`). e.g. "Pathway",
        "Pathway_2_hasEvent", "DatabaseObject".

Returns:
    Dict `{table, columns: [{name, type, nullable, key, default, extra}]}`.
queryA

Run a single READ-ONLY SQL statement against the Reactome DB.

Accepts one `SELECT` / `WITH` / `SHOW` / `DESCRIBE` / `EXPLAIN` statement.
Writes are impossible (the connection is a SELECT-only user) and multiple
statements are rejected. If a `SELECT`/`WITH` has no `LIMIT`, one is injected
automatically. Call `schema_overview` first to learn the join patterns.

Args:
    sql: The statement to run. Use parameter-free SQL; quote literals
        normally. e.g. `SELECT d.DB_ID, d._displayName FROM DatabaseObject d
        JOIN StableIdentifier si ON d.stableIdentifier = si.DB_ID
        WHERE si.identifier = 'R-HSA-69278'`.
    max_rows: Max rows to return (1-5000, default 200). Long text cells are
        also truncated; `truncated` flags either kind.

Returns:
    Dict `{columns, rows, row_count, truncated, sql}` where `rows` is a list
    of lists aligned to `columns`, and `sql` is the statement actually run
    (with any auto-injected LIMIT). On a bad statement or DB error, returns
    `{"error": ...}`.
get_objectA

Fetch a full Reactome object, assembled across its inheritance chain.

Resolves a stable id ('R-HSA-69278') or numeric `DB_ID`, then merges the
`DatabaseObject` core fields with the subclass-table attributes that share
the same `DB_ID` (e.g. a Pathway pulls in `Event` + `Pathway` columns).

Args:
    id: An 'R-HSA-...' stable id or a numeric DB_ID.

Returns:
    Dict `{DB_ID, _class, _displayName, stable_id, attributes: {...}}` where
    `attributes` is the union of the subclass rows (leaf class wins on any
    name clash). `{"error": ...}` if the id is unknown.
search_by_nameA

Search objects by _displayName.

Args:
    query: Text to look for in the display name.
    classes: Optional `_class` filter, e.g. ["Pathway", "Reaction"].
    limit: Max results (1-200, default 25).
    anchored: If True, match `name LIKE 'query%'` (fast — uses the prefix
        index). If False (default), match `'%query%'` — more thorough but a
        full scan of the 1.86M-row supertable (~1-2s). There are no FULLTEXT
        indexes, so prefer `anchored=True` and/or a `classes` filter for hot
        paths.

Returns:
    Dict `{count, anchored, results: [{DB_ID, _class, _displayName, stable_id}]}`.
get_pathway_eventsA

List the ordered child events (sub-pathways & reactions) of a pathway.

Args:
    id: A Pathway stable id ('R-HSA-69278') or numeric DB_ID.

Returns:
    Dict `{pathway_DB_ID, count, events: [{rank, DB_ID, _class,
    _displayName, stable_id}], truncated}`, ordered by `hasEvent_rank`.
get_participantsA

Get the inputs, outputs, and catalysts of a reaction-like event.

Args:
    id: A ReactionlikeEvent (Reaction/BlackBoxEvent/...) stable id or DB_ID.

Returns:
    Dict `{reaction_DB_ID, inputs, outputs, catalysts}` where `inputs`/
    `outputs` are physical-entity dicts and each `catalysts` entry also
    carries `catalyst_activity_DB_ID` and the GO `activity` DB_ID. Empty
    lists if the object isn't a reaction or has none.
get_referrersA

Reverse lookup: which objects point AT this one (the inverse navigation REST makes awkward).

Scans a curated set of common containment relations — which pathways contain
this event, which complexes/sets contain this entity, which reactions consume
or produce it. **Best-effort, not exhaustive** (the schema has 132 link
tables; this checks the high-value ones).

Args:
    id: A stable id or numeric DB_ID of the object being referred to.
    attribute: Optionally restrict to one relationship label
        (contained_in_pathway, component_of_complex, member_of_set,
        input_to_reaction, output_of_reaction).
    limit: Max referrers per relation (1-500, default 50).

Returns:
    Dict `{object_DB_ID, referrers: [{relationship, via_table, DB_ID, _class,
    _displayName, stable_id}], scanned, note}`.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
schema_primer_resourceThe Reactome GKB schema primer (same text as `schema_overview`'s `primer`).

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tc2fh/reactome-db-mcp'

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