datacite-mcp-server
Server Details
Search DataCite datasets and software, fetch DOI metadata, trace relations, format citations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/datacite-mcp-server
- GitHub Stars
- 1
- Server Listing
- @cyanheads/datacite-mcp-server
TDQS
Score is being calculated.
Available Tools
6 toolsdatacite_get_citationGet DataCite citationRead-onlyIdempotentInspect
Render one DataCite DOI as a formatted citation in a CSL style and locale (APA in US English by default), or as a machine-readable record: CSL JSON, BibTeX, RIS, DataCite JSON or XML, Schema.org JSON-LD, Codemeta, or JATS. A style the upstream renderer does not support — an unknown id or a dependent journal style — is rejected instead of silently rendered as APA. Formatted text comes back as plain text alongside the upstream HTML markup. A DOI DataCite does not hold returns found: false naming the registration agency that does.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | The DataCite DOI, e.g. 10.5061/dryad.234. Accepted bare, with doi: or info:doi/ prefixes, as a doi.org / dx.doi.org URL, or %2F-encoded; case-insensitive. | |
| style | No | CSL style id for format text, e.g. apa (default), ieee, chicago-author-date, modern-language-association, vancouver, nature. Lowercased. A style that would silently fall back to APA is rejected. Verified ids: datacite_list_reference topic citation_styles. | |
| format | No | text (formatted citation, default), csl_json, bibtex, ris, datacite_json, datacite_xml, schema_org, codemeta, or jats. | |
| locale | No | CSL locale for format text, e.g. en-GB, de-DE, fr-FR, or a bare language (de → de-DE); any case. Omitted: en-US. List: datacite_list_reference topic citation_locales. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The character cap applied: 100,000. |
| doi | No | The DOI, lowercase. |
| error | No | Present when the call failed. Absent on success. |
| found | No | True when DataCite holds the DOI and rendered it; false when it holds no public record (the miss fields explain). |
| shown | No | Characters of DataCite's payload kept; for text, citation and citationHtml derive from them. |
| style | No | CSL style applied (text only). |
| format | No | The format requested. |
| locale | No | CSL locale applied (text only; absent means en-US). |
| notice | No | Set when the style could not be confirmed as distinct from APA, or when the payload was cut (its full length and the cut). |
| citation | No | text: the citation as plain text (tags stripped, entities decoded); machine formats: the payload verbatim. A payload over 100,000 characters is cut to its first 100,000 (truncated: true). |
| guidance | No | The next step for this miss. Miss arm only. |
| mediaType | No | Media type negotiated. Found only. |
| truncated | No | True when the payload ran past 100,000 characters and was cut. |
| missReason | No | Why DataCite holds no public record: another agency registered it, no agency did, it is a DataCite DOI without public (Findable) metadata, or the agency lookup did not answer. Miss arm only. |
| citationHtml | No | text only: the upstream HTML markup verbatim (<i>, &, small caps), cut like citation. |
| registrationAgency | No | Registration agency that holds the DOI (e.g. Crossref, mEDRA, DataCite), when known. Miss arm only. |
datacite_get_workGet DataCite workRead-onlyIdempotentInspect
Fetch the full deposited DataCite metadata for one DOI: titles, creators and contributors with ORCID iDs and ROR affiliations, publisher, dates, version, subjects, descriptions, funding, geolocations, rights, sizes and formats, related identifiers with their relation types, repository and provider, and citation, reference, version, part, view, and download counts. Long lists are capped with their full counts reported; use datacite_trace_relations for the complete relation graph. A DOI DataCite does not hold returns found: false naming the registration agency that does, or saying the DOI does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | The DOI, e.g. 10.5061/dryad.234: 10., a 4–9 digit registrant, a slash, and a suffix. Accepted bare, with doi: or info:doi/ prefixes, as a doi.org / dx.doi.org URL, or %2F-encoded; case-insensitive. |
Output Schema
| Name | Required | Description |
|---|---|---|
| doi | No | The DOI, normalized to lowercase bare form. |
| dates | No | Dates. Found arm only. |
| error | No | Present when the call failed. Absent on success. |
| found | No | True when DataCite holds a public record for the DOI. |
| sizes | No | Sizes as deposited, e.g. "2123413 bytes". Found arm only. |
| counts | No | DataCite's own counts; they can trail the live record by a few events. Found arm only. |
| doiUrl | No | Resolver URL, https://doi.org/<doi>, with #, ?, and % percent-encoded. Found arm only. |
| rights | No | The work's own rights and licenses — distinct from metadataLicense. Found arm only. |
| titles | No | Every title, main title first. Found arm only. |
| created | No | When the record was created. Found arm only. |
| formats | No | Formats as deposited. Found arm only. |
| updated | No | When the record was last updated. Found arm only. |
| version | No | Version string. Found arm only. |
| creators | No | Creators, capped at 100 (full count in truncatedLists). Found arm only. |
| guidance | No | The next step for this miss. Miss arm only. |
| language | No | Language as deposited, usually an ISO 639-1 code such as en. Found arm only. |
| subjects | No | Subjects, capped at 100 (full count in truncatedLists). Found arm only. |
| publisher | No | Publisher. Found arm only. |
| landingUrl | No | The repository's landing page. Found arm only. |
| missReason | No | Why DataCite holds no public record: another agency registered it, no agency did, it is a DataCite DOI without public (Findable) metadata, or the agency lookup did not answer. Miss arm only. |
| registered | No | When the DOI was registered. Found arm only. |
| repository | No | The DataCite repository that registered the DOI. Found arm only. |
| contentUrls | No | Direct content URLs, when deposited. Found arm only. |
| contributors | No | Contributors, capped at 100 (full count in truncatedLists). Found arm only. |
| descriptions | No | Descriptions. Found arm only. |
| geoLocations | No | Geolocations, capped at 50 (full count in truncatedLists). Found arm only. |
| relatedItems | No | Related items described inline in this record — typically the journal, book, or series it appears in — capped at 25 (full count in truncatedLists). Found arm only. |
| resourceType | No | Free-text resource type the depositor gave. Found arm only. |
| schemaVersion | No | DataCite metadata schema version URI. Found arm only. |
| truncatedLists | No | Lists the caps bound, with their full counts. Present only when a cap bound. |
| metadataLicense | No | License of the DataCite metadata itself (CC0 1.0), not of the work it describes. Found arm only. |
| publicationYear | No | Publication year. Found arm only. |
| fundingReferences | No | Funding, capped at 100 (full count in truncatedLists). Found arm only. |
| registrationAgency | No | Registration agency that holds the DOI (e.g. Crossref, mEDRA, DataCite), when known. Miss arm only. |
| relatedIdentifiers | No | Related identifiers, capped at 100 (full counts in relatedIdentifierCounts). Found arm only. |
| resourceTypeGeneral | No | resourceTypeGeneral, e.g. Dataset or Software. Found arm only. |
| alternateIdentifiers | No | Alternate identifiers. Found arm only. |
| relatedIdentifierCounts | No | relationType → full count of related identifiers, before the cap. Found arm only. |
datacite_list_referenceDataCite reference vocabulariesRead-onlyIdempotentInspect
Look up the controlled vocabularies and identifier forms the other datacite_* tools accept: resource types, relation types with their inverses and groups, related-identifier types, date and contributor types, fields of science, common license ids, repository types, certificates, software platforms, client types, sort orders, query-syntax field paths, citation formats, verified citation styles and locales, accepted identifier forms (DOI, ORCID iD, ROR ID, Crossref Funder ID, country, language, repository, and provider ids), and coverage and rate-limit rules. Offline; makes no upstream request.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Which vocabulary or rule set to return. identifier_types lists related-identifier types (the relatedIdentifierType values datacite_trace_relations reports as node idType); identifier_formats lists the accepted input forms of DOIs, ORCID iDs, ROR IDs, Crossref Funder IDs, country and language codes, and repository and provider ids; query_syntax lists the field paths and operators of the datacite_search_works query input; coverage states what DataCite holds, the paging and facet limits, citation accrual, Event Data scope, and rate limits. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notes | No | Usage rules and caveats for the topic. |
| title | No | Human-readable topic title. |
| topic | No | The topic returned. |
| entries | No | The vocabulary entries. |
datacite_search_repositoriesSearch DataCite repositoriesRead-onlyIdempotentInspect
Find DataCite repository accounts by name or description text, field of science, repository type, certification (e.g. CoreTrustSeal), software platform, client type, or parent provider, or look up known repository IDs. Returns each repository's repositoryId — the value datacite_search_works takes in repository_ids — with its providerId, name, type, certificates, software, subjects, homepage, and re3data link. To rank repositories by how many works they hold on a topic, run datacite_search_works with that topic and include_facets: true; its repositories facet lists the top ten with counts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Past the last page the list is empty. | |
| limit | No | Repositories per page, 1–100. | |
| query | No | Text matched against repository names, alternate names, and descriptions. Query-string syntax is accepted. | |
| software | No | Software platform slug, lowercased: dataverse, dspace, invenio, ckan, open_journal_systems_ojs, … (free-form upstream; see datacite_list_reference topic software_platforms). | |
| client_type | No | Account type: repository, periodical, igsnCatalog, or raidRegistry. Omitted: all. | |
| provider_id | No | Parent provider id, e.g. dryad — the providerId a repository carries. Any case. | |
| certificates | No | Certificates (any match): CoreTrustSeal, WDS, DSA, DINI, RatSWD, CLARIN, DIN 31644; any case. | |
| repository_ids | No | Known repository ids to look up in one batch, shaped provider.repository (e.g. dryad.dryad); any case. Use alone — an id lookup ignores query and filters. | |
| field_of_science | No | An OECD Fields of Science id or label the repository lists among its subjects, e.g. earth_and_related_environmental_sciences. List: datacite_list_reference topic fields_of_science. | |
| repository_types | No | Repository types (any match): institutional, disciplinary, multidisciplinary, project-related, governmental, other. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Guidance when nothing matched, the page is past the end, or a requested repository id matched no account. |
| nextPage | No | Next page number, when more repositories match. |
| totalCount | No | Total repositories matching. |
| orderApplied | No | Result order — always by name, as the registry returns it. |
| repositories | No | Repositories on this page, ordered by name. |
| appliedFilters | No | Every applied filter as sent upstream; {} when none. |
datacite_search_worksSearch DataCite worksRead-onlyIdempotentInspect
Search DataCite DOI metadata for datasets, software, samples, workflows, and other research outputs. Combine plain words (text) or OpenSearch query syntax (query) with filters for resource type, creator (ORCID iD or name), affiliation (ROR ID or name), affiliation country, funder (ROR ID, Crossref Funder ID, or name), subject, field of science, repository, provider, license, language, geographic place, publication-year range, and minimum citation count. Returns the total match count and compact rows — DOI, title, first creators, year, type, repository, licenses, and citation/view/download counts — plus optional top facet counts. Page numbers reach the first 10,000 ranked matches; pass cursor "*" to walk any result set in full, in registration order.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Ranked page number, 1 when omitted. page × limit may not exceed 10,000; not with cursor. | |
| sort | No | relevance, newest, oldest, recently_updated, most_cited, most_viewed, or most_downloaded. Omitted: relevance when text or query is set, else newest. Not with cursor. | |
| text | No | Plain words and phrases, searched literally: every query-syntax character is escaped, so "Climate change: impacts" works and text can never cause a syntax error. Terms are ANDed. | |
| limit | No | Rows per page, 1–100. | |
| place | No | A geographic place phrase, matched against deposited place names. | |
| query | No | OpenSearch query-string syntax — field paths (titles.title:"…", creators.name:…, relatedIdentifiers.relationType:…), AND/OR/NOT, ranges, wildcards. Field paths: datacite_list_reference topic query_syntax. ANDed with text and the filters. | |
| cursor | No | Cursor walk over the full result set in registration order: "*" to start, then the nextCursor of the previous page, unchanged, with the same query and filters. Not with page or sort. | |
| funder | No | A funder ROR ID, a Crossref Funder ID (10.13039/100000001, its doi.org URL, or the bare digits), or a funder name. | |
| creator | No | A creator ORCID iD (0000-0002-1825-0097, 16 digits, or an orcid.org URL; checksum verified) or a name — every name token must appear in one creator field. | |
| subject | No | A subject phrase, matched case-insensitively against subject terms. | |
| language | No | ISO 639-1 language code of the work, any case (en, de). | |
| licenses | No | The work's own license ids (any match), SPDX-style: cc-by-4.0, cc0-1.0, mit. Lowercased, then matched exactly; common ids: datacite_list_reference topic licenses. | |
| affiliation | No | A ROR ID (021nxhr62 or a ror.org URL) — matches creator and contributor affiliations — or an affiliation name phrase. | |
| provider_ids | No | Provider ids (any match), e.g. dryad — the providerId datacite_search_repositories returns. Any case. | |
| published_to | No | Latest publication year (inclusive). Alone, the range is open-ended. | |
| min_citations | No | Only works DataCite records at least this many citations for. | |
| include_facets | No | Add top facet counts (resource types, years, repositories, providers, affiliations, fields of science, licenses). Adds 2–8 s. | |
| published_from | No | Earliest publication year (inclusive). Alone, the range is open-ended. | |
| repository_ids | No | Repository ids (any match), shaped provider.repository — e.g. dryad.dryad or cern.zenodo — as datacite_search_repositories returns them in repositoryId. Any case. | |
| resource_types | No | resourceTypeGeneral values (any match): dataset, software, computational-notebook, workflow, model, physical-object, … PascalCase accepted. Full list: datacite_list_reference topic resource_types. | |
| fields_of_science | No | OECD Fields of Science ids or labels (any match), e.g. computer_and_information_sciences or "Earth and related environmental sciences". List: datacite_list_reference topic fields_of_science. | |
| affiliation_country | No | ISO 3166-1 alpha-2 country of a creator or contributor affiliation, any case (DE, us). Alpha-3 codes and names are rejected. | |
| include_child_funders | No | Also match the ROR funder's child organizations. Only with a ROR funder. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| works | No | Matching works on this page. |
| facets | No | Top facet counts — only with include_facets. |
| notice | No | Guidance when nothing matched, paging stops short of the total, or the page is past the end. |
| nextPage | No | Next ranked page number, when more results lie within the 10,000 ceiling. |
| nextCursor | No | Pass as cursor, unchanged and with the same query and filters, to read the next page of a walk; absent on the last page. |
| totalCount | No | Total works matching the query and filters. |
| sortApplied | No | The sort order applied; a cursor walk is always oldest (registration order). |
| appliedFilters | No | Every applied filter as sent upstream; {} when none. |
| effectiveQuery | No | The composed query string sent upstream. |
datacite_trace_relationsTrace DataCite relationsRead-onlyIdempotentInspect
Map the relation graph around one DOI — versions, parts, supplements, derivations, documentation, citations, references, and every other DataCite relation type — as nodes and directed edges that keep the relationType exactly as asserted and name each edge's source: the DOI's own metadata, other DataCite records that point at it, or DataCite Event Data (citation links harvested from Crossref and other sources). Accepts any DOI, including a journal article's DOI, to find the datasets and software it cites and those that cite, supplement, or derive from it. DataCite DOIs are hydrated with title, type, year, repository, and citation count; other identifiers stay leaf nodes. Depth 1 by default, at most 2, with a node cap (default 50, max 100) disclosed when it binds. An absent edge is not evidence that no relationship exists.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | The root DOI — any agency's, e.g. a DataCite dataset 10.5061/dryad.234 or a journal article's DOI. Bare, doi:, or a doi.org URL; case-insensitive. | |
| depth | No | Hops from the root: 1 (default) or 2. Depth 2 expands at most 10 DataCite neighbours through their own and reverse metadata, and runs only while max_nodes has room after the first hop. | |
| max_nodes | No | Node cap including the root, 1–100 (default 50). Filled in order: own-metadata targets, records pointing at the root, Event Data endpoints, then the second hop. | |
| relation_types | No | Only these relation types (IsVersionOf, HasPart, IsSupplementTo, IsDerivedFrom, Cites, IsCitedBy, …), any case, read from the traced DOI's side: HasPart keeps the DOI's own HasPart assertions and the records asserting IsPartOf it, each edge shown as asserted. IsPublishedIn and Other have no inverse and match on either side. A second hop reads them from each expanded neighbour's side. Omitted: all. Groups: datacite_list_reference topic relation_types. | |
| include_event_data | No | Add Event Data citation links (mostly harvested from Crossref). Citation relation types only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The max_nodes applied. |
| root | No | The root DOI. For another agency's DOI, title, type, and year come from DataCite's linking copy when it holds one. |
| edges | No | Edges between returned nodes, at most 1,000, the first found; identical edges from several sources are merged. |
| error | No | Present when the call failed. Absent on success. |
| nodes | No | Nodes, root first. |
| shown | No | Nodes returned, root included. |
| notice | No | Coverage caveats: non-DataCite root, no relations found, Event Data unavailable, records pointing at a DOI too large to read 100 of, Event Data objects left out and nodes left unhydrated because DataCite did not answer in time, node cap, unexpanded second hop, neighbours past the second-hop limit, edge cap, uncounted citations. |
| coverage | No | What each source contributed and how much of it was read. |
| truncated | No | True when max_nodes or the 1,000-edge cap bound. |
| edgesFound | No | Edges between the returned nodes before the 1,000-edge cap; present only when the cap bound. |
| rootCounts | No | DataCite's own counts for the root (DataCite roots only), to compare with the edges shown. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
datacite_get_citation - First observed
datacite_get_work - First observed
datacite_list_reference - First observed
datacite_search_repositories - First observed
datacite_search_works - First observed
datacite_trace_relations
Related MCP Connectors
Search and resolve Zenodo datasets, software, and publications by DOI; trace versions and funding.
611Resolve DOIs, search ~155M scholarly works, and fetch references via the Crossref REST API.
Search 150M+ academic works, journals, and funders via Crossref API.
DataCite MCP — DOIs for research datasets (free, no auth)
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides access to DataCite DOIs for research datasets, enabling searching and retrieval of dataset metadata.243 npmMIT
- AlicenseAqualityAmaintenanceSearches and fetches research datasets across Zenodo, DataCite (Dryad/Figshare/Dataverse/OSF), NCBI omics archives (GEO/SRA/BioProject), and the literature (PubMed/OpenAIRE) through one normalized model — deduplicating by DOI, expanding organism queries with NCBI Taxonomy synonyms, and bridging papers to the datasets they produced. Resolves citations and open-access full text, and downloads files.612,541 PyPI4MIT
- AlicenseAqualityDmaintenanceProvides read-only access to DataCite's index of 125M+ research DOIs via natural language queries, enabling searching, metadata retrieval, citation formatting, and relationship exploration.9261 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables querying citation data from OpenCitations, including references, citations, citation counts, and bibliographic metadata for DOIs.191 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.