Scientific Paper Harvester

by benedict2310

268 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server that provides LLMs with real-time access to scientific papers from arXiv and OpenAlex.

Details

Author
benedict2310
Downloads
268
Categories
Search, Other, Knowledge Base, Web Scraping

Harvests scientific papers from arXiv and OpenAlex, providing real-time access to metadata and full text.

A comprehensive Model Context Protocol (MCP) server that provides LLMs with real-time access to scientific papers from6 major academic sources: arXiv, OpenAlex, PMC (PubMed Central), Europe PMC, bioRxiv/medRxiv, and CORE.

- arXiv: Computer science, physics, mathematics preprints and papers
- OpenAlex: Open catalog of scholarly papers with citation data
- PMC: PubMed Central biomedical and life science literature
- Europe PMC: European life science literature database
- bioRxiv/medRxiv: Biology and medical preprint servers
- CORE: World's largest collection of open access research papers

- Paper Fetching: Get latest papers from any source by category/concept
- Paper Search: Search papers by title, abstract, author, or full-text across 4 major sources
- Full-Text Extraction: Extract complete text content with intelligent fallback strategies
- Citation Analysis: Find top cited papers from OpenAlex since a specific date
- Paper Lookup: Retrieve full metadata for specific papers by ID
- Category Discovery: Browse available categories from all sources
- Smart Rate Limiting: Respectful API usage with per-source rate limiting
- DOI Resolution: Advanced DOI resolver with Unpaywall → Crossref → Semantic Scholar fallback
- Dual Interface: Both MCP protocol and CLI access
- TypeScript: Full type safety with ESM modules

- Total Sources: 6 academic databases
- Category Coverage: 100+ categories across all disciplines
- Paper Access: 200M+ papers with intelligent text extraction
- Text Extraction Success: >90% for supported paper types
- Response Time: <15 seconds average for paper fetching

To use this server with an MCP client (like Claude Desktop), add the following to your MCP client configuration:

For published package (available on npm):

Option 1: Using npx (recommended for AI tools like Claude)

{ "mcpServers": { "scientific-papers": { "command": "npx", "args": [ "-y", "@futurelab-studio/latest-science-mcp@latest" ] } } }
npm install -g @futurelab-studio/latest-science-mcp
{ "mcpServers": { "scientific-papers": { "command": "latest-science-mcp" } } }
# List arXiv categories node dist/cli.js list-categories --source=arxiv # List OpenAlex concepts node dist/cli.js list-categories --source=openalex # List PMC biomedical categories node dist/cli.js list-categories --source=pmc # List Europe PMC life science categories node dist/cli.js list-categories --source=europepmc # List bioRxiv/medRxiv categories (includes both servers) node dist/cli.js list-categories --source=biorxiv # List CORE academic categories node dist/cli.js list-categories --source=core
# Get latest AI papers from arXiv node dist/cli.js fetch-latest --source=arxiv --category=cs.AI --count=10 # Get latest biology papers from bioRxiv node dist/cli.js fetch-latest --source=biorxiv --category="biorxiv:biology" --count=5 # Get latest immunology papers from PMC node dist/cli.js fetch-latest --source=pmc --category=immunology --count=3 # Get latest papers from CORE by subject node dist/cli.js fetch-latest --source=core --category=computer_science --count=5 # Search by concept name (OpenAlex) node dist/cli.js fetch-latest --source=openalex --category="machine learning" --count=3
# Get top 20 cited papers in machine learning since 2024 node dist/cli.js fetch-top-cited --concept="machine learning" --since=2024-01-01 --count=20 # Get top cited papers by concept ID node dist/cli.js fetch-top-cited --concept=C41008148 --since=2023-06-01 --count=10
# Search by keywords across all fields node dist/cli.js search-papers --source=arxiv --query="machine learning" --count=10 # Search by paper title node dist/cli.js search-papers --source=openalex --query="neural networks" --field=title --count=5 # Search by author name node dist/cli.js search-papers --source=europepmc --query="John Smith" --field=author --count=10 # Search full-text content sorted by citations node dist/cli.js search-papers --source=core --query="climate change" --field=fulltext --sortBy=citations --count=20
# Get arXiv paper by ID node dist/cli.js fetch-content --source=arxiv --id=2401.12345 # Get bioRxiv paper by DOI node dist/cli.js fetch-content --source=biorxiv --id="10.1101/2021.01.01.425001" # Get PMC paper by ID node dist/cli.js fetch-content --source=pmc --id=PMC8245678 # Get CORE paper by ID node dist/cli.js fetch-content --source=core --id=12345678 # Show text content with preview node dist/cli.js fetch-content --source=arxiv --id=2401.12345 --show-text --text-preview=500

Lists available categories/concepts from any data source.

- source:"arxiv"|"openalex"|"pmc"|"europepmc"|"biorxiv"|"core"

- Array of category objects withid,name, and optionaldescription

{ "name": "list_categories", "arguments": { "source": "biorxiv" } }

Fetches the latest papers from any source for a given category withmetadata only(no text extraction).

- source:"arxiv"|"openalex"|"pmc"|"europepmc"|"biorxiv"|"core"
- category: Category ID or concept name (varies by source)
- count: Number of papers to fetch (default: 50, max: 200)

- arXiv:"cs.AI","physics.gen-ph","math.CO"
- OpenAlex:"artificial intelligence","machine learning","C41008148"
- PMC:"immunology","genetics","neuroscience"
- Europe PMC:"biology","medicine","cancer"
- bioRxiv/medRxiv:"biorxiv:neuroscience","medrxiv:psychiatry"
- CORE:"computer_science","mathematics","physics"

- Array of paper objects with metadata (id, title, authors, date, pdf_url)
- Text field: Empty string (text: "") - usefetch_contentfor full text

Fetches the top cited papers from OpenAlex for a given concept since a specific date.

- concept: Concept name or OpenAlex concept ID
- since: Start date in YYYY-MM-DD format
- count: Number of papers to fetch (default: 50, max: 200)

Searches for papers across multiple academic sources with field-specific search and sorting options.

- source:"arxiv"|"openalex"|"europepmc"|"core"
- query: Search query string (max 1500 characters)
- field:"all"|"title"|"abstract"|"author"|"fulltext"(default: "all")
- count: Number of results to return (default: 50, max: 200)
- sortBy:"relevance"|"date"|"citations"(default: "relevance")

- arXiv: Title, abstract, author, and general search with Boolean operators
- OpenAlex: Advanced search with relevance scoring and citation sorting
- Europe PMC: Biomedical literature with MeSH terms and full-text search
- CORE: Global academic papers with advanced query language

- Keywords:"machine learning","climate change"
- Phrases:"artificial intelligence"(use quotes for exact phrases)
- Boolean:"deep learning AND neural networks"(arXiv supports this)
- Authors:"John Smith","Smith J"

- Array of paper objects with metadata (id, title, authors, date, pdf_url)
- Text field: Empty string (text: "") - usefetch_contentfor full text

Fetches full metadata and text content for a specific paper by ID withcomplete text extraction.

- source: Any of the 6 supported sources
- id: Paper ID (format varies by source)

- arXiv:"2401.12345","cs/0601001","1234.5678v2"
- OpenAlex:"W2741809807"or numeric2741809807
- PMC:"PMC8245678"or"12345678"
- Europe PMC:"PMC8245678","12345678", or DOI
- bioRxiv/medRxiv:"10.1101/2021.01.01.425001"or"2021.01.01.425001"
- CORE: Numeric ID like"12345678"

All tools return paper objects with the following structure:

