Back to Browse

Replication Radar MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

4.2
Use Caution4.2High Risk

This is a research science MCP server that surfaces replication-worthy papers from the OpenAIRE Graph and nanopub networks. The code is well-structured with appropriate network permissions for its purpose. However, there are moderate concerns around unvalidated external API calls, lack of input sanitization for user-supplied topics, and some error handling gaps that could cause service instability or information disclosure. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.

3 files analyzed Β· 14 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

What You'll Need

Set these up before or after installing:

Optional GitHub token for higher API rate limits (RADAR_GITHUB_TOKEN also accepted)Required

Environment variable: GITHUB_TOKEN

OpenAIRE Graph API base (default: https://api.openaire.eu/graph/v1)Optional

Environment variable: RADAR_OPENAIRE_BASE

Nanopub SPARQL endpoint (default: https://query.knowledgepixels.com/repo/full)Optional

Environment variable: RADAR_NANOPUB_SPARQL

Per-request timeout in seconds (default: 30)Optional

Environment variable: RADAR_HTTP_TIMEOUT

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "org-sciencelive4all-replication-radar": {
      "env": {
        "GITHUB_TOKEN": "your-github-token-here",
        "RADAR_HTTP_TIMEOUT": "your-radar-http-timeout-here",
        "RADAR_OPENAIRE_BASE": "your-radar-openaire-base-here",
        "RADAR_NANOPUB_SPARQL": "your-radar-nanopub-sparql-here"
      },
      "args": [
        "replication-radar"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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

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 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.

Reviews

No reviews yet

Be the first to review this server!