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

Capabilities

Features and capabilities supported by this server

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