Crossref MCP server
io.github.jtl-neo/crossref-mcp·v0.1.0MCP server wrapping the Crossref REST API for scholarly metadata.
0 stars34 downloads/wk
Reviews
Write oneNobody has reviewed Crossref yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Crossref tools (18)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
get_funderFetch one funder by its Crossref Funder Registry id (e.g. 100000001).
get_funder_worksList works funded by a given funder id.
get_journalFetch one journal by ISSN (NNNN-NNNN; hyphen optional).
get_journal_worksList works published in a given journal (by ISSN).
get_memberFetch one member (publisher) by numeric Crossref member id.
get_member_worksList works published by a given member id.
get_prefixLook up the owner of a DOI prefix (e.g. "10.1038").
get_typeFetch one work type by id (e.g. "journal-article").
get_workFetch a single work's metadata by DOI.
get_work_qualityLook up the registration agency for a DOI (Crossref, DataCite, ...).
get_work_referencesList the reference list of a work (the works it cites), by DOI.
list_licensesList licenses Crossref has seen. No single-license lookup exists.
list_typesList Crossref work types (journal-article, book-chapter, ...).
pingHealth check tool: returns the server name and version.
search_fundersSearch funding bodies by name. Returns funder id, name, location.
search_journalsSearch journals by title/keyword. Returns title, ISSNs, publisher.
search_membersSearch Crossref members (publishers/societies). Returns id + primary name.
search_worksSearch Crossref works (articles, books, datasets, ...).
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan23 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 95 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- mediumeval / new Function used
exec.evalcrossref_mcp-0.1.0/src/crossref_mcp/ratelimit.py: … allowed, wait = await self._redis.eval( _LUA_TOKEN_BUCKET, …
How Crossref compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 65/100
- higher than 20% of 48,255 servers
- Tools
- 18
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 34
- more than 23% of 12,191 servers with a package
What its tools let an agent do: 18 read
Install Crossref in Claude Code, Cursor or VS Code
claude mcp add crossref-mcp -- uvx crossref-mcp
What the publisher says
From the Crossref repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.jtl-neo/crossref-mcp -->
crossref-mcp
English | 中文
An MCP server wrapping the Crossref REST API, exposing scholarly-metadata lookups (works, members, journals, funders, types, licenses, prefixes) as tools an LLM client can call.
Not affiliated with or endorsed by Crossref. Data is served live from the
public Crossref API. Set CROSSREF_MAILTO to join Crossref's
polite pool.
Features
exponential backoff honoring Retry-After.
- All major Crossref resource endpoints as 18 read-only tools.
- Dual transport: stdio (local) and Streamable HTTP (container).
- Polite pool (User-Agent + mailto), optional Crossref Plus token.
- Token-bucket rate limiting (auto-tuned from X-Rate-Limit-* headers) with
- Cursor deep paging, field select, raw vs simplified output.
- Optional X-API-Key HTTP auth (/health exempt), /health endpoint.
- Optional Redis response cache + cross-replica rate limiting.
- Optional Caddy TLS reverse proxy for public deployment.
Quick start (local, stdio)
uv sync
export CROSSREF_MAILTO="you@example.com" # recommended (polite pool)
uv run crossref-mcp # starts a stdio MCP serverInspect with the MCP Inspector: uv run mcp dev src/crossref_mcp/server.py.
Configuration
Tools
Works — searchworks, getwork (by DOI), getworkreferences (capped at 50), getworkquality (registration agency). Members / Journals / Funders — searchmembers · getmember · getmemberworks; searchjournals · getjournal (ISSN) · getjournalworks; searchfunders · getfunder · getfunderworks. Types / Licenses / Prefixes — listtypes · gettype; listlicenses; getprefix. Plus ping.
Shared parameters. Search/list tools take query (and querybibliographic / queryauthor / querytitle on works), filter (Crossref key:value,… syntax), sort + order, rows (≤1000) + offset, and select. Deep paging: set cursor="" then reuse the returned next_cursor. All tools return simplified fields by default; pass raw=true for the full Crossref JSON.
Connecting an MCP client
stdio (Claude Desktop / Cursor) — claudedesktopconfig.json:
{
"mcpServers": {
"crossref": {
"command": "uvx",
"args": ["crossref-mcp"],
"env": { "CROSSREF_MAILTO": "you@example.com" }
}
}
}Or run the container over stdio: "command": "docker", "args": ["run", "-i", "--rm", "-e", "CROSSREF_MAILTO", "heyinnaneo/crossref-mcp"].
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Crossref: common questions
- Is Crossref MCP server safe?
- With care: it is graded C, so read the findings first (65/100). Read the Crossref safety report
- How do I install Crossref?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Crossref need an API key?
- Yes. The registry entry asks for
CROSSREF_PLUS_TOKEN,MCP_API_KEY. - Is Crossref maintained?
- The last commit was 133 days ago (2026-06-24). The latest release is v0.1.0.
- How does Crossref compare with other MCP servers?
- safety score 65/100 (higher than 20% of 48,255 servers); tools 18 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.