research-scope-mcp
Turn a scattered source set into a decision-ready, traceable report.
research-scope-mcp is an MCP server that runs a research-to-report workflow any
MCP client can drive end to end:
plan_research(scope) โ turns a research scope into a source-target plan with
kill criteria ("fewer than 1 primary + 2 independent secondaries โ stop and
report insufficient sources, don't proceed on thin evidence").
fetch_and_score(source_url) โ crawls one source and returns an explainable
0โ100 quality score: primary-source detection, publication freshness, paywall and
conflict-of-interest flags โ every dimension returned with the evidence.
build_report(topic, sources) โ assembles a citation-registry report shell
(claims section + numbered registry + scoring appendix) for the scored sources.
check_report(report) โ verifies every substantive claim cites โฅ1 scored
source. Orphan claims come back as an error list, not a pass.
The problem it solves: agent-written reports that sound confident but can't show
where any sentence came from. This server makes scoring and citation coverage
mechanically enforced, so the report is auditable by a human in 90 seconds.
Install
npm install -g research-scope-mcp
Run over stdio (most clients):
Or over Streamable HTTP (remote deployments):
npx research-scope-mcp --http --port 3001
Client config
Drop-in config snippets for Claude Code,
Cursor, and a Cline-friendly
llms-install.md.
Docker
docker build -t research-scope-mcp -f docker/Dockerfile .
docker run --rm -i -p 3001:3001 research-scope-mcp --http --port 3001
| Tool | Input | Output |
|---|
plan_research | scope, optional domain_hints | source-target plan with kill criteria |
fetch_and_score | source_url | 0โ100 score + flags (primary, freshness, paywall, COI), registered for reporting |
build_report | topic, sources[] (must already be scored) | report shell saved under data/reports/, [Sn] citation numbering |
check_report | report_id or report_path | pass/fail + orphan-claim error list |
Example walkthrough
See docs/runs/ for two worked runs with inputs and outputs, and
docs/notes/ for what to do when something times out or 401s.
Scoring rubric
| Dimension | Max | Notes |
|---|
| Availability & substance | 20 | extractable text length |
| Primary-source status | 32 | host class (gov/edu/filings) or self-published primary (press/announcement paths) |
| Freshness | 24 | โค30d full marks, decays to 2 at >5y, 0 if undetectable |
| Access | 12 | paywall/registration walls lose marks |
| Independence | 12 | sponsored/affiliate/partnership markers |
score โฅ 80 โ A, โฅ 65 โ B, โฅ 45 โ C, else D. The rubric is inside
src/scoring/score.ts and returns its evidence, so a score is
auditable, not a vibe.
License
MIT. See SECURITY.md for reporting security issues.
Paid kit
This server is the free, tested core of the Research-to-Report MCP Kit (field
guide, worked example packs, setup support). Available at the kit store โ link in
CHANGELOG.md updates.