| name | Academic Researcher |
| description | Academic paper search across 14+ scholarly platforms including arXiv, PubMed, Google Scholar, Web of Science, Semantic Scholar, Sci-Hub, and more. Use for literature review, research discovery, and citation management. |
Academic Researcher
What This Skill Does
Provides unified access to 14 academic platforms through a single MCP interface. Enables searching, retrieving, and analyzing scholarly papers with standardized data models and security features. Powered by paper-search-mcp-nodejs v0.2.5.
Supported Platforms
| Platform | Search | Fetch | Advanced | Rate Limit |
|---|---|---|---|---|
| arXiv | ✅ | ✅ | Query syntax | 3 req/s |
| Web of Science | ✅ | ✅ | WQL support | API key required |
| PubMed | ✅ | ✅ | Boolean ops | 3 req/s |
| Google Scholar | ✅ | ❌ | Auto-retry | IP-based |
| Semantic Scholar | ✅ | ✅ | GraphQL | 100 req/5min |
| Sci-Hub | ❌ | ✅ | Mirror mgmt | Legal caution ⚠️ |
| ScienceDirect | ✅ | ✅ | Facets | API key required |
| Springer Nature | ✅ | ✅ | Dual API | API key required |
| Wiley | ✅ | ✅ | Full metadata | API key required |
| Scopus | ✅ | ✅ | Advanced | API key required |
| Crossref | ✅ | ✅ | Works API | Open access |
| bioRxiv | ✅ | ✅ | Pre-prints | Open access |
| medRxiv | ✅ | ✅ | Medical pre-prints | Open access |
| IACR ePrint | ✅ | ✅ | Cryptography | Open access |
Prerequisites
- Node.js 18+
- Globally installed:
npm install -g paper-search-mcp-nodejs - API keys for premium platforms (optional)
Quick Start
Add to Claude Code (MCP Integration)
# The package is already globally installed via:
# npm install -g paper-search-mcp-nodejs
# Add MCP server to Claude Code
claude mcp add paper-search npx paper-search-mcp-nodejs
# Verify installation
npx paper-search-mcp-nodejs --version # Should show v0.2.5
Configure API Keys
Create .env file in your working directory:
# Optional: Premium platform API keys
WOS_API_KEY=your_web_of_science_key
PUBMED_API_KEY=your_pubmed_key
SCIENCEDIRECT_API_KEY=your_elsevier_key
SPRINGER_API_KEY=your_springer_key
WILEY_API_KEY=your_wiley_key
SCOPUS_API_KEY=your_scopus_key
# Optional: Sci-Hub mirror override
SCIHUB_MIRROR=https://sci-hub.se
Available MCP Tools (17 Total)
Universal Search Tools
1. search_papers
Search across any supported platform with unified interface.
// Example: Search arXiv
{
"platform": "arxiv",
"query": "quantum computing",
"maxResults": 10
}
// Example: Search PubMed with filters
{
"platform": "pubmed",
"query": "CRISPR gene editing",
"filters": {
"year": "2024",
"species": "human"
},
"maxResults": 20
}
// Example: Web of Science advanced search
{
"platform": "wos",
"query": "TS=(machine learning) AND PY=(2023-2024)",
"filters": {
"documentType": "article"
}
}
2. fetch_paper
Retrieve full paper metadata or PDF by identifier.
// By DOI
{
"doi": "10.1038/s41586-019-1666-5",
"platform": "crossref"
}
// By arXiv ID
{
"arxivId": "2301.07041",
"platform": "arxiv"
}
// By PubMed ID
{
"pmid": "12345678",
"platform": "pubmed"
}
Platform-Specific Tools
3. search_arxiv
Advanced arXiv search with category filtering.
{
"query": "ti:transformer AND cat:cs.LG",
"maxResults": 50,
"sortBy": "submittedDate",
"sortOrder": "descending"
}
4. search_pubmed
PubMed/MEDLINE search with MeSH terms.
{
"query": "(cancer[MeSH]) AND (immunotherapy[Title])",
"filters": {
"publicationType": "Clinical Trial",
"minDate": "2020/01/01",
"maxDate": "2024/12/31"
}
}
5. search_google_scholar
Google Scholar search with citation data.
{
"query": "deep learning natural language processing",
"filters": {
"yearLow": 2020,
"yearHigh": 2024
}
}
⚠️ Rate Limit Warning: Google Scholar enforces strict IP-based limits. Use sparingly.
6. search_semantic_scholar
Semantic Scholar with citation graphs.
{
"query": "attention is all you need",
"fields": ["title", "authors", "citationCount", "influentialCitationCount"],
"limit": 100
}
7. search_wos (Web of Science)
Advanced WoS search with citation analytics.
{
"query": "TS=(climate change) AND CU=(China)",
"filters": {
"databaseId": "WOS",
"timespan": "2020-2024"
}
}
8. search_sciencedirect
Elsevier ScienceDirect full-text search.
{
"query": "CRISPR Cas9",
"filters": {
"date": "2024",
"contentType": "Journal",
"openAccess": true
}
}
9. search_springer
Springer Nature search across journals and books.
{
"query": "quantum cryptography",
"filters": {
"subject": "Physics",
"year": "2024"
}
}
10. search_wiley
Wiley Online Library search.
{
"query": "protein folding",
"filters": {
"publicationYear": "2024"
}
}
11. search_scopus
Scopus citation database search.
{
"query": "TITLE-ABS-KEY(machine learning healthcare)",
"filters": {
"doctype": "ar", // Article
"pubyear": "2024"
}
}
12. search_crossref
Crossref DOI search and metadata.
{
"query": "neural networks",
"filters": {
"type": "journal-article",
"from-pub-date": "2024-01-01"
},
"rows": 100
}
13. search_biorxiv
bioRxiv preprint search (biology).
{
"query": "COVID-19 vaccine",
"filters": {
"category": "immunology"
}
}
14. search_medrxiv
medRxiv preprint search (medicine).
{
"query": "cancer therapy",
"maxResults": 50
}
15. search_iacr
IACR ePrint archive (cryptography).
{
"query": "zero knowledge proof",
"maxResults": 30
}
Utility Tools
16. fetch_scihub_pdf
Download PDF via Sci-Hub (legal caution required).
{
"doi": "10.1016/j.cell.2024.01.001"
}
⚠️ Legal Warning: Sci-Hub access may violate copyright laws in many jurisdictions. Use only for:
- Papers you have legal access to
- Fair use/educational purposes where permitted
- Jurisdictions where Sci-Hub is legal
17. get_paper_recommendations
Get citation-based paper recommendations.
{
"doi": "10.1038/nature12373",
"platform": "semantic_scholar",
"limit": 10
}
Security Features (v0.2.5)
1. DOI Validation
Automatic validation of DOI formats to prevent injection attacks.
2. Query Sanitization
SQL injection and command injection protection for all queries.
3. Sensitive Data Masking
API keys automatically masked in logs and error messages.
4. Rate Limiting
Built-in token bucket rate limiting for all platforms.
Common Workflows
Literature Review
// 1. Broad search across multiple platforms
await search_papers({
platform: "semantic_scholar",
query: "transformer models NLP",
maxResults: 100
});
// 2. Filter by citations
const highImpact = results.filter(p => p.citationCount > 100);
// 3. Get related papers
for (const paper of highImpact) {
await get_paper_recommendations({
doi: paper.doi,
limit: 5
});
}
Systematic Review
// Search across multiple databases
const platforms = ["pubmed", "wos", "scopus", "crossref"];
for (const platform of platforms) {
await search_papers({
platform,
query: "(systematic review) AND (machine learning diagnosis)",
filters: { year: "2020-2024" }
});
}
Citation Analysis
// Get paper with citations
const paper = await search_semantic_scholar({
query: "BERT: Pre-training of Deep Bidirectional Transformers",
fields: ["citationCount", "influentialCitationCount", "references", "citations"]
});
// Analyze citation network
console.log(`Total citations: ${paper.citationCount}`);
console.log(`Influential citations: ${paper.influentialCitationCount}`);
PDF Retrieval
// Try open access first
let pdf = await fetch_paper({
doi: "10.1038/nature12373",
platform: "crossref"
});
// Fallback to Sci-Hub if needed (legal caution)
if (!pdf.openAccess) {
pdf = await fetch_scihub_pdf({
doi: "10.1038/nature12373"
});
}
Platform-Specific Advanced Features
Springer Dual API Support
Springer supports both REST and GraphQL APIs:
// REST API (default)
await search_springer({
query: "quantum computing",
api: "rest"
});
// GraphQL API (more flexible)
await search_springer({
query: "quantum computing",
api: "graphql",
fields: ["title", "creators", "doi", "abstract"]
});
Web of Science Advanced Search (WQL)
// Topic + Author + Year
await search_wos({
query: "TS=(deep learning) AND AU=(LeCun) AND PY=(2015-2024)"
});
// Citation count filter
await search_wos({
query: "TS=(CRISPR) AND TC >= 100" // 100+ citations
});
Sci-Hub Mirror Management
// Check mirror status
const mirrors = [
"https://sci-hub.se",
"https://sci-hub.st",
"https://sci-hub.ru"
];
// Tool automatically tries mirrors in order
// Override via SCIHUB_MIRROR env variable
Rate Limits and Best Practices
| Platform | Limit | Recommendation |
|---|---|---|
| arXiv | 3 req/s | Batch queries, cache results |
| PubMed | 3 req/s | Use E-utilities efficiently |
| Google Scholar | IP-based | Minimize usage, add delays |
| Semantic Scholar | 100 req/5min | Use GraphQL for efficiency |
| Web of Science | API key dependent | Check your plan limits |
| Crossref | No strict limit | Be respectful, ~50 req/s max |
| Sci-Hub | Varies by mirror | Use sparingly, legal caution |
Best Practices:
- Cache results: Store search results locally to avoid re-querying
- Batch operations: Group related queries together
- Use filters: Narrow searches to reduce API calls
- Respect rate limits: Add delays between requests
- Check open access: Try open platforms before premium APIs
- API key management: Store keys in
.env, never commit to git
Data Model
All platforms return standardized Paper objects:
interface Paper {
// Identifiers
doi?: string;
arxivId?: string;
pmid?: string;
pmcid?: string;
// Core metadata
title: string;
authors: Author[];
abstract?: string;
// Publication info
journal?: string;
volume?: string;
issue?: string;
pages?: string;
year?: number;
publishedDate?: string;
// Access
pdfUrl?: string;
openAccess?: boolean;
// Metrics
citationCount?: number;
influentialCitationCount?: number;
// Platform-specific
platform: string;
sourceData?: Record<string, any>;
}
Error Handling
try {
const results = await search_papers({
platform: "arxiv",
query: "quantum computing"
});
} catch (error) {
if (error.code === 'RATE_LIMIT_EXCEEDED') {
// Wait and retry
await sleep(5000);
retry();
} else if (error.code === 'INVALID_API_KEY') {
// Check API key configuration
console.error('API key invalid or missing');
} else if (error.code === 'PLATFORM_UNAVAILABLE') {
// Try alternative platform
await search_papers({ platform: "crossref", query });
}
}
Troubleshooting
Issue: API key not recognized
# Check environment variables
echo $WOS_API_KEY
echo $PUBMED_API_KEY
# Verify .env file location (should be in working directory)
ls -la .env
# Test API key directly
curl -H "Authorization: Bearer $WOS_API_KEY" "https://api.clarivate.com/..."
Issue: Rate limit exceeded
# Add delays between requests
# Use batch operations
# Cache results locally
# Consider upgrading API plan
Issue: Google Scholar blocking
# Google Scholar is IP-sensitive:
# - Reduce request frequency
# - Use rotating proxies (if permitted)
# - Consider Semantic Scholar as alternative
# - Wait 24-48 hours if blocked
Issue: Sci-Hub mirror down
# Tool automatically tries multiple mirrors
# Override with specific mirror:
export SCIHUB_MIRROR=https://sci-hub.st
# Check mirror status manually
curl -I https://sci-hub.se
Issue: Empty results
# Check query syntax for platform
# Verify filters are not too restrictive
# Try broader search terms
# Check if platform is accessible (API key, network)
Compliance and Legal Notice
Sci-Hub Usage
⚠️ Important: Sci-Hub access may violate copyright laws in many countries. Use responsibly:
- Only for papers you have legal access to
- Educational/fair use purposes where permitted
- Check local laws and institutional policies
- Consider legal alternatives first (open access, institutional access)
Google Scholar Terms
⚠️ Important: Google Scholar prohibits automated scraping:
- Use minimally and responsibly
- Add delays between requests
- Consider official APIs or Semantic Scholar as alternatives
- Respect robots.txt and rate limits
API Terms of Service
Each platform has its own terms:
- Web of Science: Check your license agreement
- Scopus: Institutional access required
- Elsevier/ScienceDirect: API agreement needed
- Springer Nature: Check API usage limits
Additional Resources
- GitHub: https://github.com/your-repo/paper-search-mcp-nodejs
- Documentation: Full API docs in package README
- npm Package: https://www.npmjs.com/package/paper-search-mcp-nodejs
- Version: v0.2.5 (latest)
- MCP Protocol: https://modelcontextprotocol.io/
Updating the Tool
# Update to latest version
npm update -g paper-search-mcp-nodejs
# Reinstall MCP server (if needed)
claude mcp remove paper-search
claude mcp add paper-search npx paper-search-mcp-nodejs
# Verify version
npx paper-search-mcp-nodejs --version
Related Skills
agentdb-vector-search: For semantic search over downloaded papersreasoningbank-intelligence: For analyzing research patternsgithub-code-review: For reviewing code in academic software
Support
For issues or questions:
- Check the troubleshooting section
- Review platform-specific documentation
- Check GitHub issues
- Verify API keys and configuration
- Test with minimal examples
Pro Tips:
- Start with open platforms (arXiv, Crossref, bioRxiv) - no API keys needed
- Use Semantic Scholar for citation analysis - excellent free API
- Cache results locally to minimize API calls
- Combine multiple platforms for comprehensive coverage
- Always check open access status before using Sci-Hub