crossref-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CROSSREF_MCP_MAILTO | No | Email address for Crossref's 'polite pool' — higher rate limits, faster responses |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_worksA | Search Crossref works (publications) by free-text query and/or filters. Use Examples: search_works(query="machine learning", rows=5) search_works(filter="from-pub-date:2024-01-01,until-pub-date:2024-12-31", sort="published", order="desc") search_works(query="crispr", select="DOI,title,author,published", cursor="*") |
| get_workA | Get full metadata for a single work identified by its DOI. Examples: get_work(doi="10.1038/nature12373") get_work(doi="10.1001/jama.2020.7681") |
| get_work_agencyA | Get the registration agency responsible for a given DOI. Examples: get_work_agency(doi="10.1038/nature12373") |
| list_journalsC | List or search Crossref journals by free-text query. Examples: list_journals(query="nature", rows=5) list_journals(cursor="*", rows=50) |
| get_journalA | Get metadata for a single journal identified by its ISSN. Examples: get_journal(issn="0028-0836") |
| get_journal_worksB | List works published in a journal identified by its ISSN. Examples: get_journal_works(issn="0028-0836", rows=10) get_journal_works(issn="0028-0836", query="crispr", cursor="*") |
| list_fundersB | List or search funding bodies in the Crossref Funder Registry. Examples: list_funders(query="national science", rows=10) list_funders(filter="location:United States", rows=5) |
| get_funderA | Get metadata for a single funder identified by its Funder Registry ID. Examples: get_funder(funder_id="100000001") |
| list_membersC | List or search Crossref members (publishers). Examples: list_members(query="elsevier", rows=5) list_members(filter="has-public-references:true", rows=10) |
| list_types_and_licensesB | List all available Crossref work types and the licenses seen in the corpus. Examples: list_types_and_licenses() |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a unique entity or operation (funder, journal, work, member, license), with clear boundaries between general search and entity-specific lookups.
All tools follow a consistent verb_noun pattern using snake_case (e.g., get_funder, list_journals, search_works), making the action and target immediately clear.
10 tools is well-scoped for the domain of querying Crossref metadata, covering all major entity types without unnecessary redundancy.
The tool set provides get and list/search for all core entities (works, journals, funders, members) plus additional utilities (work agency, types/licenses), leaving no obvious gaps for a read-only API.