Skip to main content
Glama

Get ORCID Researcher Funding

orcid_get_funding
Read-onlyIdempotent

List funding for an ORCID researcher, or supply a summary putCode as put_code to fetch one deposited award. Summary returns one preferred record per grant group with all sources and distinct periods. Detail returns that deposit alone with its own source, optional exact decimal amount and currency, URL, and its whole deposited description (ORCID caps it at 5,000 characters). Funding records are sparse; absence does not imply no funding.

Input Schema

NameRequiredDescriptionDefault
orcid_idYesORCID iD — bare (0000-0001-2345-6789) or as an orcid.org URI (https://orcid.org/0000-0001-2345-6789). The check digit may be X or x.
put_codeNoSelected deposit putCode from a funding summary. Omit to list grouped summaries.

Output Schema

NameRequiredDescriptionDefault
viewNoGrouped summaries or one selected deposit.summary
errorNoPresent when the call failed. Absent on success.
noticeNoNote when no funding is found — absence of records does not mean absence of funding — or when a deprecated iD was served from its primary iD.
fundingNoFunding group summaries or one selected funding deposit.
orcidIdNoNormalized ORCID iD (bare format).
orcidUriNoFull ORCID URI.
fundingCountNoNumber of funding items returned: one per group in summary, one deposit in detail.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • removedInput schema / properties / description_offset
      Removed value: -{
      -  "description": "Unicode code-point offset into the deposited description, default 0; requires put_code.",
      -  "maximum": 9007199254740991,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedOutput schema / properties / budgetOverflow
      Removed value: -{
      -  "description": "Explicit exception when metadata or one indivisible code point exceeds the 64,000-byte detail budget.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `detail_required`: description_offset is provided without a funding selector. `funding_not_found`: The selected funding deposit is unavailable at this ORCID iD. `funding_inaccessible`: ORCID denies public access to the selected funding deposit. `profile_not_found`: The ORCID iD does not correspond to a registered researcher. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `funding_not_found`: The selected funding deposit is unavailable at this ORCID iD. `funding_inaccessible`: ORCID denies public access to the selected funding deposit. `profile_not_found`: The ORCID iD does not correspond to a registered researcher. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "detail_required",
      -  "funding_not_found",
      -  "funding_inaccessible",
      -  "profile_not_found"
      -]New value: +[
      +  "funding_not_found",
      +  "funding_inaccessible",
      +  "profile_not_found"
      +]
    • changedOutput schema / properties / funding / items / properties / description / description
      Previous value: -"Exact deposited description page, including its original line endings."New value: +"Deposited description, whole and exact, including its original line endings. Detail view only."
    • removedOutput schema / properties / funding / items / properties / descriptionLength
      Removed value: -{
      -  "description": "Full deposited description length in Unicode code points.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / funding / items / properties / descriptionOffset
      Removed value: -{
      -  "description": "Starting Unicode code-point offset of this description page.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / funding / items / properties / nextDescriptionOffset
      Removed value: -{
      -  "description": "First omitted code point; pass as description_offset with the same put_code.",
      -  "type": "number"
      -}
    • changedOutput schema / properties / funding / items / properties / sources / items / properties / selfAsserted / description
      Previous value: -"True when the asserting party (the assertion origin when recorded, otherwise the source) is the requested ORCID iD; false when a member organization or another ORCID user asserted the item."New value: +"True when the asserting party (the assertion origin when recorded, otherwise the source) is the record's ORCID iD (orcidId); false when a member organization or another ORCID user asserted the item."
    • changedOutput schema / properties / notice / description
      Previous value: -"Note when no funding is found — absence of records does not mean absence of funding."New value: +"Note when no funding is found — absence of records does not mean absence of funding — or when a deprecated iD was served from its primary iD."
  2. Changed16 schema fields changed
    • addedInput schema / properties / description_offset
      Added value: +{
      +  "description": "Unicode code-point offset into the deposited description, default 0; requires put_code.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / put_code
      Added value: +{
      +  "description": "Selected deposit putCode from a funding summary. Omit to list grouped summaries.",
      +  "exclusiveMinimum": 0,
      +  "maximum": 9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budgetOverflow
      Added value: +{
      +  "description": "Explicit exception when metadata or one indivisible code point exceeds the 64,000-byte detail budget.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `profile_not_found`: The ORCID iD does not correspond to a registered researcher. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `detail_required`: description_offset is provided without a funding selector. `funding_not_found`: The selected funding deposit is unavailable at this ORCID iD. `funding_inaccessible`: ORCID denies public access to the selected funding deposit. `profile_not_found`: The ORCID iD does not correspond to a registered researcher. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "profile_not_found"
      -]New value: +[
      +  "detail_required",
      +  "funding_not_found",
      +  "funding_inaccessible",
      +  "profile_not_found"
      +]
    • changedOutput schema / properties / funding / description
      Previous value: -"Funding items associated with this ORCID iD, one per ORCID funding group."New value: +"Funding group summaries or one selected funding deposit."
    • changedOutput schema / properties / funding / items / description
      Previous value: -"Funding item: one ORCID funding group, built from its preferred version."New value: +"One preferred funding group summary or the selected deposit detail."
    • addedOutput schema / properties / funding / items / properties / amount
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Deposited amount and currency; missing values are not inferred.",
      +  "properties": {
      +    "currency": {
      +      "description": "Deposited currency code, when present.",
      +      "type": "string"
      +    },
      +    "value": {
      +      "description": "Exact deposited decimal text; no numeric conversion.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / funding / items / properties / description
      Added value: +{
      +  "description": "Exact deposited description page, including its original line endings.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / funding / items / properties / descriptionLength
      Added value: +{
      +  "description": "Full deposited description length in Unicode code points.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / funding / items / properties / descriptionOffset
      Added value: +{
      +  "description": "Starting Unicode code-point offset of this description page.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / funding / items / properties / nextDescriptionOffset
      Added value: +{
      +  "description": "First omitted code point; pass as description_offset with the same put_code.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / funding / items / properties / putCode
      Added value: +{
      +  "description": "Preferred summary or selected deposit put-code; pass as put_code for detail.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / funding / items / properties / sources / description
      Previous value: -"Every party that added this funding item to the ORCID record — the researcher, a funder or institution, or a search-and-link tool — one entry per distinct source in the funding group, the preferred version's first. Empty when ORCID records no source."New value: +"The parties that added the funding item: every distinct group source in summary, the selected deposit's own source in detail. Empty when ORCID records no source."
    • changedOutput schema / properties / fundingCount / description
      Previous value: -"Number of funding items returned, one per ORCID funding group — versions of one grant added by different sources or deposited twice count once."New value: +"Number of funding items returned: one per group in summary, one deposit in detail."
    • addedOutput schema / properties / view
      Added value: +{
      +  "default": "summary",
      +  "description": "Grouped summaries or one selected deposit.",
      +  "enum": [
      +    "summary",
      +    "detail"
      +  ],
      +  "type": "string"
      +}
  3. Changed8 schema fields changed
    • changedInput schema / properties / orcid_id / description
      Previous value: -"ORCID iD — bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789)."New value: +"ORCID iD — bare (0000-0001-2345-6789) or as an orcid.org URI (https://orcid.org/0000-0001-2345-6789). The check digit may be X or x."
    • changedInput schema / properties / orcid_id / pattern
      Previous value: -"^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$"New value: +"^(?:(?:https?:\\/\\/)?(?:www\\.)?orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dXx]\\/?$"
    • changedOutput schema / properties / funding / description
      Previous value: -"Funding records associated with this ORCID iD."New value: +"Funding items associated with this ORCID iD, one per ORCID funding group."
    • changedOutput schema / properties / funding / items / description
      Previous value: -"Funding record."New value: +"Funding item: one ORCID funding group, built from its preferred version."
    • addedOutput schema / properties / funding / items / properties / periods
      Added value: +{
      +  "description": "Every distinct award period the funding item's versions record, ordered by start date — present only when there are two or more, such as renewals under one grant number. The other fields come from ORCID's preferred version.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "Award period one version of this funding item records.",
      +    "properties": {
      +      "endDate": {
      +        "description": "Period end date (YYYY, YYYY-MM, or YYYY-MM-DD).",
      +        "type": "string"
      +      },
      +      "startDate": {
      +        "description": "Period start date (YYYY, YYYY-MM, or YYYY-MM-DD).",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / funding / items / properties / sources
      Added value: +{
      +  "description": "Every party that added this funding item to the ORCID record — the researcher, a funder or institution, or a search-and-link tool — one entry per distinct source in the funding group, the preferred version's first. Empty when ORCID records no source.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "A party that asserted this item on the ORCID record.",
      +    "properties": {
      +      "assertionOriginName": {
      +        "description": "Party the source added the item on behalf of, when ORCID records one — usually the researcher, for an item added through a search-and-link tool.",
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "Name of the person or member organization system that added the item (e.g. a university research information system, Crossref, Scopus - Elsevier). Absent when ORCID records no name.",
      +        "type": "string"
      +      },
      +      "selfAsserted": {
      +        "description": "True when the asserting party (the assertion origin when recorded, otherwise the source) is the requested ORCID iD; false when a member organization or another ORCID user asserted the item.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "selfAsserted"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / funding / items / required
      Previous value: -[
      -  "grantNumbers"
      -]New value: +[
      +  "grantNumbers",
      +  "sources"
      +]
    • changedOutput schema / properties / fundingCount / description
      Previous value: -"Total number of funding records returned."New value: +"Number of funding items returned, one per ORCID funding group — versions of one grant added by different sources or deposited twice count once."
  4. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "orcidId",
      +      "orcidUri",
      +      "fundingCount",
      +      "funding"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `profile_not_found`: The ORCID iD does not correspond to a registered researcher. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "profile_not_found"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "orcidId",
      -  "orcidUri",
      -  "fundingCount",
      -  "funding"
      -]
  5. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world behavior, so the description focuses on response shape: summaries collapse to one preferred record per grant group with all sources and distinct periods, detail returns a single deposit with its own source, exact decimal amount/currency, URL and the full description. The 5,000-character truncation cap and the sparsity caveat are exactly the kind of non-obvious behavior annotations cannot convey.

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

Conciseness5/5

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

Front-loads the two modes in the first clause, then unpacks each mode's return shape, then ends with the single most important caveat. No filler or restated boilerplate; every sentence carries information.

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?

With an output schema present, the description does not need to re-document fields, and it still adds the two things an agent cannot infer: grouped-vs-detail semantics and the deposit description truncation limit. Annotations plus schema plus this description leave nothing important unstated for a two-parameter read tool.

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, but the description adds semantics the schema does not: put_code is a deposit-level key drawn from a summary result, and supplying it switches the call from grouped listing to single-deposit detail. That mode-switching meaning is genuinely additive.

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 (list funding for an ORCID researcher) and immediately names the second mode (fetch one deposited award by putCode). No sibling tool covers funding, so the agent can route on the resource name alone.

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?

Explicitly tells the agent how to choose between modes: omit put_code to list grouped summaries, supply a summary putCode to fetch a single deposit. Adds a useful expectation-setting caveat that funding records are sparse and absence is not evidence of no funding. Lacks guidance on what to do when the result is empty (e.g. fall back to profile or another source).

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.