Skip to main content

Paper-Research-MCP

Federated academic research retrieval over MCP — 31 connectors, 36 tools, one standardized result schema. Now with ProofWiki + a companion skill for math research (skills/math-research).

Python MCP Connectors Tools License: MIT

🇮🇩 Versi Bahasa Indonesia · 📦 Source code: github.com/DranxX/Paper-Research-MCP


📜 What is Paper-Research-MCP?

A brand-new MCP server for academic paper search, distilled from the expansion plan in Collection/Markdown/Refer/Reference.md — absorbed while curating three upstream collections plus that additional reference, to make agent-side research broader, not just deeper.

It implements the document's core design rule: don't flatten every source into one search_papers(). Each source is its own connector with its own tools (discovery, conference review, paper↔code mapping, metadata resolution, OA resolution), and a federation layer on top handles cross-source search, deduplication, and provenance.

  • 🔓 Free-first — everything runs without an API key; premium connectors are registered but dormant until you set their env vars
  • 🧵 Federated — cross-source search with DOI → title dedup and alsoIn/matchedQueries provenance
  • 📅 Date-bounded — year_from/year_to passed natively to APIs that support it, universal post-filter for the rest
  • 📦 uv-packaged — Python ≥ 3.10, deps only mcp + httpx
  • 🟢 Honest failures — bot-walls and rate limits return structured envelopes with manual-fallback suggestions, never silent lies

📦 Install

Requires: Python ≥ 3.10 and uv. Deps: mcp + httpx.

Local checkout — point your MCP client at the folder:

// ZCode / Claude Desktop / Cursor / any MCP client
{
  "mcpServers": {
    "paper-research": {
      "command": "uv",
      "args": ["--directory", "<path>/Paper-Research-MCP", "run", "paper-research-mcp"],
      "env": { "S2_API_KEY": "", "ADS_TOKEN": "", "SCOPUS_API_KEY": "" }
    }
  }
}

Published on PyPI — after release (see 🚀 Publishing below) it becomes one line:

{ "mcpServers": { "paper-research": { "command": "uvx", "args": ["paper-research-mcp"] } } }

🔑 Optional API keys

All free connectors work without any key. Premium connectors stay dormant until their env var is set (see .env.example):

Env var Connector Note
S2_API_KEY Semantic Scholar removes the 429 rate limit
OPENALEX_API_KEY OpenAlex dedicated daily budget
ADS_TOKEN NASA ADS free for researchers
ALPHAXIV_API_KEY AlphaXiv or add their official MCP directly
SCOPUS_API_KEY Scopus needs institutional entitlement
LENS_TOKEN / DIMENSIONS_TOKEN / WOS_API_KEY Lens / Dimensions / WoS subscription-based
BAIDU_API_KEY / AMINER_API_KEY / CSTR_CLIENT_ID+CSTR_SECRET Baidu / AMiner / CSTR China platforms

🌐 Connectors

Category Sources
FREE (default on) OpenAlex · Crossref · arXiv · DOAJ · OpenReview · INSPIRE-HEP · ERIC · Unpaywall · ORCID · NSSD (China SSH) · ScienceDB
FREE, bot-wall/rate-limited (default on, honest errors) Semantic Scholar · Papers with Code · Google Scholar · Baidu Scholar · GARUDA · SINTA · OneSearch · RAMA · Moraref · Neliti · BRIN · ProofWiki (math proofs)
API KEY (dormant until env set) NASA ADS · AlphaXiv · Scopus · The Lens · Dimensions · Web of Science · AMiner · CSTR

🇮🇩 The indonesia_research block follows the Reference.md warning: these platforms have no official APIs — they are best-effort scrapers with truthful failure envelopes.

🛠 Tools

36 tools are auto-discovered by any MCP client via tools/list — no configuration needed. Three entry points worth knowing:

  • search_papers — federated search; supports single query or parallel queries: ["k1","k2"], date bounds year_from/year_to, source selection, dedup by DOI → title, and provenance (alsoIn + matchedQueries)
  • list_sources — every connector with its access category and env status

