Reactome MCP server
2026년 11월 2일 커밋Reactome 경로 지식베이스를 AI 어시스턴트에 연결하여 생물학적 경로 데이터를 검색, 탐색 및 분석할 수 있도록 지원합니다.
다른 이름 reactome/reactome-mcp
- 스타
- 6
- Tools
- 72
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 2일
- 라이선스
- Apache-2.0
Reactome MCP란?
Reactome은(는) MCP server입니다. Reactome 경로 지식베이스를 AI 어시스턴트에 연결하여 생물학적 경로 데이터를 검색, 탐색 및 분석할 수 있도록 지원합니다. 72개 도구를 제공합니다. 예: search, pathway, entity.
프로젝트 README에서 생성된 요약
Reactome MCP server 정보
생물학 연구자와 개발자는 이 MCP server를 통해 Reactome 경로 지식베이스에 접근하여 자연어로 복잡한 생물학적 데이터 분석을 수행할 수 있습니다. 이 server는 Reactome의 Content and Analysis Service REST API를 래핑하여, AI 어시스턴트가 생물학적 경로, 반응, 단백질, 유전자 및 화합물을 검색, 탐색 및 조사할 수 있도록 합니다. Node.js를 통해 로컬에서 실행되도록 설계되었으며, REACTOME_BASE_URL과 같은 환경 변수를 통해 설정을 관리합니다.
이 server는 경로 농축 분석, 엔티티 조회, PSICQUIC 리소스를 이용한 단백질-단백질 상호작용 쿼리 등 다양한 전문 도구를 제공합니다. 사용자는 또한 SBML, SBGN, PDF 보고서, CSV 또는 JSON 결과 등 다양한 형식으로 데이터를 내보낼 수 있습니다. 내부 인스턴스의 경우, NEO4J_URI 및 MCP_ALLOW_CYPHER 변수를 설정하여 Neo4j 그래프 데이터베이스에 대한 읽기 전용 Cypher 액세스를 구성할 수 있으며, 이를 통해 특정 도구로 직접 그래프 쿼리를 수행할 수 있습니다.
활용 사례
- 1경로 농축 분석 수행유전자 또는 단백질 목록을 AI에 제출하여 p-value 및 FDR을 포함한 과잉 표현(over-representation) 결과를 확인합니다.
- 2생물학적 엔티티 검색자연어를 사용하여 Reactome 데이터베이스 내의 특정 경로, 반응 또는 화합물을 찾습니다.
- 3외부 생물학적 식별자 매핑UniProt 또는 Ensembl과 같은 소스의 식별자를 Reactome 경로 및 반응으로 변환합니다.
- 4경로 다이어그램 내보내기AI에게 생물학적 경로에 대한 시각적 다이어그램 또는 구조화된 데이터 파일 생성을 요청합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Reactome MCP 도구 72
README에서 감지됨searchpathwayentityanalysisexportinteractorsgsautilitiescypherunsetreactome_analyze_identifierreactome_analyze_identifiers
| search | — | |
| pathway | — | |
| entity | — | |
| analysis | — | |
| export | — | |
| interactors | — | |
| gsa | — | |
| utilities | — | |
| cypher | — | |
| unset | — | |
| reactome_analyze_identifier | — | |
| reactome_analyze_identifiers | — |
도구 72개 모두 보기도구 수 줄이기
reactome_get_analysis_resultreactome_analysis_found_entitiesreactome_analysis_not_foundreactome_analysis_resourcesreactome_compare_speciesreactome_analysis_pathway_sizesreactome_filter_analysis_pathwaysreactome_get_pathwayreactome_top_pathwaysreactome_pathway_ancestorsreactome_pathway_contained_eventsreactome_pathways_for_entityreactome_diagram_pathways_for_entityreactome_events_hierarchyreactome_preceding_eventsreactome_searchreactome_search_paginatedreactome_search_suggestreactome_search_spellcheckreactome_search_facetsreactome_search_pathways_ofreactome_search_diagramreactome_get_entityreactome_complex_subunitsreactome_entity_other_formsreactome_entity_component_ofreactome_participantsreactome_participating_physical_entitiesreactome_reference_entitiesreactome_complexes_containingreactome_export_diagramreactome_export_reactionreactome_export_fireworksreactome_export_sbgnreactome_export_sbmlreactome_export_pdfreactome_export_analysis_reportreactome_export_analysis_csvreactome_export_analysis_jsonreactome_psicquic_resourcesreactome_psicquic_summaryreactome_psicquic_detailsreactome_static_interactorsreactome_interactor_pathwaysreactome_interactor_summaryreactome_gsa_methodsreactome_gsa_data_typesreactome_gsa_search_datasetsreactome_gsa_examplesreactome_gsa_sourcesreactome_speciesreactome_diseasesreactome_database_inforeactome_mapping_pathwaysreactome_mapping_reactionsreactome_orthologyreactome_queryreactome_cypher_schemareactome_cypher_samplereactome_cypher_query
| reactome_get_analysis_result | — | |
| reactome_analysis_found_entities | — | |
| reactome_analysis_not_found | — | |
| reactome_analysis_resources | — | |
| reactome_compare_species | — | |
| reactome_analysis_pathway_sizes | — | |
| reactome_filter_analysis_pathways | — | |
| reactome_get_pathway | — | |
| reactome_top_pathways | — | |
| reactome_pathway_ancestors | — | |
| reactome_pathway_contained_events | — | |
| reactome_pathways_for_entity | — | |
| reactome_diagram_pathways_for_entity | — | |
| reactome_events_hierarchy | — | |
| reactome_preceding_events | — | |
| reactome_search | — | |
| reactome_search_paginated | — | |
| reactome_search_suggest | — | |
| reactome_search_spellcheck | — | |
| reactome_search_facets | — | |
| reactome_search_pathways_of | — | |
| reactome_search_diagram | — | |
| reactome_get_entity | — | |
| reactome_complex_subunits | — | |
| reactome_entity_other_forms | — | |
| reactome_entity_component_of | — | |
| reactome_participants | — | |
| reactome_participating_physical_entities | — | |
| reactome_reference_entities | — | |
| reactome_complexes_containing | — | |
| reactome_export_diagram | — | |
| reactome_export_reaction | — | |
| reactome_export_fireworks | — | |
| reactome_export_sbgn | — | |
| reactome_export_sbml | — | |
| reactome_export_pdf | — | |
| reactome_export_analysis_report | — | |
| reactome_export_analysis_csv | — | |
| reactome_export_analysis_json | — | |
| reactome_psicquic_resources | — | |
| reactome_psicquic_summary | — | |
| reactome_psicquic_details | — | |
| reactome_static_interactors | — | |
| reactome_interactor_pathways | — | |
| reactome_interactor_summary | — | |
| reactome_gsa_methods | — | |
| reactome_gsa_data_types | — | |
| reactome_gsa_search_datasets | — | |
| reactome_gsa_examples | — | |
| reactome_gsa_sources | — | |
| reactome_species | — | |
| reactome_diseases | — | |
| reactome_database_info | — | |
| reactome_mapping_pathways | — | |
| reactome_mapping_reactions | — | |
| reactome_orthology | — | |
| reactome_query | — | |
| reactome_cypher_schema | — | |
| reactome_cypher_sample | — | |
| reactome_cypher_query | — |
구성
MCP_ALLOW_CYPHERMCP_HTTP_PORTMCP_TOOL_GROUPSNEO4J_DATABASENEO4J_PASSWORDNEO4J_SCHEMA_FILENEO4J_URINEO4J_USER
| 이름 | 설명 | 유형 |
|---|---|---|
| MCP_ALLOW_CYPHER | — | |
| MCP_HTTP_PORT | — | |
| MCP_TOOL_GROUPS | — | |
| NEO4J_DATABASE | — | |
| NEO4J_PASSWORD | — | |
| NEO4J_SCHEMA_FILE | — | |
| NEO4J_URI | — | |
| NEO4J_USER | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능reactome/reactome-mcp is public and reachablegithub.com/reactome/reactome-mcp ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-02github.com/reactome/reactome-mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음72 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기reactome-mcp
An MCP (Model Context Protocol) server that exposes the Reactome pathway knowledgebase to AI assistants. It wraps Reactome's Content Service and Analysis Service REST APIs, giving LLMs the ability to search, browse, analyse, and export biological pathway data through natural language.
Features
- Pathway enrichment analysis — submit gene/protein lists and retrieve over-representation results, including p-values, FDR, and found/not-found identifiers
- Search — full-text search across pathways, reactions, proteins, genes, and compounds with faceting, pagination, autocomplete, and spellcheck
- Pathway browsing — navigate the pathway hierarchy, retrieve event details, ancestors, contained events, and participants
- Entity lookup — inspect physical entities, complexes, subunits, and cross-references
- Interactors — query protein–protein interaction data from PSICQUIC resources and Reactome's curated interactor database
- Export — diagrams (PNG/SVG/JPG/GIF), SBGN, SBML, PDF reports, and CSV/JSON analysis results
- Species & disease — list available species and disease annotations
- ID mapping — map external identifiers (UniProt, Ensembl, CHEBI, etc.) to Reactome pathways and reactions
59 tools and 10 resources are registered by default — see Tools and Resources below for the full list. An internal instance can additionally be given read-only Cypher access to a Reactome graph database, which makes 62 with graph access and 11 resources; it is off unless two variables are set, and a public instance must never set them (see Graph database access). tests/readme-tools.test.ts fails if those counts drift or a tool goes undocumented.
Prerequisites
- Node.js >= 18
Installation
git clone https://github.com/reactome/reactome-mcp.git
cd reactome-mcp
npm install # runs `prepare` which builds dist/
Configuration
All configuration is via environment variables — pass them in the env block of your MCP client config.
| Variable | Default | Purpose |
|---|---|---|
REACTOME_BASE_URL |
https://reactome.org |
Base URL for the Content + Analysis Services. Override to point at staging / a specific release host. |
REACTOME_CONTENT_SERVICE_URL |
derived from REACTOME_BASE_URL |
Fine-grained override for the Content Service only. |
REACTOME_ANALYSIS_SERVICE_URL |
derived from REACTOME_BASE_URL |
Fine-grained override for the Analysis Service only. |
LOG_LEVEL |
info |
debug / info / warn / error. Logs are JSON on stderr; stdout is reserved for the MCP protocol. |
Choosing which tools to publish
All 59 tools register by default, which is what you want locally. A hosted
instance usually wants fewer, so MCP_TOOL_GROUPS selects groups:
MCP_TOOL_GROUPS=search,pathway,entity,utilities,analysis
| Group | Tools |
|---|---|
search |
7 |
pathway |
8 |
entity |
8 |
analysis |
9 |
export |
9 |
interactors |
6 |
gsa |
5 |
utilities |
7 |
cypher |
3 — only with graph database access on |
This is a registration switch, not a documentation one. An omitted group's
tools are not registered, are not listed by tools/list, and are not
mentioned in the instructions the server sends on connection — and nor are
its resources: omitting analysis withholds reactome://analysis/{token}
too, because a capability moved to a URI is not a capability withheld. A tool
described nowhere but still answering is the failure this avoids.
Three cases behave differently on purpose, because the dangerous one is a restriction that quietly becomes "everything":
- unset — all groups (
cypheronly if graph database access is on) - set and empty — the server refuses to start
- set with an unknown name — the server refuses to start, naming the typo
- names
cypherwhile graph database access is off — the server refuses to start, rather than quietly serving without it
Graph database access (internal instances only)
Three extra tools — reactome_cypher_schema, reactome_cypher_sample and
reactome_cypher_query — and the reactome://graph/schema resource let an
agent query a Reactome Neo4j graph database directly. They exist for internal
instances pointed at a dedicated graph database container.
They are off by default, and a publicly reachable instance must never turn them on. An arbitrary Cypher query can run for a long time and hold the database's memory and CPU while it does; on a public endpoint that is a way for anyone on the internet to degrade the database and whatever else depends on it. The read-only safeguards below limit the damage a query can do to the data, not the load it can put on the server.
Graph access exists only when both of these are set:
| Variable | Value | |
|---|---|---|
NEO4J_URI |
e.g. bolt://127.0.0.1:7687 |
where the graph database listens |
MCP_ALLOW_CYPHER |
exactly 1 |
the explicit opt-in; any other value is off |
Either one alone does nothing: no tools, no schema resource, no mention in the
instructions the server sends on connection, and no database connection is
ever opened. NEO4J_URI alone is deliberately not enough — a connection string
is easy to inherit from a shared environment and is not a decision to publish
query access. The same check guards every surface (tool registration, the
resource, the instructions, the startup schema warm-up) and the driver factory
itself, in both the stdio and the HTTP entrypoints;
tests/graph-access-gate.test.ts drives each of them in every combination of
the two variables. GET /health on the HTTP transport reports graphAccess.
Optional:
| Variable | Default | |
|---|---|---|
NEO4J_USER |
neo4j |
used only when NEO4J_PASSWORD is set |
NEO4J_PASSWORD |
(unset) | unset connects without credentials, for a database with authentication disabled |
NEO4J_DATABASE |
(server default) | Neo4j Community serves a single database, so this is rarely needed |
CYPHER_QUERY_TIMEOUT_MS |
30000 |
server-side transaction timeout for reactome_cypher_* queries |
NEO4J_SCHEMA_FILE |
(unset) | a schema saved by extract-schema, served instead of extracting one when it matches the database; ignored entirely while graph access is off |
Read-only safeguards. Every query runs in a READ-mode session, so the
database refuses CREATE, MERGE, DELETE, SET and REMOVE. Before a
query reaches the database it is checked against an allowlist: CALL only for
the built-in schema procedures (db.labels, db.relationshipTypes,
db.propertyKeys, db.schema.*, db.indexes, db.constraints,
dbms.components) and the fulltext query procedures
(db.index.fulltext.queryNodes, db.index.fulltext.queryRelationships), no
CALL { ... } subqueries, SHOW only for indexes and constraints, and no
APOC or GDS name, LOAD CSV, USE, TERMINATE, CYPHER options prefix
(version, planner, runtime) or write/admin clause. SET, SHOW and CYPHER
cannot be used as variable names. The check runs on the query as Neo4j tokenises
it (comments, string literals and quoted names read as such), and anything it
cannot finish reading is refused. Each query runs under a server-side timeout;
rows are streamed and reading stops at max_rows, with the rest discarded on
the server, and row width and total response size are capped. These are
guardrails; the boundary is that graph access is not enabled where the public
can reach it.
Running against the Reactome graph database container
Reactome publishes its graph database as an image. Run it bound to loopback, so nothing but processes on the same machine can reach it:
docker run -d --name reactome-graphdb \
-p 127.0.0.1:7687:7687 \
public.ecr.aws/reactome/graphdb:Release97
Then point an internal instance at it:
NEO4J_URI=bolt://127.0.0.1:7687 MCP_ALLOW_CYPHER=1 node dist/index.js
Add NEO4J_USER / NEO4J_PASSWORD if the container is configured with
authentication. The server reads the schema with Neo4j's built-in procedures
(db.schema.nodeTypeProperties(), db.schema.relTypeProperties(),
db.schema.visualization(), SHOW INDEXES, SHOW CONSTRAINTS), so APOC is not
required — the Reactome image runs Neo4j 4.4 Community without it. The schema
is read once in the background at startup and cached; on the full graph that
can take a while, and a section the database cannot provide is reported as
unavailable rather than shown empty.
Saving the schema: extract-schema
Reading the schema of the full Reactome graph takes about a minute. To skip that at startup, save it once and point the server at the file:
NEO4J_PASSWORD=… node dist/index.js extract-schema \
--uri bolt://127.0.0.1:7687 --out reactome-schema.json
# installed from npm: npx reactome-mcp extract-schema …
NEO4J_URI=bolt://127.0.0.1:7687 MCP_ALLOW_CYPHER=1 \
NEO4J_SCHEMA_FILE=reactome-schema.json node dist/index.js
| Option | |
|---|---|
--uri <uri> |
the database (required) |
--database <name> |
default NEO4J_DATABASE, else the server's default database |
--user <name> |
default NEO4J_USER, else neo4j |
--password-env <VAR> |
read the password from VAR instead of NEO4J_PASSWORD |
--out <file> |
write here; without it the JSON goes to stdout |
There is no --password, and passing one is refused: a command line is visible
to every user of the machine in ps. The password comes from the environment.
extract-schema runs the server's own extractor, read-only and under the same
timeouts, so the file has exactly the structure of the reactome://graph/schema
resource. It does not need MCP_ALLOW_CYPHER — it is a command an operator runs
by hand, not a server, and it publishes nothing. It refuses to write a schema
with sections it could not read, since a saved schema would keep that gap for as
long as it is used, or one whose body disagrees with its own fingerprint, which
means the database was written to during the run. Usage errors name the flag at
most and never echo a value.
The file is only served against the database it came from. Every schema
carries a schemaFormat number (currently 2) and a source fingerprint:
- Neo4j version and edition, and the name of the database actually connected to
- the Reactome release from the graph's
DBInfonode (absent on a graph without one) - total node and relationship counts
- digests of the label, relationship type and property key lists, and of the indexes (name, labels, properties, state) and constraints
- when it was taken (recorded, not compared)
On its first schema request the server reads the same fingerprint from the live
database — metadata procedures and count-store lookups, nothing that scans the
nodes or their properties, rather than the full extraction — and serves the
file only if every field agrees, the format is one it reads, and the file agrees
with its own fingerprint. When it does, it logs graph schema served from file
with the file, release and database. Otherwise it logs a warning naming the
difference and extracts the schema live, as if no file were set. With graph
access off, NEO4J_SCHEMA_FILE is not read at all.
| Detected (the file is not used) | Not detected (the file is still used) |
|---|---|
| another release, database or Neo4j version | a property's value changing |
| a node or relationship added or removed | a property's value type changing (say, a string becoming a list) |
a new label, relationship type or property key (SET n.newProp) |
an existing property key set on nodes that lacked it |
| an index or constraint created, dropped or no longer online | one node deleted and another added with the same labels, keys and totals |
| an older format, or a missing, malformed or self-contradictory file | a property key no longer used anywhere — Neo4j keeps key tokens once created |
So a snapshot is safe against a different database and against most structural
edits, but it is a fingerprint, not a proof: after edits that only change
values, re-run extract-schema or unset NEO4J_SCHEMA_FILE.
From the release pipeline. Once a release's graph database image is built, the same command against a container started from it produces a schema that can be published beside the image as an optional artifact:
docker run -d --name graphdb-schema -p 127.0.0.1:7687:7687 <the new graph database image>
node dist/index.js extract-schema --uri bolt://127.0.0.1:7687 \
--out reactome-<release>-schema.json
docker rm -f graphdb-schema
An instance run against that image can then set NEO4J_SCHEMA_FILE to the
published file; one run against anything else will fall back to live extraction
on its own.
Pointing at your own database
A curator, or anyone with a Reactome-shaped graph of their own, can run an internal instance against it. The same rule applies as everywhere else here: only on an instance that is not publicly reachable — on your own machine over stdio, or bound to loopback.
NEO4J_URI=bolt://127.0.0.1:7687 \
NEO4J_USER=neo4j NEO4J_PASSWORD=… \
NEO4J_DATABASE=<your database, if not the default> \
MCP_ALLOW_CYPHER=1 \
node dist/index.js
Nothing else is needed: the schema the Cypher tools describe is read from your
database at startup, not shipped with the server, so it reflects your labels,
properties and counts. A database without a DBInfo node is fine; the schema
simply names no release.
To skip the extraction on later starts, save your database's schema with
extract-schema and set NEO4J_SCHEMA_FILE to it. The fingerprint check is
what makes this safe to get wrong: a schema saved from the release graph will
not match your database, so it is not used against it, and nor is your own
snapshot once your database has changed in a way the fingerprint sees — a node
or relationship added or removed, a new label, relationship type or property
key, an index or constraint changed. In those cases the server warns and reads
the schema live. Edits that only change property values or their types are
not seen (see the table above); after those, re-run extract-schema.
Usage
With Claude Desktop
Add the server to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"reactome": {
"command": "node",
"args": ["/absolute/path/to/reactome-mcp/dist/index.js"]
}
}
}
With Claude Code
claude mcp add reactome node /absolute/path/to/reactome-mcp/dist/index.js
Example prompts
Once the server is registered, try asking Claude:
Exploration (REST — works with default install):
- "What does Reactome know about the TP53 gene? Show me the top pathways it appears in."
- "Give me the top-level pathways for Mus musculus and point out which are disease pathways."
- "Summarize pathway R-HSA-109582 — include the references."
- "I have these UniProt IDs: P04637, P53350, Q9UPN9, Q9Y243. Run a Reactome pathway enrichment and list the top 10 hits by FDR."
- "Find pathways in the HHV8 infection area and show me the contained reactions of the best match."
- "Export the SBGN for pathway R-HSA-1640170."
Claude reads per-server instructions on connection explaining the tool categories, ID conventions, and a recommended workflow, so it can usually chain the right calls without hand-holding. If an answer looks off, ask it to "show me the tool call and its result" and correct from there.
Standalone
npm start
The server communicates over stdio using the MCP protocol.
MCP Inspector
npm run inspect
Opens the MCP Inspector UI for interactive testing.
Web Demo
npm run demo
Starts a local web UI with an MCP bridge for browser-based exploration.
Tools
Analysis (9 tools)
| Tool | Description |
|---|---|
reactome_analyze_identifier |
Analyse a single gene/protein identifier for pathway enrichment |
reactome_analyze_identifiers |
Pathway enrichment analysis on a list of identifiers |
reactome_get_analysis_result |
Retrieve a previously computed analysis result by token |
reactome_analysis_found_entities |
Get identifiers found in a specific pathway from an analysis |
reactome_analysis_not_found |
Get identifiers that could not be mapped in an analysis |
reactome_analysis_resources |
Get a summary of molecule types found in an analysis |
reactome_compare_species |
Compare Homo sapiens pathways to another species |
reactome_analysis_pathway_sizes |
Get pathway size distribution from an analysis result |
reactome_filter_analysis_pathways |
Filter an analysis result to specific pathways |
Pathways (8 tools)
| Tool | Description |
|---|---|
reactome_get_pathway |
Get details of a specific pathway or reaction |
reactome_top_pathways |
List top-level pathways for a species |
reactome_pathway_ancestors |
Get the ancestor hierarchy of an event |
reactome_pathway_contained_events |
Get all events contained within a pathway |
reactome_pathways_for_entity |
Find pathways containing a specific entity |
reactome_diagram_pathways_for_entity |
Find diagram-level pathways containing an entity |
reactome_events_hierarchy |
Get the complete event hierarchy for a species |
reactome_preceding_events |
Find the events that must occur before a reaction or pathway — Reactome's event ordering |
Search (7 tools)
| Tool | Description |
|---|---|
reactome_search |
Full-text search across the knowledgebase |
reactome_search_paginated |
Search with pagination |
reactome_search_suggest |
Autocomplete suggestions |
reactome_search_spellcheck |
Spell-check suggestions |
reactome_search_facets |
Get available search facets/filters |
reactome_search_pathways_of |
Find pathways containing an entity by database ID |
reactome_search_diagram |
Search for entities within a pathway diagram |
Entities (8 tools)
| Tool | Description |
|---|---|
reactome_get_entity |
Get details of a physical entity |
reactome_complex_subunits |
Get all subunits of a complex |
reactome_entity_other_forms |
Get other forms of a physical entity |
reactome_entity_component_of |
Find larger structures containing an entity |
reactome_participants |
Get molecular participants in a reaction or pathway |
reactome_participating_physical_entities |
Get physical entities participating in an event |
reactome_reference_entities |
Get reference entities for event participants |
reactome_complexes_containing |
Find complexes containing an external identifier |
Export (9 tools)
| Tool | Description |
|---|---|
reactome_export_diagram |
Export a pathway diagram as an image |
reactome_export_reaction |
Export a reaction diagram as an image |
reactome_export_fireworks |
Export the species pathway overview diagram |
reactome_export_sbgn |
Export to SBGN XML |
reactome_export_sbml |
Export to SBML |
reactome_export_pdf |
Export documentation to PDF |
reactome_export_analysis_report |
Generate a PDF analysis report |
reactome_export_analysis_csv |
Export analysis results as CSV |
reactome_export_analysis_json |
Export analysis results as JSON |
Interactors (6 tools)
| Tool | Description |
|---|---|
reactome_psicquic_resources |
List available PSICQUIC interaction databases |
reactome_psicquic_summary |
Summarise interactions from a PSICQUIC resource |
reactome_psicquic_details |
Get detailed interactions from a PSICQUIC resource |
reactome_static_interactors |
Get curated interactions from Reactome |
reactome_interactor_pathways |
Find pathways where a protein's interactors appear |
reactome_interactor_summary |
Summarise curated interactions for a protein |
Gene Set Analysis / ReactomeGSA (5 tools)
| Tool | Description |
|---|---|
reactome_gsa_methods |
List the gene set analysis methods ReactomeGSA offers (PADOG, Camera, ssGSEA, terapadog) |
reactome_gsa_data_types |
List the kinds of experimental data ReactomeGSA can analyse (RNA-seq counts, normalised RNA-seq, proteomics, microarray, Ribo-seq) |
reactome_gsa_search_datasets |
Search public expression datasets ReactomeGSA can load — Expression Atlas, Single Cell Expression Atlas, GREIN, GEO |
reactome_gsa_examples |
List the bundled example datasets |
reactome_gsa_sources |
List the external dataset sources ReactomeGSA can load from |
Utilities (7 tools)
| Tool | Description |
|---|---|
reactome_species |
List species available in Reactome |
reactome_diseases |
List diseases annotated in Reactome |
reactome_database_info |
Get database version information |
reactome_mapping_pathways |
Map an external identifier to pathways |
reactome_mapping_reactions |
Map an external identifier to reactions |
reactome_orthology |
Get orthologous events/entities in another species |
reactome_query |
Query any Reactome database object by identifier |
Graph database / Cypher (3 tools — internal instances only)
Registered only when NEO4J_URI and MCP_ALLOW_CYPHER=1 are both set; see
Graph database access.
| Tool | Description |
|---|---|
reactome_cypher_schema |
Labels, relationship types, connecting patterns, properties, indexes and constraints of the graph |
reactome_cypher_sample |
A few nodes of one label, to see their shape |
reactome_cypher_query |
Run a read-only Cypher query (READ session, timeout, capped output) |
Resources
Static
| URI | Description |
|---|---|
reactome://species |
All species in Reactome |
reactome://species/main |
Main species with curated pathways |
reactome://diseases |
All annotated diseases |
reactome://database/info |
Database version and name |
reactome://graph/schema |
Graph database schema as JSON — only with graph database access on |
Templates
| URI Template | Description |
|---|---|
reactome://pathway/{id} |
Pathway details |
reactome://pathway/{id}/diagram |
Pathway diagram (SVG) |
reactome://entity/{id} |
Entity details |
reactome://analysis/{token} |
Analysis result |
reactome://top-pathways/{species} |
Top-level pathways for a species |
reactome://events-hierarchy/{species} |
Full event hierarchy for a species |
Transports
stdio is the default and the one every existing client uses:
node dist/index.js
Streamable HTTP is for a hosted instance, because a reverse proxy cannot front a process that talks over stdin/stdout:
MCP_HTTP_PORT=4320 node dist/http-server.js
# or: MCP_HTTP_PORT=4320 npm run start:http
| variable | default | |
|---|---|---|
MCP_HTTP_PORT |
(unset) | required to serve HTTP |
MCP_HTTP_HOST |
127.0.0.1 |
see below before changing |
MCP_SESSION_TTL_MS |
1800000 |
idle session reaped after 30 min |
MCP_MAX_SESSIONS |
256 |
concurrent session ceiling |
A hosted instance must leave NEO4J_URI and MCP_ALLOW_CYPHER unset; see
Graph database access.
Endpoints: POST /mcp (initialize, then requests), GET /mcp (server stream),
DELETE /mcp (end session), GET /health.
Each session gets its own server instance, so two clients cannot interleave
on shared state. Idle sessions are reaped and the session count is capped, so a
client that never sends DELETE cannot accumulate servers until the process
dies.
Reactome MCP 질문
Reactome MCP는 어떤 도구를 제공하나요?
72개 도구를 제공합니다. 예: search, pathway, entity, analysis, export.
Reactome MCP server로 무엇을 할 수 있나요?
경로 농축 분석(pathway enrichment analysis), 경로·단백질·유전자 검색, 경로 계층 구조 탐색, 다양한 형식의 생물학적 데이터 내보내기 등을 수행할 수 있습니다.
이 server로 그래프 데이터베이스를 쿼리할 수 있나요?
네, NEO4J_URI 및 MCP_ALLOW_CYPHER를 1로 설정하면 내부 인스턴스에서 Reactome Neo4j 그래프 데이터베이스에 대한 읽기 전용 Cypher 액세스 권한을 부여받을 수 있습니다.
생물학적 데이터를 어떤 형식으로 내보낼 수 있나요?
PNG, SVG, JPG, GIF 형식의 다이어그램뿐만 아니라 SBGN, SBML, PDF 보고서, CSV/JSON 분석 결과 형식을 지원합니다.