Does a paper reproduce? Read-only lookup of OpenRepro's re-run reports, claims and evidence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Look up one paper in the OpenRepro ledger and return its re-run outcome with its qualifiers (such as a broad bound or a check that missed), how many agent-designated controls were excluded and how many gates the test had (when it has any), how many headline claims held, the assurance level, and links to the report and evidence. Matches arXiv IDs, DOIs, URLs, titles, short names and aliases. With no exact match it returns close matches when there are any, and says the paper is not in the ledger only when there are none.
arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm)
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http ledger https://mcp.openrepro.org/mcp
Look up one paper in the OpenRepro ledger and return its re-run outcome with its qualifiers (such as a broad bound or a check that missed), how many agent-designated controls were excluded and how many gates the test had (when it has any), how many headline claims held, the assurance level, and links to the report and evidence. Matches arXiv IDs, DOIs, URLs, titles, short names and aliases. With no exact match it returns close matches when there are any, and says the paper is not in the ledger only when there are none.
| Argument | Type | Description |
|---|---|---|
| paper* | string | arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm) |
{
"type": "object",
"required": [
"paper"
],
"properties": {
"paper": {
"type": "string",
"description": "arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm)"
}
},
"additionalProperties": false
}The full public record for one paper: outcome and qualifiers, summary, assurance, the attempt history (released and superseded versions with reasons), every claim checked with the published value, the re-run value, the registered tolerance, the check kind and the verdict, plus evidence links.
| Argument | Type | Description |
|---|---|---|
| paper* | string | arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm) |
{
"type": "object",
"required": [
"paper"
],
"properties": {
"paper": {
"type": "string",
"description": "arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm)"
}
},
"additionalProperties": false
}The log's final hash, the downloadable evidence bundle, the report's SHA-256 from the release manifest, and the one command that checks the bundle with only Python. The verifier checks log and artifact integrity and that the report names the log's head hash; it does not check the report's contents against the log.
| Argument | Type | Description |
|---|---|---|
| paper* | string | arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm) |
{
"type": "object",
"required": [
"paper"
],
"properties": {
"paper": {
"type": "string",
"description": "arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm)"
}
},
"additionalProperties": false
}For a paper not yet in the ledger: returns a ready-to-send email link to OpenRepro with the request filled in. Nothing is sent or stored by this tool; the user sends the email if they want to.
| Argument | Type | Description |
|---|---|---|
| why | string | optional: why this paper matters to the requester |
| paper* | string | arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm) |
{
"type": "object",
"required": [
"paper"
],
"properties": {
"why": {
"type": "string",
"description": "optional: why this paper matters to the requester"
},
"paper": {
"type": "string",
"description": "arXiv ID (1607.01759), DOI (10.1126/science.abb9789), an arXiv/doi.org/openrepro.org URL, the paper's title, or a name it is known by (fastText, PINNs, the Leiden algorithm)"
}
},
"additionalProperties": false
}Search published re-runs by words in the title, authors, venue or field, optionally filtered by outcome or field. With no query, lists the whole ledger.
| Argument | Type | Description |
|---|---|---|
| field | string | e.g. Machine learning, Economics, Epidemiology |
| limit | integer | |
| query | string | words to match; leave empty to list everything |
| outcome | string | inconclusive: a registered validity/precision condition (a gate) was not satisfied, so no outcome is given; evidence_incomplete: OpenRepro's own evidence failed; abandoned: an attempt finalized during setup with no result, which only ever appears as an earlier version in a report's attempt history, so it matches no paper. None of these is a finding about the paper. |
{
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "e.g. Machine learning, Economics, Epidemiology"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"description": "words to match; leave empty to list everything"
},
"outcome": {
"enum": [
"reproduced",
"reproduced_with_earlier_code",
"partially_reproduced",
"not_reproduced",
"evidence_incomplete",
"inconclusive",
"not_attemptable",
"abandoned"
],
"type": "string",
"description": "inconclusive: a registered validity/precision condition (a gate) was not satisfied, so no outcome is given; evidence_incomplete: OpenRepro's own evidence failed; abandoned: an attempt finalized during setup with no result, which only ever appears as an earlier version in a report's attempt history, so it matches no paper. None of these is a finding about the paper."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.