Math sources: proofwiki_search / proofwiki_get (ProofWiki — definitions, theorems, complete proofs; Cloudflare best-effort with honest blocked envelopes).

Full per-source tools (e.g. openalex_search, openreview_notes, garuda_search) are listed by your client automatically after connecting.

🧩 Skills

skills/math-research/ — a companion agent skill (SKILL.md router + workflows/ + references/) for mathematical research: theorem hunting (check existing results via ProofWiki before reproving), step-by-step proof verification with a rigor checklist, counterexample hunting, literature scans, and numeric sanity checks. It uses this MCP's tools when connected and falls back to manual search when not — see skills/README.md for the one-command install (copy the folder into your agent's skills directory).

🏗 Architecture

pyproject.toml                      ← uv package ([project.scripts] paper-research-mcp)
└── src/paper_research_mcp/
    ├── server.py                   ← MCP stdio entry (official `mcp` SDK, lowlevel Server)
    ├── registry.py                 ← 30 connectors, auth-gating, universal year post-filter
    ├── federation.py               ← search_papers: queries×sources parallel (pool 8), dedup, provenance
    ├── core.py                     ← httpx w/ timeout, standardized item schema, envelopes, year filter
    └── sources/
        ├── free.py        (11)  OpenAlex Crossref arXiv DOAJ S2 OpenReview INSPIRE ERIC Unpaywall ORCID PwC
        ├── indonesia.py    (8)  GARUDA SINTA OneSearch RAMA Moraref Neliti BRIN Google Scholar
        ├── china.py        (5)  NSSD Baidu Scholar AMiner ScienceDB CSTR
        ├── premium.py      (6)  ADS AlphaXiv Scopus Lens Dimensions WoS
        └── proofwiki.py    (1)  ProofWiki search/get (MediaWiki API, CC BY-SA)

🧪 Testing

uv run python tests/e2e_all_tools.py

Live suite with 38 checks: all 36 tools one by one (envelope-shape validation + per-category status expectations), all three federation modes, year-filter leak checks, and the MCP stdio handshake in a subprocess. Scraper sources returning blocked count as PASS — the envelope is the contract, not the network mood. Last run: 38/38 PASS.

🚀 Publishing

# 1. Create a PyPI account → Account Settings → API token
# 2. Dry-run against TestPyPI (optional):
uv publish --publish-url https://test.pypi.org/legacy/ --token pypi-XXXXXXXX
# 3. Release:
uv build
uv publish --token pypi-XXXXXXXX
# 4. Anyone can now run it:
uvx paper-research-mcp

📄 License

MIT. Source of the connector plan: Collection/Markdown/Refer/Reference.md (paper-search-mcp ecosystem + indonesia_research + China platforms + premium connectors).

Metadata

Release files for paper-research-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for paper-research-mcp 0.1.2
File Size Uploaded Provenance Actions
paper_research_mcp-0.1.2.tar.gz 114.2 kB Without provenance Details for paper_research_mcp-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for paper-research-mcp 0.1.2
File Interpreter ABI Platform Actions
paper_research_mcp-0.1.2-py3-none-any.whl Python 3 none any Details for paper_research_mcp-0.1.2-py3-none-any.whl

Total release size: 148.1 kB

Release files / paper_research_mcp-0.1.2.tar.gz

Download URL paper_research_mcp-0.1.2.tar.gz
Size 114.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f82569ce066299380357adb18fe99df6921e9cb596b144e5bb2c15f4317d5aa3
BLAKE2b-256 checksum
How to use checksums
2a7eefaed3ff279565aecd0c1f7fd2d029abe24036f7070f669d4038d4764bb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / paper_research_mcp-0.1.2-py3-none-any.whl

Download URL paper_research_mcp-0.1.2-py3-none-any.whl
Size 33.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
021ce6a6b10e25f617a696b05ec0d4aee7f78bfc702f500d76e7154309250893
BLAKE2b-256 checksum
How to use checksums
5533b15f565f43eca388b7cb4e48245cea610356ae869c6fa4cf023a98c371df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for paper-research-mcp 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page