Spec 005: live Reactome data and analysis - #208
Open
adamjohnwright wants to merge 1 commit into
Open
Conversation
The three MCP PRs from @GovindhKishore, and the fact that most of what they are justified by is a cheaper problem. Their motivation is that MCP tools query live APIs "regardless of when embeddings were built". True, and it conflates two problems. The bundle is two releases behind -- installed Release95, reactome.org reports 97 -- and it was already two behind when it was built eight days ago, so this is not drift from age. Nothing rebuilt it against a current release. That needs bin/embeddings_manager and a schedule, not an MCP server, a subprocess and a second router. What MCP alone can do is analysis: enrichment, traversal, entity lookup. None of that is similarity search over stored text, and no amount of rebuilding produces it. That is the honest reason to take the work, and it is the smaller-sounding half. Costs, all verified rather than assumed: reactome-mcp describes itself as "just a prototype for now" and was last pushed 2026-07-01; #127 spawns the server as a subprocess with stdio pipes, in a container that now runs as non-root and spawns nothing today; and #142 adds a second LLM classifier beside the intent classifier that already routes, in a pipeline where cutting LLM calls from 21 to one was the point of spec 001. Recommendation is to rebuild the bundle first and independently, which removes staleness from MCP's justification and leaves the real case, then adopt #127 and #137 behind a flag with routing folded into the existing classifier rather than #142's sibling. Recorded in the checklist: nobody has run reactome-mcp from this repository, so its tools, latency and failure behaviour are taken from a PR description rather than observed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The three MCP PRs from @GovindhKishore — and the finding that most of what they are justified by is a cheaper problem wearing the expensive problem's clothes.
Their motivation conflates two things
MCP tools "query Reactome APIs directly, meaning they always return current data regardless of when embeddings were built." True — and two separate problems.
Problem 1: we are two releases out of date
reactome.org/ContentService/.../versionIt was already two releases behind on the day it was built. This is not drift from age — nothing rebuilt it against a current release. This does not need MCP. It needs
bin/embeddings_managerand a cron entry.Problem 2: the chatbot cannot analyse anything
Enrichment, traversal, entity lookup. None of it is similarity search over stored text, and no amount of rebuilding produces it. This is the part only MCP can do, and it is the honest reason to take the work.
What taking them costs — all verified, not assumed
reactome/reactome-mcpis Reactome's own, but its description reads "This is just a prototype for now" and it was last pushed 2026-07-01.asyncio.create_subprocess_execwith stdio pipes. The container now runs non-root (Harden the deployment: Postgres on a socket, credentials from Vault #198) and spawns nothing today.create_query_routerbeside the existingcreate_intent_classifier. Two classification calls on one question — in a pipeline where cutting LLM calls from 21 to one was the entire point of spec 001.Recommendation
D1: rebuild the bundle first, independently. Largest share of the benefit, no new dependency, ships this week — and it makes the MCP decision honest by removing staleness from its justification.
D2: then adopt #127 and #137 behind a flag, with routing folded into the existing classifier rather than #142's sibling. Real capability, and the cost of being wrong is a flag nobody turned on.
Recorded as not verified: nobody has run
reactome-mcpfrom this repository. Its 53 tools, their latency and their failure behaviour come from a PR description, not observation. Any plan should start by running it once.🤖 Generated with Claude Code