# io.github.cyanheads/datacite-mcp-server (remote · datacite.caseyjhand.com)

Search DataCite datasets and software, fetch DOI metadata, trace relations, format citations.

- Trust score: 82/100 (high trust)
- Change this week: −1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `datacite.caseyjhand.com`: 82/100 (this document), [markdown](https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite.md), [page](https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite)
- npm · `@cyanheads/datacite-mcp-server`: 39/100, [markdown](https://verifymcp.io/servers/cyanheads-datacite-mcp-server/cyanheads-datacite-mcp-server.md), [page](https://verifymcp.io/servers/cyanheads-datacite-mcp-server/cyanheads-datacite-mcp-server)

## Channel facts

- Endpoint: `https://datacite.caseyjhand.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3363 tokens (~480/item across 7 items; 6 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 58/100
  - Stability check failed: schema churn in the 25 days we've observed: 0 tool removals, 3 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.cyanheads/datacite-mcp-server server?

io.github.cyanheads/datacite-mcp-server is a hosted endpoint at https://datacite.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http cyanheads-datacite-mcp-server 'https://datacite.caseyjhand.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "cyanheads-datacite-mcp-server": {
      "url": "https://datacite.caseyjhand.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "cyanheads-datacite-mcp-server": {
      "type": "http",
      "url": "https://datacite.caseyjhand.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.cyanheads-datacite-mcp-server]
url = "https://datacite.caseyjhand.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-datacite-mcp-server": {
      "type": "remote",
      "url": "https://datacite.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cyanheads-datacite-mcp-server --url 'https://datacite.caseyjhand.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cyanheads-datacite-mcp-server:
    url: "https://datacite.caseyjhand.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "cyanheads-datacite-mcp-server": {
      "Transport": "http",
      "Url": "https://datacite.caseyjhand.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add cyanheads-datacite-mcp-server -t streamable-http -u 'https://datacite.caseyjhand.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "cyanheads-datacite-mcp-server": {
      "type": "http",
      "url": "https://datacite.caseyjhand.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 48 to 52.

### 2026-11-01 (score 81, −3)

- [security regression] Stability: 0.70 → fail
- [functional regression] “datacite_trace_relations” changed the type of “max_nodes”: integer → number
- [functional regression] “datacite_search_works” changed the type of “limit”: integer → number
- [functional regression] “datacite_search_repositories” changed the type of “limit”: integer → number
- [functional] Server version: 0.2.0 → 0.2.1
- [cosmetic] “datacite_trace_relations” reworded the description of “max_nodes”
- [cosmetic] “datacite_search_works” reworded the description of “limit”
- [cosmetic] “datacite_search_works” reworded the description of “affiliation_country”
- [cosmetic] “datacite_search_repositories” reworded the description of “limit”

### 2026-10-30 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 82, +3)

- [functional improvement] Schema quality: 542 → 474
- [functional] First check of Schema quality: 100
- [functional] New resource “datacite-guide”
- [functional] Server version: 0.1.3 → 0.2.0
- [cosmetic] “datacite_search_works” reworded the description of “text”

### 2026-10-25 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (6)

### `datacite_search_works` (~1083 tokens)

Search DataCite works

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.

Input parameters:

- `affiliation` (string): A ROR ID (021nxhr62 or a ror.org URL) — matches creator and contributor affiliations — or an affiliation name phrase.
- `affiliation_country` (string): Current or formerly assigned ISO 3166 alpha-2 country of a creator or contributor affiliation, plus XK; any case (DE, us). UK aliases to GB with a notice. Unassigned codes, alpha-3 codes and names ar…
- `creator` (string): 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.
- `cursor` (string): 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.
- `fields_of_science` (array): 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.
- `funder` (string): A funder ROR ID, a Crossref Funder ID (10.13039/100000001, its doi.org URL, or the bare digits), or a funder name.
- `include_child_funders` (boolean): Also match the ROR funder's child organizations. Only with a ROR funder.
- `include_facets` (boolean): Add top facet counts (resource types, years, repositories, providers, affiliations, fields of science, licenses). Adds 2–8 s.
- `language` (string): ISO 639-1 language code of the work, any case (en, de).
- `licenses` (array): The work's own license ids (any match), e.g. cc-by-4.0, cc0-1.0, cc0 1.0, mit. Trimmed and lowercased, then matched exactly, preserving internal spaces; reuse ids from the licenses facet or datacite_…
- `limit` (number): Requested rows per page, a positive integer (default 20); values above 1,000 apply 1,000 with a notice unless strict limits are configured.
- `min_citations` (integer): Only works DataCite records at least this many citations for.
- `page` (integer): Ranked page number, 1 when omitted. page × limit may not exceed 10,000; not with cursor.
- `place` (string): A geographic place phrase, matched against deposited place names.
- `provider_ids` (array): Provider ids (any match), e.g. dryad — the providerId datacite_search_repositories returns. Any case.
- `published_from` (integer): Earliest publication year (inclusive). Alone, the range is open-ended.
- `published_to` (integer): Latest publication year (inclusive). Alone, the range is open-ended.
- `query` (string): OpenSearch query-string syntax — field paths (titles.title:"…", creators.name:…, relatedIdentifiers.relationType:…), AND/OR/NOT, ranges, wildcards. Field paths: datacite_list_reference topic query_sy…
- `repository_ids` (array): 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` (array): resourceTypeGeneral values (any match): dataset, software, computational-notebook, workflow, model, physical-object, … PascalCase accepted. Full list: datacite_list_reference topic resource_types.
- `sort` (string): 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.
- `subject` (string): A subject phrase, matched case-insensitively against subject terms.
- `text` (string): Plain words and phrases, searched literally: query-syntax characters are escaped, so "Climate change: impacts" works. Angle brackets are removed; nonblank text with no remaining searchable clause is…

Output parameters:

- `appliedFilters` (object): Every applied filter as sent upstream; {} when none.
- `effectiveQuery` (string): The composed query string sent upstream.
- `error` (object): Present when the call failed. Absent on success.
- `facets` (object): Top facet counts — only with include_facets.
- `nextCursor` (string): Pass as cursor, unchanged and with the same query and filters, to read the next page of a walk; absent on the last page.
- `nextPage` (number): Next ranked page number, when more results lie within the 10,000 ceiling.
- `notice` (string): Guidance when nothing matched, paging stops short of the total, or the page is past the end.
- `rankedCeilingReached` (boolean): True when ranked paging stops before all matches have been delivered; restart with cursor "*".
- `sortApplied` (string): The sort order applied; a cursor walk is always oldest (registration order).
- `totalCount` (number): Total works matching the query and filters.
- `works` (array): Matching works on this page.

### `datacite_get_work` (~286 tokens)

Get DataCite work

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 exact list/offset continuation recipes; select a list to retrieve later entries without losing the other metadata. datacite_trace_relations maps a bounded graph (at most 100 nodes and 1,000 edges). A DOI DataCite does not hold returns found: false naming the registration agency that does, or saying the DOI does not exist.

Input parameters:

- `doi` (string, required): 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.
- `list` (string): One capped list to page in deposit order; other record fields keep their default caps.
- `offset` (integer): Zero-based offset into valid mapped entries of list. Defaults to zero with list; requires list.

Output parameters:

- `alternateIdentifiers` (array): Alternate identifiers. Found arm only.
- `contentUrls` (array): Direct content URLs, when deposited. Found arm only.
- `contributors` (array): Contributors, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
- `counts` (object): DataCite's own counts; they can trail the live record by a few events. Found arm only.
- `created` (string): When the record was created. Found arm only.
- `creators` (array): Creators, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
- `dates` (array): Dates. Found arm only.
- `descriptions` (array): Descriptions. Found arm only.
- `doi` (string): The DOI, normalized to lowercase bare form.
- `doiUrl` (string): Resolver URL, https://doi.org/<doi>, with #, ?, and % percent-encoded. Found arm only.
- `error` (object): Present when the call failed. Absent on success.
- `formats` (array): Formats as deposited. Found arm only.
- `found` (boolean): True when DataCite holds a public record for the DOI.
- `fundingReferences` (array): Funding, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
- `geoLocations` (array): Geolocations, up to 50; full count in truncatedLists by default or listPage when selected. Found arm only.
- `guidance` (string): The next step for this miss. Miss arm only.
- `landingUrl` (string): The repository's landing page. Found arm only.
- `language` (string): Language as deposited, usually an ISO 639-1 code such as en. Found arm only.
- `listPage` (object): Paging metadata for the selected list, including empty and past-end pages. Found arm only.
- `metadataLicense` (string): License of the DataCite metadata itself (CC0 1.0), not of the work it describes. Found arm only.
- `missReason` (string): 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.
- `notice` (string): Discloses omitted malformed polygon geometry; other valid geographic fields remain available.
- `publicationYear` (number): Publication year. Found arm only.
- `publisher` (object): Publisher. Found arm only.
- `registered` (string): When the DOI was registered. Found arm only.
- `registrationAgency` (string): Registration agency that holds the DOI (e.g. Crossref, mEDRA, DataCite), when known. Miss arm only.
- `relatedIdentifierCounts` (object): relationType → full count of related identifiers, before the cap. Found arm only.
- `relatedIdentifiers` (array): Related identifiers, capped at 100 (full counts in relatedIdentifierCounts). Found arm only.
- `relatedItems` (array): Related items described inline in this record — typically the journal, book, or series it appears in — up to 25; full count in truncatedLists by default or listPage when selected. Found arm only.
- `repository` (object): The DataCite repository that registered the DOI. Found arm only.
- `resourceType` (string): Free-text resource type the depositor gave. Found arm only.
- `resourceTypeGeneral` (string): resourceTypeGeneral, e.g. Dataset or Software. Found arm only.
- `rights` (array): The work's own rights and licenses — distinct from metadataLicense. Found arm only.
- `schemaVersion` (string): DataCite metadata schema version URI. Found arm only.
- `sizes` (array): Sizes as deposited, e.g. "2123413 bytes". Found arm only.
- `subjects` (array): Subjects, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
- `titles` (array): Every title, main title first. Found arm only.
- `truncatedLists` (array): Lists the caps bound, with their full counts. Present only when a cap bound.
- `updated` (string): When the record was last updated. Found arm only.
- `version` (string): Version string. Found arm only.

### `datacite_trace_relations` (~586 tokens)

Trace DataCite relations

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.

Input parameters:

- `depth` (integer): 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.
- `doi` (string, required): 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.
- `event_offset` (integer): Absolute zero-based Event Data position, 0–9,999. Presence, including 0, selects Event-Data-only mode: no metadata edges or depth-2 expansion. Reads one 100-event upstream page, starting within it. C…
- `include_event_data` (boolean): Add Event Data citation links (mostly harvested from Crossref). Citation relation types only.
- `max_nodes` (number): Requested node cap including the root, a positive integer (default 50); values above 100 apply 100 with a notice unless strict limits are configured. Filled in order: own-metadata targets, records po…
- `relation_types` (array): 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…

Output parameters:

- `cap` (number): The max_nodes applied.
- `coverage` (object): What each source contributed and how much of it was read.
- `edges` (array): Edges between returned nodes, at most 1,000, the first found; identical edges from several sources are merged.
- `edgesFound` (number): Edges between the returned nodes before the 1,000-edge cap; present only when the cap bound.
- `error` (object): Present when the call failed. Absent on success.
- `nodes` (array): Nodes, root first.
- `notice` (string): 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 Data…
- `root` (object): The root DOI. For another agency's DOI, title, type, and year come from DataCite's linking copy when it holds one.
- `rootCounts` (object): DataCite's own counts for the root (DataCite roots only), to compare with the edges shown.
- `shown` (number): Nodes returned, root included.
- `truncated` (boolean): True when max_nodes or the 1,000-edge cap bound.

### `datacite_search_repositories` (~500 tokens)

Search DataCite repositories

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.

Input parameters:

- `certificates` (array): Certificates (any match): CoreTrustSeal, WDS, DSA, DINI, RatSWD, CLARIN, DIN 31644; any case.
- `client_type` (string): Account type: repository, periodical, igsnCatalog, or raidRegistry. Omitted: all.
- `field_of_science` (string): 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.
- `limit` (number): Requested repositories per page, a positive integer (default 20); values above 1,000 apply 1,000 with a notice unless strict limits are configured.
- `page` (integer): Page number. Past the last page the list is empty.
- `provider_id` (string): Parent provider id, e.g. dryad — the providerId a repository carries. Any case.
- `query` (string): Text matched against repository names, alternate names, and descriptions. Query-string syntax is accepted.
- `repository_ids` (array): Known repository ids, shaped provider.repository (e.g. dryad.dryad); any case. Up to 1,000 inputs; queries the first 25 distinct normalized ids and names omitted ids. Use alone — an id lookup ignores…
- `repository_types` (array): Repository types (any match): institutional, disciplinary, multidisciplinary, project-related, governmental, other.
- `software` (string): Software platform slug, lowercased: dataverse, dspace, invenio, ckan, open_journal_systems_ojs, … (free-form upstream; see datacite_list_reference topic software_platforms).

Output parameters:

- `appliedFilters` (object): Every applied filter as sent upstream; {} when none.
- `effectiveQuery` (string): The composed search query, or * for an unfiltered search; absent for repository_ids lookup.
- `error` (object): Present when the call failed. Absent on success.
- `nextPage` (number): Next page number, when more repositories match.
- `notice` (string): Guidance when nothing matched, the page is past the end, or a requested repository id matched no account.
- `orderApplied` (string): Result order — always by name, as the registry returns it.
- `repositories` (array): Repositories on this page, ordered by name.
- `totalCount` (number): Total repositories matching.

### `datacite_get_citation` (~358 tokens)

Get DataCite citation

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.

Input parameters:

- `doi` (string, required): 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.
- `format` (string): text (formatted citation, default), csl_json, bibtex, ris, datacite_json, datacite_xml, schema_org, codemeta, or jats.
- `locale` (string): 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.
- `style` (string): 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. Veri…

Output parameters:

- `cap` (number): The character cap applied: 100,000.
- `citation` (string): text: the citation as plain text (tags stripped, entities decoded), cut at 100,000 upstream UTF-16 units. Machine formats: the complete payload verbatim when at most 100,000 units; otherwise omitted…
- `citationHtml` (string): text only: the upstream HTML markup verbatim (<i>, &amp;, small caps), cut like citation.
- `doi` (string): The DOI, lowercase.
- `downloadUrl` (string): Exact negotiated URL for the complete machine document when it exceeds the inline cap; fetch this URL to retrieve the document.
- `error` (object): Present when the call failed. Absent on success.
- `format` (string): The format requested.
- `found` (boolean): True when DataCite holds the DOI and rendered it; false when it holds no public record (the miss fields explain).
- `guidance` (string): The next step for this miss. Miss arm only.
- `locale` (string): CSL locale applied (text only; absent means en-US).
- `mediaType` (string): Media type negotiated. Found only.
- `missReason` (string): 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.
- `notice` (string): Set when the style could not be confirmed as distinct from APA, JATS contains empty names or inconsistent years, or the payload exceeded the inline cap (length and retrieval guidance).
- `registrationAgency` (string): Registration agency that holds the DOI (e.g. Crossref, mEDRA, DataCite), when known. Miss arm only.
- `shown` (number): UTF-16 code units of DataCite's payload kept inline; zero for an oversized machine document, or the units text and citationHtml derive from.
- `style` (string): CSL style applied (text only).
- `totalCharacters` (number): Complete oversized machine document length in UTF-16 code units.
- `truncated` (boolean): True when the payload exceeded 100,000 UTF-16 code units: text was cut or a machine document was omitted for download.

### `datacite_list_reference` (~257 tokens)

DataCite reference vocabularies

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.

Input parameters:

- `topic` (string, required): 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 th…

Output parameters:

- `entries` (array): The vocabulary entries.
- `error` (object): Present when the call failed. Absent on success.
- `notes` (array): Usage rules and caveats for the topic.
- `title` (string): Human-readable topic title.
- `topic` (string): The topic returned.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite#diagnostics

## Score history

- 2026-11-04: 82
- 2026-11-03: 82
- 2026-11-02: 82
- 2026-11-01: 81
- 2026-10-31: 84
- 2026-10-30: 84
- 2026-10-29: 83
- 2026-10-28: 83
- 2026-10-27: 82
- 2026-10-26: 82
- 2026-10-25: 79
- 2026-10-24: 78
- 2026-10-23: 78
- 2026-10-22: 77
- 2026-10-21: 77
- 2026-10-20: 76
- 2026-10-19: 76
- 2026-10-18: 76
- 2026-10-17: 76
- 2026-10-16: 75
- 2026-10-15: 75
- 2026-10-14: 74
- 2026-10-13: 74
- 2026-10-12: 73
- 2026-10-10: 72

## Common questions

### What is the io.github.cyanheads/datacite-mcp-server server?

io.github.cyanheads/datacite-mcp-server is listed in the public MCP registry as io.github.cyanheads/datacite-mcp-server. Search DataCite datasets and software, fetch DOI metadata, trace relations, format citations. This page covers its hosted endpoint (https://datacite.caseyjhand.com/mcp).

### Is the io.github.cyanheads/datacite-mcp-server server safe to use?

io.github.cyanheads/datacite-mcp-server scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.cyanheads/datacite-mcp-server server expose?

io.github.cyanheads/datacite-mcp-server exposes 6 tools: datacite_search_works, datacite_get_work, datacite_trace_relations, datacite_search_repositories, datacite_get_citation, datacite_list_reference. Their descriptions and schemas cost roughly 3,070 tokens of context every time the server is loaded.

### Does the io.github.cyanheads/datacite-mcp-server server require authentication?

No. We connected to io.github.cyanheads/datacite-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.cyanheads/datacite-mcp-server server still maintained?

io.github.cyanheads/datacite-mcp-server is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://datacite.caseyjhand.com/mcp
- Repository: https://github.com/cyanheads/datacite-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite.xml
- Changelog JSON feed: https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite.json
- HTML version of this page: https://verifymcp.io/servers/cyanheads-datacite-mcp-server/datacite
