Skip to main content
Glama

Get DataCite work

datacite_get_work
Read-onlyIdempotent

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 Schema

NameRequiredDescriptionDefault
doiYesThe 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.
listNoOne capped list to page in deposit order; other record fields keep their default caps.
offsetNoZero-based offset into valid mapped entries of list. Defaults to zero with list; requires list.

Output Schema

NameRequiredDescriptionDefault
doiNoThe DOI, normalized to lowercase bare form.
datesNoDates. Found arm only.
errorNoPresent when the call failed. Absent on success.
foundNoTrue when DataCite holds a public record for the DOI.
sizesNoSizes as deposited, e.g. "2123413 bytes". Found arm only.
countsNoDataCite's own counts; they can trail the live record by a few events. Found arm only.
doiUrlNoResolver URL, https://doi.org/<doi>, with #, ?, and % percent-encoded. Found arm only.
noticeNoDiscloses omitted malformed polygon geometry; other valid geographic fields remain available.
rightsNoThe work's own rights and licenses — distinct from metadataLicense. Found arm only.
titlesNoEvery title, main title first. Found arm only.
createdNoWhen the record was created. Found arm only.
formatsNoFormats as deposited. Found arm only.
updatedNoWhen the record was last updated. Found arm only.
versionNoVersion string. Found arm only.
creatorsNoCreators, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
guidanceNoThe next step for this miss. Miss arm only.
languageNoLanguage as deposited, usually an ISO 639-1 code such as en. Found arm only.
listPageNoPaging metadata for the selected list, including empty and past-end pages. Found arm only.
subjectsNoSubjects, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
publisherNoPublisher. Found arm only.
landingUrlNoThe repository's landing page. Found arm only.
missReasonNoWhy 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.
registeredNoWhen the DOI was registered. Found arm only.
repositoryNoThe DataCite repository that registered the DOI. Found arm only.
contentUrlsNoDirect content URLs, when deposited. Found arm only.
contributorsNoContributors, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
descriptionsNoDescriptions. Found arm only.
geoLocationsNoGeolocations, up to 50; full count in truncatedLists by default or listPage when selected. Found arm only.
relatedItemsNoRelated 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.
resourceTypeNoFree-text resource type the depositor gave. Found arm only.
schemaVersionNoDataCite metadata schema version URI. Found arm only.
truncatedListsNoLists the caps bound, with their full counts. Present only when a cap bound.
metadataLicenseNoLicense of the DataCite metadata itself (CC0 1.0), not of the work it describes. Found arm only.
publicationYearNoPublication year. Found arm only.
fundingReferencesNoFunding, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only.
registrationAgencyNoRegistration agency that holds the DOI (e.g. Crossref, mEDRA, DataCite), when known. Miss arm only.
relatedIdentifiersNoRelated identifiers, capped at 100 (full counts in relatedIdentifierCounts). Found arm only.
resourceTypeGeneralNoresourceTypeGeneral, e.g. Dataset or Software. Found arm only.
alternateIdentifiersNoAlternate identifiers. Found arm only.
relatedIdentifierCountsNorelationType → full count of related identifiers, before the cap. Found arm only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / geoLocations / items / properties / polygon
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Deposited polygon boundary and optional interior point.",
      +  "properties": {
      +    "inPolygonPoint": {
      +      "additionalProperties": false,
      +      "description": "Deposited interior point.",
      +      "properties": {
      +        "latitude": {
      +          "description": "Latitude, decimal degrees.",
      +          "type": "number"
      +        },
      +        "longitude": {
      +          "description": "Longitude, decimal degrees.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "latitude",
      +        "longitude"
      +      ],
      +      "type": "object"
      +    },
      +    "points": {
      +      "description": "Polygon vertices in deposit order, including a repeated closing vertex when deposited.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "One deposited polygon vertex.",
      +        "properties": {
      +          "latitude": {
      +            "description": "Latitude, decimal degrees.",
      +            "type": "number"
      +          },
      +          "longitude": {
      +            "description": "Longitude, decimal degrees.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "latitude",
      +          "longitude"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "points"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Discloses omitted malformed polygon geometry; other valid geographic fields remain available.",
      +  "type": "string"
      +}
  2. Changed15 schema fields changed
    • addedInput schema / properties / list
      Added value: +{
      +  "description": "One capped list to page in deposit order; other record fields keep their default caps.",
      +  "enum": [
      +    "creators",
      +    "contributors",
      +    "relatedIdentifiers",
      +    "subjects",
      +    "fundingReferences",
      +    "relatedItems",
      +    "geoLocations"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Zero-based offset into valid mapped entries of list. Defaults to zero with list; requires list.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / contributors / description
      Previous value: -"Contributors, capped at 100 (full count in truncatedLists). Found arm only."New value: +"Contributors, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only."
    • changedOutput schema / properties / creators / description
      Previous value: -"Creators, capped at 100 (full count in truncatedLists). Found arm only."New value: +"Creators, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_doi`: The doi input is not a DOI after normalization. `rate_limited`: This deployment's shared DataCite request budget is spent: its request queue could not start a request before the call's deadline, or DataCite answered HTTP 429. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `offset_without_list`: An offset is supplied without a selected list. `invalid_doi`: The doi input is not a DOI after normalization. `rate_limited`: This deployment's shared DataCite request budget is spent: its request queue could not start a request before the call's deadline, or DataCite answered HTTP 429. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "invalid_doi",
      -  "rate_limited"
      -]New value: +[
      +  "offset_without_list",
      +  "invalid_doi",
      +  "rate_limited"
      +]
    • changedOutput schema / properties / fundingReferences / description
      Previous value: -"Funding, capped at 100 (full count in truncatedLists). Found arm only."New value: +"Funding, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only."
    • changedOutput schema / properties / geoLocations / description
      Previous value: -"Geolocations, capped at 50 (full count in truncatedLists). Found arm only."New value: +"Geolocations, up to 50; full count in truncatedLists by default or listPage when selected. Found arm only."
    • addedOutput schema / properties / listPage
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Paging metadata for the selected list, including empty and past-end pages. Found arm only.",
      +  "properties": {
      +    "list": {
      +      "description": "The selected record list.",
      +      "enum": [
      +        "creators",
      +        "contributors",
      +        "relatedIdentifiers",
      +        "subjects",
      +        "fundingReferences",
      +        "relatedItems",
      +        "geoLocations"
      +      ],
      +      "type": "string"
      +    },
      +    "nextOffset": {
      +      "description": "Next offset for this same list and DOI; absent at the end.",
      +      "type": "number"
      +    },
      +    "offset": {
      +      "description": "Requested zero-based offset into valid mapped entries.",
      +      "type": "number"
      +    },
      +    "total": {
      +      "description": "Total valid mapped entries before capping.",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "list",
      +    "offset",
      +    "total"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / relatedItems / description
      Previous value: -"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."New value: +"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."
    • changedOutput schema / properties / relatedItems / items / properties / title / description
      Previous value: -"Related item title."New value: +"Plain-text related item title, normalized once."
    • changedOutput schema / properties / subjects / description
      Previous value: -"Subjects, capped at 100 (full count in truncatedLists). Found arm only."New value: +"Subjects, up to 100; full count in truncatedLists by default or listPage when selected. Found arm only."
    • changedOutput schema / properties / titles / items / properties / title / description
      Previous value: -"Title text."New value: +"Plain-text title, with formatting tags removed and entities decoded once."
    • addedOutput schema / properties / truncatedLists / items / properties / nextOffset
      Added value: +{
      +  "description": "First unread offset; call again with list set to field and this offset.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / truncatedLists / items / required
      Previous value: -[
      -  "field",
      -  "shown",
      -  "total"
      -]New value: +[
      +  "field",
      +  "shown",
      +  "total",
      +  "nextOffset"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world and idempotent, and the description still adds substantial behavior: long lists are capped with exact list/offset continuation recipes, and a DOI not held by DataCite returns found: false naming the responsible registration agency. That describes both truncation and the miss case, which annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and dense with specifics; the field enumeration is long but each item tells the agent what is retrievable. Could be tightened by grouping the field list, but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return value shape need not be explained, and the description still covers the two things the schema cannot: truncation/continuation and the not-found outcome. For a 3-parameter read tool with full schema coverage, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns a bump by explaining the purpose of `list`/`offset` — page one list while other fields keep default caps — which is the rationale behind the parameter pair rather than a restatement. DOI format handling is left entirely to the schema, which is reasonable given the regex and example there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — fetch full deposited DataCite metadata for one DOI — and enumerates the payload scope (titles, creators with ORCID/ROR, funding, related identifiers, counts). It also positions itself against datacite_trace_relations, so an agent can separate this record-fetch tool from the graph traversal sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is clear from context: call it with a DOI when the full record is wanted, and pass `list` to page one capped list without losing the rest. It also routes graph-shaped queries to datacite_trace_relations and out-of-scope DOIs to the named registration agency. It never explicitly contrasts with datacite_search_works or datacite_get_citation, so the sibling differentiation is partial rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.