Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for datacite-mcp-server

Pod holds 14 of 14 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to datacite-mcp-server.

Most discussed

bug(datacite_get_citation): other-agency guidance suggests text/x-bibliography whatever format was requested

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

OS

macOS 27.0

Description

On an other-agency miss, datacite_get_citation always suggests Accept: text/x-bibliography, whatever format was requested. A caller who asked for BibTeX or CSL JSON and follows the guidance gets a formatted citation instead.

Steps to reproduce

  1. Call datacite_get_citation with…

Read the thread · 2026-09-26 · closed · 3 comments

bug(datacite_get_work): doiUrl is not percent-encoded, so a DOI containing # links to a different DOI

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

OS

macOS 27.0

Description

datacite_get_work builds doiUrl as https://doi.org/<doi> without percent-encoding. In a DOI containing # (28,387 DataCite DOIs), everything after the # becomes a URL fragment, so the link resolves the shorter DOI, which can be a different record. % and ? are reserved in URLs the same way, and…

Read the thread · 2026-09-26 · closed · 3 comments

bug(normalize): a DOI containing a literal percent-escape (%20) is decoded and rejected as invalid_doi

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

OS

macOS 27.0

Description

normalizeDoi URI-decodes any DOI that contains %, so that %2F-encoded input is accepted. DataCite also holds DOIs whose suffix contains a literal percent-escape. Decoding turns %20 into a space, the result fails the DOI shape check, and a DOI that datacite_search_works just returned cannot be…

Read the thread · 2026-09-26 · closed · 3 comments

bug(datacite_search_works): lexical query errors return a bare HTTP 400 instead of invalid_query

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

DataCite reports lexical errors (an unterminated quote or /) as HTTP 400 with a token_mgr_error: Lexical error … title. isQueryParseError (src/services/datacite/datacite-service.ts) matches only parse_exception and failed to parse, so these reach the caller as a bare 400 with no reason and no recovery. An…

Read the thread · 2026-09-26 · closed · 3 comments

bug(datacite_search_works): text or a creator/funder name containing "/" fails with HTTP 400

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

Any text value containing / fails with an upstream HTTP 400, although text is documented as never producing a syntax error. escapeQueryText (src/services/datacite/query-builder.ts, RESERVED_RE) escapes / as \/, but DataCite escapes / itself: a raw / in query succeeds, while a pre-escaped \/ reproduces…

Read the thread · 2026-09-26 · closed · 3 comments

bug(datacite_trace_relations): fails on widely used GBIF datasets because the reverse-relation page is too large

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

26.5.0

Transport

stdio

OS

macOS

Description

datacite_trace_relations fails every time on a GBIF dataset DOI that many GBIF downloads cite. The reverse lookup asks /dois for 100 records asserting a relation to the root, with relatedIdentifiers in fields[dois]. Each GBIF download record lists thousands of related identifiers, so that one page is enormous.

Measured…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_get_citation): formats DataCite cannot render return an empty success or a bare HTTP 400/500, never format_unavailable

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

OS

macOS 27.0

Description

When DataCite cannot produce a format for a record, it does not answer 204, the status format_unavailable is keyed on. It answers 200 with an empty body, 400, or 500. datacite_get_citation returns the empty body as a success with citation: "", and the 400 and 500 as bare errors with no reason or…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_get_citation): locales tl-PH and hy-AM render APA in US English and override the requested style

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

OS

macOS 27.0

Description

Two locales in the bundled CSL list, tl-PH (Tagalog) and hy-AM (Armenian), are not supported by DataCite's renderer. DataCite answers them with its default APA en-US rendering, and datacite_get_citation returns that text labelled with the requested style and locale, with no notice. The other 61…

Read the thread · 2026-09-26 · closed · 2 comments

Most recent

feat(datacite_trace_relations): find reverse relations asserted through relatedItems

Use case

datacite_trace_relations finds reverse relations with one query, relatedIdentifiers.relatedIdentifier:"<doi>". A record that asserts its relation only in relatedItems is never found. About 85,600 records carry a DOI-typed related item and no relatedIdentifiers at all (relatedItems.relatedItemIdentifier.relatedItemIdentifierType:DOI AND NOT _exists_:relatedIdentifiers.relatedIdentifier).

For 10.83213/entr-gt71:

Reverse query Records
…

Read the thread · 2026-09-27 · open · 0 comments

bug(datacite_trace_relations): non-DataCite-root notice cites Event Data that was not read and calls unregistered DOIs another agency's

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

When DataCite holds no record for the root, the notice always says the edges include, "from Event Data, the DataCite works its own reference list cites", even with include_event_data: false, when Event Data was never read. It also opens with "<doi> is not a DataCite DOI" for a DOI that no agency registered, so a mistyped…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_trace_relations): relation_types misses relations the other side asserts, so HasPart finds no parts

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

relation_types matches only the type the edge's from record asserted. A part records IsPartOf <root>, so relation_types: ["HasPart"] sends relationType:(HasPart) on the reverse query and drops it. The call then says no relations were found, even though rootCounts.partCount is 1. The relation_types description…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_trace_relations): depth-2 reverse lookup drops records past the remaining node room without disclosure

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

At depth 2, the reverse query for the frontier is sized to the room left under max_nodes (Math.min(maxNodes - nodes.size, 100) in src/services/datacite/relation-graph.ts), and records past that page are never counted in available. When the page fits, the call drops the rest with truncated unset and no notice.…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_search_works): an ORCID URL with a trailing slash is rejected as a bad checksum

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

An ORCID iD URL with a trailing slash is rejected as failing its checksum, although the checksum is valid. The ORCID normaliser (src/services/datacite/normalize.ts) strips the orcid.org/ prefix but not a trailing /, so the check digit is read from the wrong character. The ROR normaliser already strips a trailing slash.…

Read the thread · 2026-09-26 · closed · 2 comments

bug(datacite_search_works): a cursor walk ending on a full page returns a nextCursor to an empty page

Server version

0.1.0

mcp-ts-core version

0.13.8

Runtime

Node.js

Runtime version

Node 26.5.0

Transport

HTTP (Streamable HTTP)

Description

In a cursor walk whose total is an exact multiple of limit, the last full page still returns a nextCursor. Following it costs one more call and returns an empty page with no notice. The nextCursor description says it is "absent on the last page". DataCite sends a next link whenever a page is full, and the server passes…

Read the thread · 2026-09-26 · closed · 2 comments

The remaining reports are on the project's issue tracker.