Install
$ agentstack add mcp-chessy795-opencode-research-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
research-mcp
A lean research MCP that bundles academic search, citation graph traversal, OA full-text download, and browser-based institutional download into 5 tools. Built on OpenAlex, Semantic Scholar, CrossRef, and 6 other academic indexes.
What it does: You ask a research question, it searches 8+ academic databases in parallel, removes duplicates, ranks by semantic + keyword relevance, and returns the best papers. Citation walk follows the graph forward and backward via OpenAlex. read_paper fetches OA full text. browser_download uses a real Playwright browser session for institutional SSO paywalls.
Why it's lean: 5 tools are still tiny compared with the ~12,000-token surface of the underlying MCPs. Per the DADL framework, each tool adds context pressure, so we keep the surface focused: search, citations, OA read, browser paywall read, and ping.
5 Tools
| # | Tool | Purpose | |---|------|---------| | 1 | search_literature | 8+ sources, dedup, semantic+keyword ranking, mode + field + debug params | | 2 | walk_citations | Multi-hop citation graph (forward/backward/both) via OpenAlex | | 3 | read_paper | OA-first full-text download with auto-detect + optional Sci-Hub fallback | | 4 | browser_download | Playwright browser download through institutional SSO/EZproxy, with PDF title verification | | 5 | ping | Cheap health check; use before expensive search/download calls |
Search Modes
search_literature has a mode parameter that changes ranking and filtering without changing the response shape (zero context bloat):
| Mode | Filter | Ranking | |------|--------|---------| | "comprehensive" (default) | — | Source tier → source hits → relevance → abstract → citations → year | | "seminal" | ≥10 citations | Citations desc, oldest first | | "recent" | Last 2 years | Citations desc, newest first | | "survey" | Review/survey/meta-analysis only | Relevance → survey flag → citations |
Field-Aware Source Tiering
search_literature accepts field="auto" (default) which detects the query's field and applies field-aware source weighting. Sources are tiered:
| Tier | Sources | When Counted | |------|---------|--------------| | 3 (top) | semantic, scopus, openalex, crossref, springer | All fields | | 2 (mid) | arxiv, unpaywall, openaire, doaj | All fields | | 1 (field-specific) | europepmc | Only for medical and bio fields |
In CS/AI queries, Europe PMC papers are demoted to tier 0 (biomedical venue, irrelevant). In medical queries, Europe PMC papers get full tier-1 credit. The field param accepts "cs", "bio", "medical", "social", "general", or "auto".
The safe filter (_should_drop_low_quality) drops papers with no abstract AND /download_ledger.jsonl`.
- Reuse existing PDFs: if the ledger has a verified PDF for the DOI/title, the tool returns it without opening the browser again.
- Retry backoff: recent failures block immediate retry unless
force=True. Title mismatches are blocked for 7 days; login/timeouts use shorter cooldowns. - Verification-first: success requires extracted PDF text to match requested title keywords. Wrong PDFs are deleted automatically.
Useful params:
browser_download(..., reuse_existing=True, force=False, human_delay=True)
For tests on public PDFs only, set human_delay=False. For real institutional downloads, keep human_delay=True.
Sources
| Source | Type | Key Required? | |--------|------|---------------| | arXiv | Preprints | No | | Semantic Scholar | Academic search | Recommended | | OpenAlex | 270M+ publications | No | | CrossRef | DOI resolution | No | | Unpaywall | OA PDF resolver | Email recommended | | OpenAIRE | EU open science | No | | Europe PMC | Biomedical | No | | DOAJ | Open access journals | No | | Scopus | 26K+ journals | Elsevier API key | | Springer Nature | 29M+ papers | Springer API key |
Design Rationale
This design is grounded in the MCP tool selection literature:
- Wang et al. (2026) — Tool catalog size inversely correlates with selection accuracy. MCPs with >40 tools see -260% selection quality vs <15 tools.
- Dunkel (2026) — DADL framework: context window grows linearly with tool catalog size. Each tool adds ~1.5% context pressure.
- Hou et al. (2026) — MCP security analysis: bloated tool surfaces create 16 attack vectors through dangling or misdescribed tools.
- Gan & Sun (2025) — RAG-MCP: tool routing quality degrades by 12% per 10 tools. Bundled servers with <10 tools achieve 89% routing accuracy.
Agent Config
The agents/researcher.md file configures the researcher subagent for use with this MCP. Key settings:
task: deny— Prevents the researcher from spawning sub-sub-agents (avoids runaway cost spirals)- Capped work scope — Max 2 search + 2 walk + 1 read + 1 browser_download call per request
- Stale tool references removed — No
research_paper_lookup(deleted in Round 1)
Install: copy agents/researcher.md to ~/.config/opencode/agents/researcher.md.
License
MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: chessy795
- Source: chessy795/opencode-research-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.