Replication Radar

org.sciencelive4allPublished by sciencelive4all.orgv0.4.8Updated Oct 26, 2026

Turn the OpenAIRE Graph into a ranked replication queue with a Science Live verification overlay.

Overview

AI-generated overview

Turns the OpenAIRE Graph into a ranked replication queue, flagging papers as open or already verified and surfacing independent software.

What you can do
  • Rank high-impact papers in a research field as replication targets, each marked open or verified with its verdict
  • Check whether a DOI has been independently replicated, pulling verdicts live from the nanopub network
  • List the whole verified-claims corpus with verdicts and replication counts
  • Find reusable method software not authored by the original team, ranked by repository, archival, download and star signals
  • Get the FORRT replication template and a suggested scaffold repository name for starting a replication
  • Point to the OpenAIRE MCP for finding a citable dataset DOI
When to use it
Useful when planning or scoping a replication study: picking which high-impact claims are worth re-testing, checking whether a claim has already been checked and held, and locating independent tooling rather than the original authors' code.
Requirements
Runs locally as a Python package over stdio; install with pip and start the module. Needs network access to the OpenAIRE Graph API, the nanopub SPARQL endpoint and GitHub/Software Heritage. An optional GitHub token raises API rate limits; timeout and endpoint overrides are configurable by environment variable.
Before you install
The optional GitHub token is a credential and should be supplied only through the environment. Results are heuristic: discovery is keyword-bound, tooling and datasets are matched by topic and author independence rather than graph relations, and the bundled verdict index covers only a handful of works. The server reads public research data and does not appear to write or delete anything.

Installation

In SourceWeft

  1. Open Replication Radar in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Replication Radar

[DOI] [PyPI]

🔗 Live demo → https://openaire-hackathon.netlify.app

▶ Watch the 3-min demo → https://youtu.be/hVyLafY3Y3E · reproduce it step by step → https://openaire-hackathon.netlify.app/demo.html

A tool that makes the OpenAIRE Graph more useful for replication. Search a research field and it answers the question the Graph structurally cannot: what high-impact work is worth replicating, has it already been independently checked — with what verdict — and is the software reusable?

Ships as a live web app (the link above — pure static, queries OpenAIRE + the nanopub network + GitHub/Software Heritage from the browser) and an MCP server (this package) that exposes the same engine to any agent. Built for the OpenAIRE AI Hackathon (Theme B), CC-BY.

OpenAIRE's only value signal is citation-popularity (BIP! influence / popularity / impulse, classes C1–C5) — paper-bound, and orthogonal to whether a claim is true. The Radar joins three sources to add a replication layer on top:

  • OpenAIRE Graph — impact-ranks candidate papers (api.openaire.eu/graph/v1).
  • Software Heritage + repo signals — surfaces reusable method software.
  • Science Live nanopub verdicts — the "already checked → did it hold" overlay.

OpenAIRE AI Hackathon · Theme B (Build) · CC-BY. Built to be reused through the forrt-replication-template: discovery at the start of a replication, where the template's existing skills handle the nanopub chain at the end.

Tools

ToolWhat it answers
radar(topic)Impact-ranked replication targets in a field — each OPEN (opportunity) or VERIFIED (done, with verdict) + independent tooling + funder context
find_independent_software(doi, topic)Reusable engines not authored by the original team (author-disjoint = replication, not reproduction), ranked by reuse signal — repo · Software Heritage · downloads · GitHub stars — not citations (returns stars + rank_score)
replication_status(doi)Has this DOI been replicated, did it hold? Verdict(s) — live from the nanopub network, any signer — with status, CiTO relation, repo, and signed Outcome/CiTO nanopub links; open if not
verified_claims()The whole verified-knowledge corpus — every claim the network holds a verdict for (author-agnostic)
replication_template(doi, topic, owner)The FORRT replication template (the produce half) — the scaffold repo, the workflow, and a suggested <topic>-replication repo name (checks availability under owner)
find_dataset(topic)Hand-off to the OpenAIRE MCP for datasets — replication-radar doesn't search datasets; this says how to find a citable dataset DOI there

The verdict tools pull live from the nanopub network (the FORRT Outcome/CiTO templates on query.knowledgepixels.com); the bundled verdicts.json is an offline fallback. So the MCP is the verified-knowledge layer — pair it with the OpenAIRE MCP and an agent has both the structural Graph and "has this been checked, and did it hold".

The reproduction-vs-replication distinction, made computable

A reproduction re-runs the original code; a replication tests the same claim by a different route. So the Radar filters tooling by author-disjointness from the original paper — e.g. for Phillips et al. 2009, the dismo package (co-authored by Phillips & Elith) is flagged rooted / non-independent, while biomod2 and jSDM are independent. That filter is the difference between the two, and it's the thing that makes this replication-aware rather than just "find the code".

Run

bash
pip install -e .                       # installs the `mcp` runtimepython -m replication_radar.server     # stdio MCP server

Add to an MCP client (.mcp.json):

json
{ "mcpServers": {  "replication-radar": { "command": "python", "args": ["-m", "replication_radar.server"] }} }

The core (OpenAIRE client + radar logic) is stdlib-only — try it without the MCP runtime:

bash
PYTHONPATH=src python3 demo_sdm.py     # live vertical-slice demo on SDM

Configuration

Env varDefaultPurpose
RADAR_OPENAIRE_BASEhttps://api.openaire.eu/graph/v1Swap to the Alien AI-Gateway or a mirror — the Radar is endpoint-agnostic
RADAR_HTTP_TIMEOUT30Per-request timeout (s)

Known limits (v1, honest)

  • Keyword-bound discovery. OpenAIRE free-text terms are AND-ed; long queries return nothing. Use short topics. The VERIFIED overlay is guaranteed (resolved from the verdict index directly), but OPEN-target recall depends on the query.
  • No graph-relation traversal on the public API (paper→its software/data/grant edges aren't exposed): tooling/data are matched heuristically by topic + author independence, not by a hard relation. Upgrades cleanly if a gateway exposes relations.
  • Funder context is field-level, not per-paper (per-paper funder attribution is not reachable); budgets are frequently reported as 0 in records.
  • The verdict index ships 6 source works / 12 chains (Science Live). Extend data/verdicts.json to grow coverage.

Source: README.md at commit c91b750

Tools

6

radar

Impact-ranked replication targets in a research field. Returns high-impact OpenAIRE papers worth replicating, each flagged OPEN (opportunity) or VERIFIED (already checked by a Science Live replication, with the verdict), each with its `abstract` (markup stripped — read it or extract the paper's atomic claim), plus independent reusable tooling. Keep `topic` short (2-3 words); OpenAIRE free-text terms are AND-ed.

Parameterslimittopicrequired

find_independent_software

Reusable method software for *replicating* a claim — engines NOT authored by the original paper's team (author-disjoint), ranked by reuse signal — a resolvable code repository + Software Heritage archival + downloads + GitHub stars (the signal that separates an established tool from a one-off study repo) — not citations. Each result carries its `stars` and `rank_score`. Pass the original paper's DOI (authors are looked up) and a short topic; keep the topic broad (a narrow one can miss an established tool whose OpenAIRE record doesn't contain the extra words).

Parametersdoilimittopic

replication_status

Has this DOI been independently replicated, and did it hold? Returns every Science Live verdict — pulled LIVE from the nanopub network, any signer (author-agnostic) — with the validation status, CiTO relation, the replication's repository, and links to the signed Outcome/CiTO nanopubs. 'open' if not replicated. This is the reliability signal the OpenAIRE Graph structurally cannot hold. Also returns: - `agreement`: how the independent verdicts agree — pattern is one of robustly_validated / validated / qualified (partial support only) / inconclusive / contested / refuted, with confirm/partial/contradicted counts (so you can say *how robustly* it held, not just that it did). Never "validated" without a confirmation. - `claims`: the exact FORRT claim(s) that were replicated — each an atomic AIDA statement plus its claim type (descriptive pattern, statistical significance, …). - the paper's `title` and `abstract` (from OpenAIRE, markup stripped), so you can read it or extract/compare the atomic claim yourself.

Parametersdoirequired

verified_claims

List every claim the nanopub network holds a Science Live replication verdict for (author-agnostic, network-wide) — the verified-knowledge corpus that overlays the OpenAIRE Graph by DOI. Each entry: doi, distinct verdicts, number of replications.

Takes no parameters.

replication_template

The FORRT replication template — how to actually DO a replication and publish its signed Science Live nanopublication chain (the 'produce' half of the loop; radar / replication_status / find_independent_software only DISCOVER). Call this whenever the user wants to start, scaffold, or set up a replication, or asks for "the FORRT replication template". Returns the GitHub template repo (https://github.com/ScienceLiveHub/forrt-replication-template), the 'Use this template' link, what the scaffold provides (pixi + Snakemake pipeline, paper/, nanopubs/, tests, RO-Crate), and the end-to-end workflow: generate a repo from the template -> replicate with INDEPENDENT data/method -> Zenodo release -> sign + publish the FORRT nanopub chain (Quote -> Claim -> Study -> Outcome -> CiTO). Pass the target `doi` and/or a short `topic` and it suggests a GitHub repo name (`<topic>-replication`); pass `owner` (your GitHub user/org) to check the candidates for availability and pick a free name. It also returns a `quickstart.create_repo` command (`gh repo create … --template … --clone`) the agent can run to create+clone the repo straight from the discovery session. Pass the `dataset` and `software` you settled on and it also returns a `handoff` (DISCOVERY.md) to write into the new repo — `gh repo create` copies a BLANK template, so without this the fresh in-repo session loses the paper/dataset/software you chose. Then the user opens a fresh agent session inside the repo to run the replication.

Parametersdoiownertopicdatasetsoftware

find_dataset

Where to find a DATASET (with a citable DOI) to replicate with. The replication-radar MCP does NOT search datasets itself — that is the OpenAIRE MCP's job. Call this when the user asks the Radar to find data/a dataset: it returns instructions to use the OpenAIRE MCP's dataset search and how to cite the result by DOI. Do not answer 'I can't search datasets' — hand off to the OpenAIRE MCP as described here.

Parameterstopic

Version history

2
  1. v0.4.8LatestOct 26, 2026
  2. v0.4.7Sep 21, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts