scholar-toolkit-mcp
The scholar-toolkit-mcp server is a comprehensive academic research toolkit for searching, downloading, reading, and managing papers across 20+ platforms, plus manuscript processing and reference management.
Multi-Source Paper Search: Unified search (
search_papers) across 20+ platforms simultaneously with deduplication — including arXiv, PubMed, bioRxiv, medRxiv, Semantic Scholar, Crossref, OpenAlex, PMC, CORE, Europe PMC, dblp, OpenAIRE, CiteSeerX, DOAJ, BASE, Zenodo, HAL, SSRN, and Unpaywall. Individual source-specific search functions are also available, with filtering by year, sort order, and other parameters.Paper Download: Direct PDF downloads from supported platforms (arXiv, bioRxiv, medRxiv, IACR, Semantic Scholar, PMC, CORE, Zenodo, HAL, etc.), plus a robust
download_with_fallbackchain that tries source-native links → OA repositories → Unpaywall → optional Sci-Hub.Paper Reading (Text Extraction): Extract full text from papers for supported sources (arXiv, bioRxiv, medRxiv, IACR, Semantic Scholar, CORE, Europe PMC, Zenodo, HAL, CiteSeerX, DOAJ, BASE, OpenAIRE).
Manuscript Processing: Process Markdown files with citation placeholders (
[@doi:...],[@pmid:...],[@arxiv:...],[@title:...]) to produce numbered Markdown, BibTeX (refs.bib), RIS (refs.ris), and optionally Word documents (.docxvia pandoc). Supports citation styles: GB/T 7714-2015, APA 7th, IEEE, Vancouver, and Harvard.Paper Metadata & Reference Export: Fetch detailed metadata by DOI, PMID, or arXiv ID (
get_paper_metadata), and export reference lists in BibTeX, RIS, or plain text formats.Search Cache Management: Search results are automatically cached in
.paper_cache/with a configurable TTL (default: 24 hours). Usecache_listto inspect andcache_clearto purge cached results.
Allows searching and downloading papers from arXiv, a preprint repository for scientific articles.
Allows searching papers from dblp, a computer science bibliography.
Allows searching for academic papers and discovering DOIs via Google Scholar.
Allows searching papers from HAL, an open-access archive for scientific documents.
Enables export of references in RIS format compatible with Mendeley reference manager.
Allows searching and retrieving paper metadata from PubMed, a biomedical literature database.
Allows searching papers via Semantic Scholar with metadata enrichment.
Allows searching papers from SSRN, a repository for social science and humanities preprints.
Allows searching papers from Zenodo, a general-purpose open-access repository.
Enables export of references in RIS and BibTeX formats for import into Zotero.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@scholar-toolkit-mcp search for papers on federated learning from arxiv"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
English | 中文
Paper Toolkit MCP
A comprehensive MCP toolkit for academic paper searching, manuscript processing, and citation management.
Features
Paper Search & Download
Multi-source search: arXiv, Semantic Scholar, PubMed, Crossref, OpenAlex, PMC, medRxiv, DBLP, Europe PMC, OpenAIRE, SSRN, IEEE, ACM
PDF download with automatic fallback (Unpaywall → OA repositories → Sci-Hub)
Text extraction from PDFs
Reference Management
SQLite-based local library
BibTeX/RIS export
Citation key generation
Author name auto-normalization (Surname, Given format)
Manuscript Processing
Markdown citation placeholder replacement & reference list generation
Human review copy generation (cite_key → Author(Year) DOI)
Multiple citation styles: GB/T 7714-2015, APA 7th, IEEE
Writing templates
Manuscript Harness
30 automated verification rules (R0-R9) with local/global scope
Chinese language enforcement
Citation format validation
Word count checking
Writing/final mode switching (chapter/draft/final)
Citation Verification
Multi-model LLM scoring for citation accuracy
Incremental caching to avoid re-verification
Single-citation and full-manuscript batch verification
Related MCP server: Academic Paper MCP HTTP/SSE Server
Quick Start
Installation
pip install paper-toolkit-mcpMCP Configuration
Add to your MCP client config:
{
"mcpServers": {
"paper-toolkit-mcp": {
"command": "paper-toolkit-mcp",
"env": {
"paper_toolkit_mcp_WORK_DIR": "/path/to/your/project"
}
}
}
}Note: Set
paper_toolkit_mcp_WORK_DIRto your project directory so thatpapers.db, downloads, and cache are stored there.
API Keys (Optional)
All sources work without API keys. Optional keys improve rate limits:
# Copy example and fill in available keys
cp .env.example .envSee .env.example for all available keys.
MCP Tools
Search & Download
Tool | Description |
| Multi-source search (supports groups: medical/cs/metadata) |
| Get paper metadata by DOI (CrossRef + Semantic Scholar fallback) |
| Download PDF (source-native → OA repos → Unpaywall → Sci-Hub) |
| Download by citation key |
| Download and extract PDF text |
Library Management
Tool | Description |
| Search local library |
| Get library statistics |
| Clear search cache |
Manuscript Processing
Tool | Description |
| Process Markdown manuscript, replace citation placeholders & generate outputs |
| Get full metadata for a single paper |
| Batch export references (BibTeX/RIS/text) |
| Get writing template |
| Generate reference list from manuscript cite_keys |
| Generate human review copy (cite_key → Author(Year) DOI) |
Manuscript Harness
Tool | Description |
| Initialize harness infrastructure |
| Verify manuscript against rules |
| List all rules (with scope and draft_skip markers) |
Citation Verification
Tool | Description |
| Verify a single citation (multi-model LLM scoring) |
| Batch verify all citations in a manuscript |
| Check verifier configuration & model connectivity |
Harness Rules
Rule | Category | Scope | Description |
R0 | Language | local | Chinese language enforcement |
R1 | Structure | local | Heading hierarchy, heading length, no lists/bold |
R2 | Data | local/global | P-value, mean±SD, statistics, data consistency |
R3 | Sections | global | Required chapters (intro/methods/results/discussion/conclusion) |
R4 | Terminology | local | Abbreviation consistency, humble phrasing |
R5 | Citations | local/global | cite_key format, density, total reference count |
R6 | Position | local | Citation placement, multi-citation format |
R7 | AI Trace | local | No colon in headings, no self-praise/back-reference, user comments |
R8 | Word Count | local/global | 3000-8000 words total, paragraph length, abstract length |
R9 | Tables/Figures | local/global | Three-line table, 300dpi, figure numbering |
Scope:
localrules can be checked by sub-agents on individual chapters;globalrules require the full merged manuscript. In draft mode, abstract word count (R8.3) and total reference count (R5.4) are automatically skipped.
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check paper_toolkit_mcp tests
# Type check
mypy paper_toolkit_mcpLicense
MIT
Links
Available Tools
11 toolscache_clearA
Clear all cached search results.
Returns: Dict with number of cleared entries.
Inputs: no named parameters. Returns: object
download_by_cite_keyA
Download a paper's PDF using its cite_key.
Looks up the paper in the local library by cite_key, checks for an existing local PDF, then falls back to download_paper.
Args: cite_key: The paper's cite_key (e.g. 'Kxq') from search results. save_path: Directory to save the PDF (default: <WORK_DIR>/downloads). Returns: Path to the downloaded PDF, or an error message.
Inputs: cite_key (required), save_path. Returns: result
download_paperA
Try source-native download, OA repositories, Unpaywall, then optional Sci-Hub.
Args: source: Source name (arxiv, medrxiv, semantic, crossref, pubmed, pmc, dblp, openalex). paper_id: Source-native paper identifier. doi: Optional DOI used for repository/unpaywall/Sci-Hub fallback. title: Optional title used for repository/Sci-Hub fallback when DOI is unavailable. save_path: Directory to save downloaded files. use_scihub: Whether to fallback to Sci-Hub after OA attempts fail. scihub_base_url: Sci-Hub mirror URL for fallback. Returns: Download path on success or explanatory error message.
Inputs: source (required), paper_id (required), doi, title, +3 more. Returns: result
get_paper_by_doiA
Get paper metadata by DOI with multi-source fallback.
Tries CrossRef first (richest metadata), then Semantic Scholar (best abstract coverage) to backfill missing abstract. Only saves to local library when an abstract is available.
Args: doi: Digital Object Identifier (e.g., '10.1038/nature12373'). Returns: Paper metadata dict. Empty dict if not found at all.
Inputs: doi (required).
harness_initA
Initialize harness infrastructure for academic paper writing.
Creates the following structure in the project directory:
CLAUDE.md: Project map for AI Agent (in project root)
.harness/: Harness directory containing:
rules.md: Writing rules (R0-R9)
verify.py: Automated verification script
checks/: Verification rule implementations
specs/manuscript-spec.yaml: Configurable standards
checklist.md: Manual review checklist
Harness.md: Usage guide
Args: project_dir: Target project directory path. Defaults to current working directory. force: If True, overwrite existing .harness/ directory. Defaults to False.
Returns: JSON string with initialization status and next steps.
Inputs: force, project_dir. Returns: result
harness_list_rulesA
List all harness rules with their descriptions.
Returns a summary of all verification rules (R0-R9) including rule ID, name, severity, and brief description.
Returns: JSON string with list of all rules.
Inputs: no named parameters. Returns: result
harness_verifyA
Verify a manuscript against harness rules.
Runs the harness verification script on the specified manuscript file and returns a JSON report of violations, warnings, and info messages.
Args: manuscript_path: Path to the manuscript markdown file. verbose: If True, include detailed violation information. Defaults to False.
Returns: JSON string with verification results including error count, warning count, and detailed violation information.
Inputs: manuscript_path (required), verbose. Returns: result
library_searchA
Search the local paper library (SQLite) by keyword.
Searches across title, authors, and abstract of all previously fetched papers. This is an offline operation — no network calls are made.
Args: keyword: Search keyword (matched against title/authors/abstract). limit: Maximum number of results to return (default: 50). Returns: List of matching paper records from the local library.
Inputs: keyword (required), limit. Returns: result
library_statsA
Get statistics about the local paper library.
Returns: Dict with total paper count, counts by source, PDF/fulltext coverage, and the database file path.
Inputs: no named parameters. Returns: object
read_by_cite_keyA
Download and extract full text from a paper using its cite_key.
Checks for cached full text first, then downloads the PDF and extracts text via pypdf. The extracted text is cached in the local library.
Args: cite_key: The paper's cite_key (e.g. 'Kxq') from search results. save_path: Directory for PDF download (default: <WORK_DIR>/downloads). Returns: The extracted text content, or an error message.
Inputs: cite_key (required), save_path. Returns: result
search_papersA
Unified top-level search across all configured academic platforms.
Returns only cite_key + title + abstract + year + source for each paper. Papers without abstract are discarded. Defaults to last 5 years.
Args: query: Search query string. max_results_per_source: Max results to fetch from each selected source. sources: Source names, preset group, or 'all'. Groups: medical (pubmed,pmc,medrxiv), cs (arxiv,dblp,semantic), metadata (crossref,openalex). Or comma-separated individual names. year_from: Earliest publication year (default: current year - 5). Pass 0 to disable year filtering. year_to: Latest publication year (default: none). Returns: Aggregated dict with per-source stats, errors, and simplified papers.
Inputs: query (required), sources, year_to, year_from, +1 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool serves a clearly distinct purpose: searching, metadata retrieval, downloading, reading, local library management, and manuscript verification. Overlaps like download_by_cite_key and download_paper have different input methods (cite_key vs source+id), making them unambiguous.
All tools follow a consistent verb_noun pattern in snake_case. The harness tools share a uniform prefix, while the rest use clear action nouns (e.g., download_paper, library_search). No mixing of conventions.
With 11 tools, the set is well-scoped for an academic paper toolkit covering search, retrieval, local library, and manuscript verification. Neither sparse nor bloated.
Core workflows (search, metadata, download, read, local library) are covered. Minor gaps include no manual paper addition, no library entry editing/deletion, and no citation export, but these are not critical for typical usage.
Maintenance
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
Multi-engine scholarly research server for search, traversal, full text, and reading lists.
Related MCP Servers
- AlicenseAqualityDmaintenanceUnified academic search MCP server that searches open literature (arXiv, bioRxiv, medRxiv, PMC), CNKI, and Web of Science, with browser-backed authentication, local paper library, and export to multiple formats.212MIT
- AlicenseNot gradedqualityDmaintenanceA MCP server for academic literature retrieval, aggregating multiple data sources like arXiv, Crossref, OpenAlex, PubMed, and Semantic Scholar to provide search, details, citations, trends, and recommendations.4MIT
- AlicenseAqualityDmaintenanceAcademic paper search and retrieval MCP server integrating multiple scholarly platforms into a unified interface. Supports search, fetch, trend analysis, and literature review workflows.852 npm4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for academic research combining local document search with Semantic Scholar API integration.MIT