Crossref MCP — Academic DOI & Literature Metadata
Pricing
Pay per usage
Crossref MCP — Academic DOI & Literature Metadata
AI agent access to 120M+ academic papers, books, and conference proceedings via Crossref API. Search works, get detailed metadata, fetch references, and export BibTeX.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
AutomateLab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 hours ago
Last modified
Categories
Share
Type: Apify MCP Actor (JavaScript)
Purpose: AI agent access to 120M+ academic papers, books, and conference proceedings via Crossref API
Stack: Apify SDK, Node.js 20+, MCP protocol, standby mode
Quick Start
cd ~/Projects/apify-actors/crossref-mcpapify run # Local developmentapify push # Deploy to Apify
Key Files
src/main.js— MCP handler entry point withhandleToolexport.actor/actor.json— Standby mode enabled (usesStandbyMode: true)Dockerfile— Node.js 24 runtimepackage.json— Dependencies (apify ^3.6.0)
Architecture
- Standby MCP via
handleRequestexport - Readiness probe at GET / (checks
x-apify-container-server-readiness-probeheader) - PPE (Pay-Per-Event) charging for each tool invocation
- ERROR_RETRY with exponential backoff (3 retries, 2s base delay)
- Crossref API at
https://api.crossref.org/works
Tools
| Tool | Description | PPE |
|---|---|---|
searchWorks | Search academic works by query, author, DOI, ISSN, date range | $0.03 |
getWorkDetails | Get full metadata for a work by DOI (authors, abstract, funding) | $0.02 |
getReferences | Get bibliography/reference list for a work by DOI | $0.04 |
exportBibTeX | Export works as BibTeX, RIS, or JSON citation format | $0.01 |
API Operations
searchWorks
Search for academic works by keyword, author, or filters.
{"operation": "searchWorks","parameters": {"query": "machine learning","author": "Hinton","type": "journal-article","from_date": "2020-01-01","max_results": 20}}
Returns: Array of works with title, authors, DOI, publication date, journal, abstract, and citation counts.
getWorkDetails
Get full metadata for a specific work by DOI.
{"operation": "getWorkDetails","parameters": {"doi": "10.1038/nature12373","include_references": true}}
Returns: Complete metadata including authors with ORCIDs, abstract, funding info, license, references, and more.
getReferences
Get the reference list (bibliography) for a work.
{"operation": "getReferences","parameters": {"doi": "10.1038/nature12373","max_references": 50}}
Returns: Array of references with DOI, title, author, year, journal, pages.
exportBibTeX
Export one or more works as citation strings.
{"operation": "exportBibTeX","parameters": {"dois": ["10.1038/nature12373", "10.1126/science.1259856"],"format": "bibtex"}}
Returns: Formatted citation string(s) in BibTeX, RIS, or JSON format.
Input Schema
The actor accepts an INPUT JSON with operation and parameters:
{"operation": "searchWorks","parameters": {"query": "deep learning","max_results": 10}}
PPE Pricing
This actor uses Apify's Pay-Per-Event pricing model. Each tool invocation incurs a small charge to cover Crossref API costs:
| Event | Charge |
|---|---|
searchWorks | $0.03 |
getWorkDetails | $0.02 |
getReferences | $0.04 |
exportBibTeX | $0.01 |
Error Handling & Retry
The actor implements automatic retry with exponential backoff:
- 3 retries on API failure
- Base delay: 2 seconds, doubling each retry (2s → 4s → 8s)
- Rate limit handling: Detects 429 responses, waits for Retry-After header
Data Sources
- Crossref API: The official REST API for Crossref metadata
- Coverage: 120M+ works from 90,000+ publishers
- Types: Journal articles, books, conference proceedings, datasets, preprints, etc.
MCP Protocol
This actor implements the Model Context Protocol (MCP) for AI agent integration:
initialize— Returns server capabilitiestools/list— Returns available tools and schemastools/call— Executes a tool by name with parametershandleRequest— Legacy operation handler (operation + parameters)
Deployed Actor
The actor runs at: crossref-mcp.apify.actor
Rate Limits
The Crossref API has rate limits:
- Polite pool: 50 requests/second (with email)
- Default: 25 requests/second
- Unauthenticated: Heavily rate limited
The actor uses the polite pool (mailto=apify@example.com) and implements retry on 429 responses.
Notes
- All dates are in ISO format (YYYY-MM-DD)
- DOIs are cleaned automatically (handles
https://doi.org/prefixes) - Abstracts are stripped of HTML tags
- BibTeX output escapes LaTeX special characters
- References are capped at 100 per request to avoid timeouts