galaxyproject / galaxyproject/loom
Loom: /lit command + literature MCPs (PubMed / Europe PMC)
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 12
- Avg merge
- 6d 5h
- Merged PRs (30d)
- 17
Description
## Proposal
Wire literature search into Phase 1 (`research_add_literature`) via an MCP server, plus an explicit `/lit` slash command that reliably triggers it.
## Motivation
Phase 1 already has `research_add_literature`, but it only *records* references — the agent can't search PubMed or Europe PMC. Users doing literature review have to leave Orbit, search manually, then paste results back.
## Shape
**MCP candidates** (no official NCBI MCP exists as of Apr 2026 — confirmed against [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers); the 2026 [MCPmed paper](https://pmc.ncbi.nlm.nih.gov/articles/PMC12927880/) explicitly calls for one):
1. [`genomoncology/biomcp`](https://github.com/genomoncology/biomcp) — biomedical MCP, fans out across PubMed + Europe PMC + PubTator3 with dedup. **Preferred** — one registration covers both sources, already dedups, domain-matched to Loom. Caveat: broader scope (variants, trials) may add tool-noise; consider filtering the registered tool list to literature-only at registration time.
2. [`cyanheads/pubmed-mcp-server`](https://github.com/cyanheads/pubmed-mcp-server) — PubMed-only, clean, has a hosted instance (no subprocess). Fallback if biomcp scope is too heavy.
**Slash command**: `/lit ` in `extensions/loom/execution-commands.ts` — brain-owned, dispatches to the registered literature MCP's search tool, returns structured results the agent can then feed into `research_add_literature`.
**System prompt**: extend `extensions/loom/context.ts` Phase 1 guidance so the agent *also* reaches for the MCP when the user says things like \"find papers about X\" — but treat `/lit` as the reliable path since prompt-based recognition is fuzzy (\"what's known about Y\" is ambiguous).
**UI**: existing tool-card path in Orbit chat surfaces calls automatically. Could add a distinct \"literature\" label/icon to distinguish from Galaxy tool calls — not blocking.
## Open questions
- biomcp tool-list filtering: does `pi-mcp-adapter` support whitelisting a subset of tools per server?
- Should `/lit` always write results to the plan/notebook via `research_add_literature`, or return them to chat and let the agent decide?
- NCBI API key: biomcp+cyanheads both use E-utilities → rate-limited without a key. Surface in `~/.loom/config.json` alongside Galaxy creds?
## Related
- Discussed in nekrut:testing/all-prs testing session
- Orthogonal to #13 (dynamic model list)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with extensions/loom/execution-commands.ts to trace slash-command dispatch, then read extensions/loom/context.ts for the Phase 1 guidance and inspect how literature MCP tools are registered. The work is done when /lit reliably returns structured PubMed or Europe PMC results and the agent can use the literature MCP through the Phase 1 flow; resolve the listed tool-filtering, persistence, and API-key questions first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100