Resolve DOIs, search ~155M scholarly works, and fetch references via the Crossref REST API.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Resolve DOIs, search ~155M scholarly works, fetch references, and look up publishers via the Crossref REST API. STDIO or Streamable HTTP.
Seven tools for working with Crossref data β DOI resolution, full-text search across all scholarly works, outgoing reference lists, and journal, funder, and publisher lookup:
| Tool | Description |
|---|---|
crossref_get_work | Resolve a DOI to its full Crossref metadata record: title, authors, affiliations, abstract (when deposited), journal, publication date, type, license, full-text links, funder acknowledgements, and outgoing reference count. The author list pages by offset/limit. |
crossref_search_works | Search the Crossref works index by free text and/or structured filters. Supports sort, field selection, a per-work author cap, and cursor-based deep paging. |
crossref_get_references | Return the outgoing reference list for a DOI β the works cited by this paper, with deposited citation strings and resolved DOIs where available |
crossref_search_journals | Find Crossref journal records by ISSN or title query; optionally retrieve a page of the journal's most recent works by publication date. Both lists page by offset. |
crossref_search_funders | Find funders registered in the Crossref Funder Registry by name, bare registry ID, or funder DOI; optionally retrieve a page of funded works. Both lists page by offset. |
crossref_get_member | Resolve a Crossref member ID to its publisher record β name, owned DOI prefixes, DOI counts, per-work-type breakdown, and per-category metadata deposit coverage |
crossref_get_prefix | Resolve a DOI prefix (e.g. 10.1038) to its owning publisher β name and member ID, chaining into crossref_get_member |
crossref_get_workResolve a DOI to its canonical Crossref record.
10.NNNN/suffix regex before the upstream calloffset and limit (default 25, max 500). authorCount is the full deposited total; when authors remain, the response carries a nextOffset to pass back as offset. Ordinary records fit in a single page β large-collaboration papers deposit thousands of authors, enough to fill a client's context from one record. Only the author list is paged; every other field comes back in full on every page.ror, and no name. The entry still names an organization instead of coming back as an award number with nothing attached to it.null in place of the number β is omitted rather than reported, so a record with no registered year comes back with no publication date.published, published-print, published-online, and issued that names one. The three search tools read the same order without issued, which is this tool's alone. A source deposited holding only unknown components names nothing and is passed over; one naming a coarser date than the source behind it still answers, since the four are different facts rather than one fact at four precisions.crossref_get_referencesis-referenced-by-count) is included; citing works are not β Crossref does not expose that data. Use OpenAlex for citation graphs.crossref_search_worksSearch across ~155M Crossref-registered works.
query plus a structured filter object using Crossref's hyphen-separated key syntax: from-pub-date, until-pub-date, type, funder, issn, member, has-abstract, has-references, has-full-text, directory (use DOAJ to restrict to open-access content)query: queryTitle, queryAuthor, queryContainerTitle (journal/book name), and queryBibliographic (whole-citation match to resolve a known reference to its DOI) β all combine with each other and with queryrelevance, is-referenced-by-count, published, deposited, or scorefields parameter narrows response payload β useful for large result sets. Names are case-sensitive; DOI is always returned whether or not it is listed, so every result stays resolvable by crossref_get_work.authorLimit authors (default 25, max 500), with authorCount reporting that work's full deposited total. A single page of large-collaboration papers can carry tens of thousands of author entries; pass a cut work's DOI to crossref_get_work to page its whole author list, or raise authorLimit to widen the cap here.cursor=* on the first call, then pass the returned nextCursor token. Cursor and offset cannot be combined.nextCursor. Crossref keeps minting a token past the end of a list, so the token is withheld on an empty page rather than relayed β the rule the works_cursor walks below follow too. Here that page also carries a notice saying the walk is complete, because works is this tool's whole payload and an empty page nothing is said about renders as blank text.crossref_get_referencesFetch the outgoing reference list for a DOI.
<i>, <em>, <small>, <span>), scripts (<sub>, <sup>, <inf>), block boundaries (<p>, <br>, <refersplit />), MathML and TeX formula wrappers, and a whole JATS <mixed-citation> deposited into a free-text field. A bracket comes out only when it is a well-formed tag whose element name is on a closed list, so an angle-bracket span that is not one β a cited URL, a Miller index, a DOI fragment, a bracketed phrase β is returned exactly as deposited. A link (<a>, <ext-link>, <uri>) is decided against its own text: its tags come out where the text already carries what the href holds, and stay where the href addresses something the text does not name.offset and limit (default 100, max 500). referenceCount is the full deposited total; when more remain, the response carries a nextOffset to pass back as offset. Most works fit in a single page β bibliography records can carry tens of thousands of references.crossref_search_journalsFind journal records by ISSN or title.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/crossref-mcp-server-2)<a href="https://allmcps.com/mcp/crossref-mcp-server-2"><img src="https://allmcps.com/api/badge/crossref-mcp-server-2?style=directory" alt="Crossref MCP Server on AllMCPs" /></a>