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
- Call
datacite_get_citationwith…
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.