{ id: string; // Paper ID title: string; // Paper title authors: string[]; // List of author names date: string; // Publication date (ISO format) pdf_url?: string; // PDF URL (if available) text: string; // Extracted full text content textTruncated?: boolean; // Warning: text was truncated due to size limits textExtractionFailed?: boolean; // Warning: text extraction failed }

Each source has specialized text extraction approaches:

- arXiv: HTML fromarxiv.org/htmlwithar5iv.labs.arxiv.orgfallback
- OpenAlex: HTML sources with DOI resolver fallback chain
- PMC: E-utilities API with XML/HTML extraction
- Europe PMC: REST API with multiple URL strategies
- bioRxiv/medRxiv: Direct HTML extraction with abstract fallback
- CORE: PDF/HTML with source URL fallback

Advanced DOI resolver with multiple fallback strategies:
- Unpaywall→ Free full-text sources
- Crossref→ Publisher metadata and links
- Semantic Scholar Academic Graph→ Alternative access

- Text Extraction Success: >90% for HTML-available papers
- Graceful Degradation: Always returns metadata even if text extraction fails
- Size Management: 6MB text limit with intelligent truncation
- Caching: 24-hour LRU cache for DOI resolution

Respectful API usage with per-source rate limiting:

- arXiv: 5 requests per minute
- OpenAlex: 10 requests per minute
- PMC: 3 requests per second
- Europe PMC: 10 requests per minute
- bioRxiv/medRxiv: 5 requests per minute
- CORE: 10 requests per minute (public), higher with API key

For enhanced CORE access, set environment variable:

export CORE_API_KEY="your-api-key"
# Run all tests npm test # Run integration tests npm run test -- tests/integration # Run end-to-end workflow tests npm run test -- tests/e2e # Run performance benchmarks npm run test -- tests/integration/performance.test.ts

- Integration Tests: All 6 sources tested end-to-end
- Performance Tests: Response time and throughput benchmarks
- Workflow Tests: Real research scenarios across multiple sources
- Unit Tests: Core components and edge cases

- Clean separation between sources
- Consistent interface across all drivers
- Specialized text extraction per source

- DOI Resolution: Multi-provider fallback chain
- Rate Limiting: Token bucket algorithm per source
- Text Processing: HTML cleaning and normalization
- Error Handling: Structured responses with actionable suggestions
- Caching: Intelligent caching for DOI resolution

- TypeScript + ESM: Modern JavaScript with full type safety
- Modular Design: Clean separation of concerns
- Graceful Degradation: Always functional even with partial failures
- Response Size Management: Automatic truncation and warnings

# Test specific sources node dist/cli.js list-categories --source=arxiv node dist/cli.js fetch-latest --source=biorxiv --category="biorxiv:biology" --count=3 node dist/cli.js fetch-content --source=core --id=12345678 # Test search functionality node dist/cli.js search-papers --source=arxiv --query="artificial intelligence" --count=5 node dist/cli.js search-papers --source=openalex --query="quantum computing" --field=title --count=3
# Run performance benchmarks npm run test -- tests/integration/performance.test.ts # Test memory usage npm run test -- --reporter=verbose

Comprehensive error handling for all sources:

- Invalid paper IDs with format suggestions
- Rate limiting with retry-after information
- API timeouts and server errors
- Missing authentication (CORE API key)
- Network connectivity issues
- Text extraction failures with fallback strategies

- Rate limiting: Automatic retry with exponential backoff
- Missing papers: Try alternative sources for the same content
- Text extraction failures: Fallback to abstract or metadata
- CORE API limits: SetCORE_API_KEYenvironment variable

- Use appropriatecountparameters (smaller for faster responses)
- Cache results when possible
- Usefetch_latestfor discovery,fetch_contentfor detailed reading

Ready to explore the world's scientific knowledge? Start with any of the 6 sources and discover papers across all academic disciplines!🔬📚

Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.

An MCP server for searching Google Scholar, built for AI assistants and automation workflows that need papers, authors, citations, and BibTeX entries.

Search for scientific publications across ArXiv, ACL Anthology, HuggingFace Datasets, and Semantic Scholar.

Research papers from arXiv, Google Scholar, and Wikipedia with citation metrics

A flexible service for searching and analyzing academic papers on arXiv.

Search scientific papers from any MCP tool. Raw experimental data from full-text papers — methods, results, quality scores. 50 free searches, then $0.01/result.

Search and access academic paper metadata from Crossref.

Query Erick Wendel's contributions, including talks, blog posts, and videos, using natural language.

Model Context Protocol server for searchable, citation-safe hadith text.

Search and cite exact passages across complete classical and world-literature corpora.

Anonymous, read-only, source-backed Buddhist scripture search, passage guidance, explanation, and one-time practice planning through four production MCP tools.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.