An MCP server that connects Claude to Crossref, the largest scholarly metadata registry with 150M+ works. Search papers, explore citations, find author publications, and trace reference networks — all from within Claude.
No API keys required. The Crossref API is free and open. Optionally set CROSSREF_MAILTO for faster rate limits via Crossref's polite pool.
- Paper search — search across 150M+ scholarly works with filters by year, type, and sort by relevance or citation count
- Citation exploration — find all papers that cite a given work, sorted by impact
- Author lookup — get an author's publications with total citation count and most-cited work
- Reference lists — retrieve and resolve a paper's bibliography with DOI-linked metadata
- Topic discovery — find the most influential papers in any subject area
- Python 3.10+
- uv (recommended) or pip
git clone https://github.com/arterorx/crossref-mcp.git
cd crossref-mcp
uv syncAdd to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"crossref": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/crossref-mcp", "run", "crossref-mcp"]
}
}
}claude mcp add crossref -- uv --directory /absolute/path/to/crossref-mcp run crossref-mcpSet CROSSREF_MAILTO to get priority access to the Crossref API:
export CROSSREF_MAILTO="your@email.com"Restart Claude after adding the configuration.
Search for scientific papers by keyword with filters.
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
str |
— | Search terms |
rows |
int |
10 |
Results per page (1-50) |
offset |
int |
0 |
Pagination offset |
year_from |
int|None |
None |
Published after this year |
year_to |
int|None |
None |
Published before this year |
type |
str|None |
None |
Work type (journal-article, book-chapter) |
sort |
str |
"relevance" |
Sort: "relevance", "cited", "published" |
Example prompt: "Search for papers about transformer architecture published after 2020"
Get full details of a paper by DOI.
| Parameter | Type | Description |
|---|---|---|
doi |
str |
DOI identifier (e.g., 10.1038/s41586-021-03819-2) |
Example prompt: "Get the details of the paper with DOI 10.1145/3295222"
Returns: title, authors, abstract, citation count, citations per year, publisher, subjects.
Find papers that cite a given work.
| Parameter | Type | Default | Description |
|---|---|---|---|
doi |
str |
— | DOI of the cited paper |
rows |
int |
10 |
Results per page (1-50) |
offset |
int |
0 |
Pagination offset |
sort |
str |
"cited" |
Sort: "cited" or "published" |
Example prompt: "Show me papers that cite the Attention Is All You Need paper"
Get all works by an author name.
| Parameter | Type | Default | Description |
|---|---|---|---|
author |
str |
— | Author name (e.g., "Yoshua Bengio") |
rows |
int |
10 |
Results per page (1-50) |
offset |
int |
0 |
Pagination offset |
sort |
str |
"cited" |
Sort: "cited" or "published" |
Example prompt: "Find the most cited papers by Geoffrey Hinton"
Returns: publications + computed total_citations and most_cited_work.
Get the bibliography of a paper.
| Parameter | Type | Description |
|---|---|---|
doi |
str |
DOI of the paper |
Example prompt: "What papers does this paper reference? DOI: 10.1145/3295222"
Returns: up to 30 references with DOI-resolved titles and authors where available.
Find influential papers in a subject area.
| Parameter | Type | Default | Description |
|---|---|---|---|
topic |
str |
— | Subject area (e.g., "biochemistry") |
rows |
int |
10 |
Results per page (1-50) |
sort |
str |
"cited" |
Sort: "cited" or "published" |
Example prompt: "What are the most influential papers in reinforcement learning?"
- Python 3.10+
- MCP SDK (FastMCP) — Model Context Protocol server framework
- httpx — async HTTP client with connection pooling
- Pydantic v2 — data validation and serialization
- tenacity — retry with exponential backoff
- Crossref API — scholarly metadata for 150M+ works, no auth required
- Author search is name-based, not ORCID — may return works by different people with the same name
- Not all papers have abstracts in Crossref metadata
- Reference resolution is limited to 30 references per paper to avoid excessive API calls
- Citation counts reflect Crossref data only (may differ from Google Scholar or Semantic Scholar)
- Cache is in-memory only, cleared on server restart (30 min TTL for searches, 1 hour for individual works)
MIT