MCP server that turns the OpenAIRE Graph into a ranked replication queue — impact-ranked targets, independent reusable tooling, and the Science Live verification overlay.
Project description
Replication Radar
An MCP server that makes the OpenAIRE Graph more useful for replication. Point it at a research field or a paper and it answers the question the Graph structurally cannot: what high-impact work is worth replicating, is there independent reusable tooling to do it, and has it already been checked — with what verdict?
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
| Tool | What 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 not citations |
replication_status(doi) |
Has this DOI been replicated, did it hold? Verdict(s) + CiTO nanopub links, or open |
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
pip install -e . # installs the `mcp` runtime
python -m replication_radar.server # stdio MCP server
Add to an MCP client (.mcp.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:
PYTHONPATH=src python3 demo_sdm.py # live vertical-slice demo on SDM
Configuration
| Env var | Default | Purpose |
|---|---|---|
RADAR_OPENAIRE_BASE |
https://api.openaire.eu/graph/v1 |
Swap to the Alien AI-Gateway or a mirror — the Radar is endpoint-agnostic |
RADAR_HTTP_TIMEOUT |
30 |
Per-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.jsonto grow coverage.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file replication_radar-0.1.0.tar.gz.
File metadata
- Download URL: replication_radar-0.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2958483d354293e03a33adadf48b38c5359b10f83fcc829679df2ef1a13e79b4
|
|
| MD5 |
1fc6b6269b33cc3f03dd49eaa42e350c
|
|
| BLAKE2b-256 |
5d3eb25e6518db2907a4828660cdaeb7182ea03f848f181f4d27923479a2e8de
|
Provenance
The following attestation bundles were made for replication_radar-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on ScienceLiveHub/replication-radar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
replication_radar-0.1.0.tar.gz -
Subject digest:
2958483d354293e03a33adadf48b38c5359b10f83fcc829679df2ef1a13e79b4 - Sigstore transparency entry: 1809140989
- Sigstore integration time:
-
Permalink:
ScienceLiveHub/replication-radar@e87a76875c3f297b4a048aa2552293ac967c3715 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ScienceLiveHub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@e87a76875c3f297b4a048aa2552293ac967c3715 -
Trigger Event:
release
-
Statement type:
File details
Details for the file replication_radar-0.1.0-py3-none-any.whl.
File metadata
- Download URL: replication_radar-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
275db4b8ac9e648e3692393fa47419e565d6e65c199e033e3671a994d303ae83
|
|
| MD5 |
17e745951c4fd5178550e02ed28e85ed
|
|
| BLAKE2b-256 |
e10ad087697633809e6d3bdcdee86a364c0470de92186aeeb96b668ec119433b
|
Provenance
The following attestation bundles were made for replication_radar-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on ScienceLiveHub/replication-radar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
replication_radar-0.1.0-py3-none-any.whl -
Subject digest:
275db4b8ac9e648e3692393fa47419e565d6e65c199e033e3671a994d303ae83 - Sigstore transparency entry: 1809141016
- Sigstore integration time:
-
Permalink:
ScienceLiveHub/replication-radar@e87a76875c3f297b4a048aa2552293ac967c3715 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ScienceLiveHub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@e87a76875c3f297b4a048aa2552293ac967c3715 -
Trigger Event:
release
-
Statement type: