Search and retrieve scholarly metadata from the Crossref REST API
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx crossref-mcp-server
MCP client config
{
"mcpServers": {
"crossref": {
"command": "uvx",
"args": [
"crossref-mcp-server"
]
}
}
}An MCP (Model Context Protocol) server for searching and retrieving scholarly metadata from the CrossRef REST API — 150M+ records across all publishers and disciplines.
Built with FastMCP. No API key required.
| Tool | Description |
|---|---|
crossref_search | Search works by keyword with filtering by year, type, and sort options |
crossref_title_search | Search specifically by title for more precise matching |
crossref_author_search | Search for works by a specific author, optionally combined with keywords |
crossref_doi_lookup | Retrieve full metadata for a work by DOI |
crossref_journal_search | Search for journals by name |
crossref_journal_works | Get works published in a specific journal by ISSN |
crossref_funder_search | Search for funding organizations |
crossref_references | Get the reference list cited by a specific work |
crossref_export_ris | Export recent results as RIS (for Zotero, EndNote, etc.) |
crossref_export_bibtex | Export recent results as BibTeX |
cd crossref-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
CrossRef doesn't require an API key, but setting a mailto address gives you access to their faster "polite" API pool:
cp .env.example .env
# Edit .env with your email address
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"crossref": {
"command": "/path/to/crossref-mcp-server/venv/bin/python",
"args": ["/path/to/crossref-mcp-server/server.py"],
"env": {
"CROSSREF_MAILTO": "your.email@example.com"
}
}
}
}
Or if using Claude Code CLI:
claude mcp add crossref \
/path/to/crossref-mcp-server/venv/bin/python \
/path/to/crossref-mcp-server/server.py \
-e CROSSREF_MAILTO=your.email@example.com
Once connected, you can ask Claude things like:
MIT