Servidor MCP

orcid-mcp-server

io.github.cyanheads/orcid-mcp-server
Ciencia e ingeniería Búsqueda e investigación Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches ORCID researcher records and retrieves profiles, publications, affiliations, funding, peer reviews, and research resources.

orcid_get_affiliations
Get ORCID Researcher Affiliations
Fetch affiliation records for an ORCID researcher. The `types` parameter controls which affiliation sections to return: employment, education, invited-positions, distinctions, memberships, qualifications, services, or all. Default is employment and education. Returns organization names, disambiguated organization identifiers (ROR/GRID/Ringgold), departments, roles, and date ranges. Affiliation data is self-reported; absence does not mean no affiliation.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'types': {'type': 'array', 'items': {'enum': ['employment', 'education', 'invited-positions', 'distinctions', 'memberships', 'qualifications', 'services', 'all'], 'type': 'string', 'description': 'Affiliation section type. Use "all" to include all section types.'}, 'default': ['employment', 'education'], 'minItems': 1, 'description': 'Which affiliation types to return. Defaults to employment and education. Use ["all"] to get every section.'}, 'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'affiliationCount', 'affiliations', 'requestedTypes']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Note when no affiliations were found â\x80\x94 may indicate private visibility or no self-reported affiliations.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'affiliations': {'type': 'array', 'items': {'type': 'object', 'required': ['type'], 'properties': {'url': {'type': 'string', 'description': 'URL for the affiliation record, if provided.'}, 'role': {'type': 'string', 'description': 'Job title or role.'}, 'type': {'type': 'string', 'description': 'Affiliation section type (employment, education, invited-positions, etc.).'}, 'endDate': {'type': 'string', 'description': 'End date (YYYY, YYYY-MM, or YYYY-MM-DD). Absent if current.'}, 'startDate': {'type': 'string', 'description': 'Start date (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'department': {'type': 'string', 'description': 'Department or unit within the organization.'}, 'organization': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City of the organization.'}, 'name': {'type': 'string', 'description': 'Organization name.'}, 'country': {'type': 'string', 'description': 'Country of the organization.'}, 'disambiguatedId': {'type': 'string', 'description': 'Disambiguated organization identifier (ROR URL, GRID ID, or Ringgold ID).'}, 'disambiguationSource': {'type': 'string', 'description': 'Source of the disambiguation (ROR, GRID, or RINGGOLD).'}}, 'description': 'Organization details.', 'additionalProperties': False}}, 'description': 'Affiliation record.', 'additionalProperties': False}, 'description': 'Affiliation records for the requested types.'}, 'requestedTypes': {'type': 'array', 'items': {'type': 'string', 'description': 'Affiliation type.'}, 'description': 'Affiliation types that were requested.'}, 'affiliationCount': {'type': 'number', 'description': 'Total number of affiliation records returned.'}}, 'additionalProperties': False}
orcid_get_funding
Get ORCID Researcher Funding
Fetch funding records for an ORCID researcher: grants, contracts, awards, and salary awards. Returns funder names, funder organization identifiers, grant numbers, and funding periods. Funding data is entirely self-reported — most researchers do not enter funding even when they have grants. Absence of funding records does not imply absence of funding. When records exist they are high-value for grant tracking and funder analysis.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'fundingCount', 'funding']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Note when no funding is found â\x80\x94 absence of records does not mean absence of funding.'}, 'funding': {'type': 'array', 'items': {'type': 'object', 'required': ['grantNumbers'], 'properties': {'url': {'type': 'string', 'description': 'URL for the funding record, if available.'}, 'type': {'type': 'string', 'description': 'Funding type (e.g. grant, contract, award, salary-award).'}, 'title': {'type': 'string', 'description': 'Funding title or project name.'}, 'funder': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Funder city.'}, 'name': {'type': 'string', 'description': 'Funder organization name.'}, 'country': {'type': 'string', 'description': 'Funder country.'}, 'disambiguatedId': {'type': 'string', 'description': 'Disambiguated funder identifier (e.g. Crossref Funder ID URL or ROR URL).'}, 'disambiguationSource': {'type': 'string', 'description': 'Source of funder disambiguation (FUNDREF, ROR, GRID, etc.).'}}, 'description': 'Funder organization details.', 'additionalProperties': False}, 'endDate': {'type': 'string', 'description': 'Funding end date (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'startDate': {'type': 'string', 'description': 'Funding start date (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'grantNumbers': {'type': 'array', 'items': {'type': 'string', 'description': 'Grant or award number.'}, 'description': 'Grant numbers or award identifiers for this funding record.'}}, 'description': 'Funding record.', 'additionalProperties': False}, 'description': 'Funding records associated with this ORCID iD.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'fundingCount': {'type': 'number', 'description': 'Total number of funding records returned.'}}, 'additionalProperties': False}
orcid_get_peer_reviews
Get ORCID Researcher Peer Reviews
Fetch peer review activity for an ORCID researcher: convening organizations (journals and publishers), reviewer role (reviewer, editor, chair, etc.), review type, completion dates, and ISSN-keyed group identifiers. Use to assess editorial activity, journal affiliations, and the scope of a researcher's peer review contributions. Peer review records are self-reported or imported by participating publishers — coverage varies by researcher.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'reviewCount', 'peerReviews']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Note when no peer reviews are found â\x80\x94 coverage varies by researcher and publisher participation.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'peerReviews': {'type': 'array', 'items': {'type': 'object', 'properties': {'groupIssn': {'type': 'string', 'description': 'ISSN of the journal group this review belongs to, if available.'}, 'reviewUrl': {'type': 'string', 'description': 'URL for the review record, if available.'}, 'reviewType': {'type': 'string', 'description': 'Review type (e.g. review, evaluation, grant-review, editor-report).'}, 'reviewerRole': {'type': 'string', 'description': 'Reviewer role (e.g. reviewer, editor, chair, organizer, co-investigator, co-reviewer).'}, 'completionDate': {'type': 'string', 'description': 'Completion date of the review (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'conveningOrganization': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Convening organization city.'}, 'name': {'type': 'string', 'description': 'Convening organization name (journal or publisher).'}, 'country': {'type': 'string', 'description': 'Convening organization country.'}, 'disambiguatedId': {'type': 'string', 'description': 'Disambiguated organization identifier.'}, 'disambiguationSource': {'type': 'string', 'description': 'Source of disambiguation (ROR, GRID, RINGGOLD, etc.).'}}, 'description': 'Journal or publisher that convened the review.', 'additionalProperties': False}}, 'description': 'Peer review record.', 'additionalProperties': False}, 'description': 'Peer review records for this ORCID iD.'}, 'reviewCount': {'type': 'number', 'description': 'Total number of peer review records returned.'}}, 'additionalProperties': False}
orcid_get_profile
Get ORCID Researcher Profile
Fetch a researcher's public profile from ORCID: name, biography, keywords, researcher URLs, and external identifiers such as Scopus Author ID, ResearcherID, and Loop profile. This is the entry point for building a researcher dossier. Pass a bare ORCID iD (0000-0001-2345-6789) or a full URI (https://orcid.org/0000-0001-2345-6789). The profile contains only publicly visible data — researchers control visibility per field.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'keywords', 'researcherUrls', 'externalIdentifiers', 'emails', 'countries']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'emails': {'type': 'array', 'items': {'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'Email address.'}, 'primary': {'type': 'boolean', 'description': 'True when this is the primary email address.'}}, 'description': 'Email address entry.', 'additionalProperties': False}, 'description': 'Publicly visible email addresses.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format without URI prefix).'}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'description': 'Keyword term.'}, 'description': 'Research keywords set by the researcher.'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI (https://orcid.org/{id}).'}, 'biography': {'type': 'string', 'description': 'Researcher biography, if publicly visible.'}, 'countries': {'type': 'array', 'items': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code.'}, 'description': "Countries listed in the researcher's address section."}, 'creditName': {'type': 'string', 'description': 'Published credit name, if set.'}, 'familyName': {'type': 'string', 'description': 'Family (last) name, if publicly visible.'}, 'givenNames': {'type': 'string', 'description': 'Given (first) name, if publicly visible.'}, 'researcherUrls': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'URL value.'}, 'name': {'type': 'string', 'description': 'Label for this URL.'}}, 'description': 'Researcher URL entry.', 'additionalProperties': False}, 'description': 'Researcher-provided URLs (personal site, lab page, blog, etc.).'}, 'externalIdentifiers': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'url': {'type': 'string', 'description': 'Resolver URL for this identifier, if provided.'}, 'type': {'type': 'string', 'description': 'Identifier type (e.g. Scopus Author ID, ResearcherID, Loop).'}, 'value': {'type': 'string', 'description': 'Identifier value.'}, 'relationship': {'type': 'string', 'description': 'Relationship type (self or part-of).'}}, 'description': 'External identifier linking to another scholarly system.', 'additionalProperties': False}, 'description': 'External identifiers from scholarly systems (Scopus, Web of Science, Loop, etc.).'}}, 'additionalProperties': False}
orcid_get_research_resources
Get ORCID Research Resources
List research resources associated with an ORCID researcher — compute allocations, equipment access, lab facilities, data resources, and clinical study registrations. This is a newer ORCID section; most researchers have no entries. Returns the resource title, hosting organization, external identifiers (often a URI to the allocation portal), and access period. Most entries are deposited by resource-allocation systems (e.g. ACCESS, XSEDE) rather than researchers themselves.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'resourceCount', 'resources']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Note when no research resources are found â\x80\x94 this section is sparsely populated across ORCID profiles.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'resources': {'type': 'array', 'items': {'type': 'object', 'required': ['putCode', 'externalIds'], 'properties': {'url': {'type': 'string', 'description': 'URL for the resource or allocation record.'}, 'title': {'type': 'string', 'description': 'Resource or proposal title.'}, 'endDate': {'type': 'string', 'description': 'Access or allocation end date (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'putCode': {'type': 'number', 'description': 'Put-code of this research resource record.'}, 'startDate': {'type': 'string', 'description': 'Access or allocation start date (YYYY, YYYY-MM, or YYYY-MM-DD).'}, 'externalIds': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'url': {'type': 'string', 'description': 'Resolver URL for this identifier, if available.'}, 'type': {'type': 'string', 'description': 'Identifier type (e.g. uri, doi, grant_number).'}, 'value': {'type': 'string', 'description': 'Identifier value.'}, 'relationship': {'type': 'string', 'description': 'Relationship to the resource (self or part-of).'}}, 'description': 'External identifier for the research resource.', 'additionalProperties': False}, 'description': 'External identifiers for the resource (often a portal URI).'}, 'hostOrganization': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City of the organization.'}, 'name': {'type': 'string', 'description': 'Organization name.'}, 'country': {'type': 'string', 'description': 'Country code of the organization.'}, 'disambiguatedId': {'type': 'string', 'description': 'Disambiguated organization ID (e.g. ROR or GRID identifier).'}, 'disambiguationSource': {'type': 'string', 'description': 'Source of the disambiguation ID (e.g. ROR, GRID, RINGGOLD).'}}, 'description': 'Organization that hosts or manages the resource.', 'additionalProperties': False}}, 'description': 'Research resource record.', 'additionalProperties': False}, 'description': 'Research resources associated with this ORCID iD.'}, 'resourceCount': {'type': 'number', 'description': 'Total number of research resources returned.'}}, 'additionalProperties': False}
orcid_get_work_detail
Get ORCID Work Details (Bulk)
Fetch full detail records for 1–100 works by their put-codes in a single request. Put-codes are returned by orcid_get_works in the putCode field of each work entry. Returns the abstract (short-description), all contributors with CRediT roles, the complete external ID list (DOI, PMID, arXiv, ISBN, etc.), citation metadata (BibTeX or other formats when provided), journal title, and URL for each work. Per-record errors (not-found or inaccessible put-codes) are surfaced as error entries rather than failing the whole call. Records are added until the response reaches its 64,000-byte budget; put-codes left out are returned in deferredPutCodes to pass back in a follow-up call. A repeated put-code is fetched once.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id', 'put_codes'], 'properties': {'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}, 'put_codes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Work put-code (positive integer).', 'exclusiveMinimum': 0}, 'maxItems': 100, 'minItems': 1, 'description': 'Array of 1â\x80\x93100 work put-codes to fetch. Put-codes are available in the putCode field returned by orcid_get_works. A repeated put-code is fetched once. Any the 64,000-byte response budget leaves out come back in deferredPutCodes.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'works', 'errors']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found', 'fetch_failed'], 'description': 'Machine-readable failure mode. Declared by this tool: `profile_not_found`: The ORCID iD does not correspond to a registered researcher. `fetch_failed`: The ORCID bulk works endpoint returns an unexpected error. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'works': {'type': 'array', 'items': {'type': 'object', 'required': ['putCode', 'externalIds', 'contributors'], 'properties': {'url': {'type': 'string', 'description': 'URL for the work, when available.'}, 'title': {'type': 'string', 'description': 'Work title.'}, 'putCode': {'type': 'number', 'description': 'Put-code of this work record.'}, 'abstract': {'type': 'string', 'description': 'Abstract or short description, when provided.'}, 'citation': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'type': 'string', 'description': 'Citation format (e.g. bibtex, formatted-unspecified).'}, 'value': {'type': 'string', 'description': 'Citation string in the specified format.'}}, 'description': 'Citation metadata, when provided by the depositing system.', 'additionalProperties': False}, 'subtitle': {'type': 'string', 'description': 'Work subtitle, when provided.'}, 'workType': {'type': 'string', 'description': 'Work type (e.g. journal-article, dataset, software, preprint).'}, 'externalIds': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'url': {'type': 'string', 'description': 'Resolver URL for this identifier, if available.'}, 'type': {'type': 'string', 'description': 'Identifier type (e.g. doi, pmid, arxiv, isbn, ppr).'}, 'value': {'type': 'string', 'description': 'Identifier value.'}, 'relationship': {'type': 'string', 'description': 'Relationship to the work (self or part-of).'}}, 'description': 'External identifier for the work.', 'additionalProperties': False}, 'description': 'All external identifiers (DOIs, PMIDs, arXiv IDs, ISBNs, etc.).'}, 'contributors': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Contributor display name or credit name.'}, 'role': {'type': 'string', 'description': 'Contributor role (e.g. author, editor, conceptualization, data-curation). May be a CRediT taxonomy term.'}, 'orcidId': {'type': 'string', 'description': 'Contributor ORCID iD (bare format), if linked.'}, 'sequence': {'type': 'string', 'description': 'Contributor sequence position (first or additional).'}}, 'description': 'Work contributor with optional role and ORCID iD.', 'additionalProperties': False}, 'description': 'Work contributors with optional roles. May be empty if not deposited.'}, 'journalTitle': {'type': 'string', 'description': 'Journal or container title, when provided.'}, 'languageCode': {'type': 'string', 'description': 'Language code of the work, when provided.'}, 'publicationDate': {'type': 'string', 'description': 'Publication date (YYYY, YYYY-MM, or YYYY-MM-DD).'}}, 'description': 'Full detail record for one work.', 'additionalProperties': False}, 'description': 'Successfully resolved work detail records.'}, 'errors': {'type': 'array', 'items': {'type': 'object', 'required': ['message'], 'properties': {'message': {'type': 'string', 'description': 'Error message from ORCID (e.g. not found or access denied).'}, 'putCode': {'type': 'number', 'description': 'Put-code that produced this error, when identifiable.'}}, 'description': 'Error entry for a put-code that could not be resolved.', 'additionalProperties': False}, 'description': 'Per-record errors for put-codes that could not be resolved (not found or inaccessible). Empty when all put-codes resolved successfully.'}, 'notice': {'type': 'string', 'description': 'Note when the response budget deferred some put-codes â\x80\x94 call again with deferredPutCodes.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'deferredPutCodes': {'type': 'array', 'items': {'type': 'number', 'description': 'Deferred work put-code.'}, 'description': 'Requested put-codes left out because the response reached its 64,000-byte budget. Pass them as put_codes in another call to fetch them. Omitted when every put-code was fetched.'}}, 'additionalProperties': False}
orcid_get_works
Get ORCID Researcher Works
Retrieve works associated with an ORCID iD — publications, datasets, software, preprints, and more. Returns work summaries with put-codes, titles, types, publication dates, journal names, and all external identifiers (DOIs, PMIDs, arXiv IDs, ISBNs). The first 50 works are returned by default; workCount reports the total available, and prolific records are paged with offset and the returned nextOffset (or raise limit). A page also stops early once the response reaches its 64,000-byte budget, so returnedCount can come in below limit; truncated and nextOffset then carry the continuation. Set include_external_ids to false to omit identifier lists for a lighter payload. Pass the putCode from each work to orcid_get_work_detail to retrieve the full record including abstract and contributors. External IDs are ready for chaining to Crossref, PubMed, or arXiv servers. Works are self-reported; a researcher may not have linked all their publications.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orcid_id'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 1000, 'minimum': 1, 'description': 'Maximum works to return in this response (default 50, max 1000). The full list is sliced locally â\x80\x94 page prolific records with offset and the returned nextOffset. A page stops early at the 64,000-byte response budget, so a large limit may return fewer works.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based index of the first work to return (default 0). Combine with limit to page through the full works list.'}, 'orcid_id': {'type': 'string', 'pattern': '^(https?:\\/\\/orcid\\.org\\/)?\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$', 'description': 'ORCID iD â\x80\x94 bare format (0000-0001-2345-6789) or full URI (https://orcid.org/0000-0001-2345-6789).'}, 'include_external_ids': {'type': 'boolean', 'default': True, 'description': 'When true (default), each work carries its external identifiers (DOIs, PMIDs, arXiv IDs, ISBNs). Set false to omit them for a lighter payload when only titles, types, and dates are needed.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['orcidId', 'orcidUri', 'workCount', 'returnedCount', 'offset', 'truncated', 'works']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['profile_not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'works': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL for the work, if available.'}, 'title': {'type': 'string', 'description': 'Work title.'}, 'putCode': {'type': 'number', 'description': 'Work put-code â\x80\x94 pass to orcid_get_work_detail to fetch the full record including abstract and contributors.'}, 'workType': {'type': 'string', 'description': 'Work type (e.g. journal-article, dataset, software, preprint).'}, 'externalIds': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'url': {'type': 'string', 'description': 'Resolver URL for this identifier, if available.'}, 'type': {'type': 'string', 'description': 'Identifier type (e.g. doi, pmid, arxiv, isbn).'}, 'value': {'type': 'string', 'description': 'Identifier value.'}, 'relationship': {'type': 'string', 'description': 'Relationship to the work (self or part-of).'}}, 'description': 'External identifier for a work.', 'additionalProperties': False}, 'description': 'External identifiers (DOIs, PMIDs, arXiv IDs, ISBNs, etc.). Omitted when include_external_ids is false.'}, 'journalTitle': {'type': 'string', 'description': 'Journal or container title.'}, 'publicationDate': {'type': 'string', 'description': 'Publication date (YYYY, YYYY-MM, or YYYY-MM-DD).'}}, 'description': 'Work summary record.', 'additionalProperties': False}, 'description': 'Works for this ORCID iD, sliced to the requested offset and limit and to the response budget.'}, 'notice': {'type': 'string', 'description': 'Note when the works list is empty â\x80\x94 may indicate no self-reported works or private visibility settings.'}, 'offset': {'type': 'number', 'description': 'Zero-based offset applied to the full works list for this response.'}, 'orcidId': {'type': 'string', 'description': 'Normalized ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'truncated': {'type': 'boolean', 'description': 'True when more works are available beyond this response, whether limit or the response budget ended the page â\x80\x94 fetch them with nextOffset.'}, 'workCount': {'type': 'number', 'description': 'Total works available for this ORCID iD, before offset and limit are applied.'}, 'nextOffset': {'type': 'number', 'description': 'Offset to pass on the next call to continue paging. Omitted when this response includes the final work.'}, 'returnedCount': {'type': 'number', 'description': 'Number of works returned in this response, after applying offset, limit, and the 64,000-byte response budget.'}}, 'additionalProperties': False}
orcid_resolve_researcher
Resolve ORCID Researcher
Disambiguate an author name to a verified ORCID iD. Returns ranked candidates (5 by default, up to 20 via the rows parameter) with transparent disambiguation signals: name match type (exact/partial/other-name/none), institution overlap flag, and whether a DOI or PMID anchor was used in the query. A DOI or PMID anchor is near-deterministic — it filters to researchers who have linked that specific work to their ORCID record. Use this tool (not orcid_search_researchers) when the input is an ambiguous name that needs ranked disambiguation. No synthetic scores are used — raw signals only.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'doi': {'type': 'string', 'description': 'DOI of a work authored by this researcher, bare (10.1126/science.1225829) or as a https://doi.org/, https://dx.doi.org/, or doi: form. Acts as a near-deterministic anchor â\x80\x94 filters to researchers who linked this DOI to their ORCID record.'}, 'name': {'type': 'string', 'minLength': 1, 'description': 'Author name to disambiguate (full name preferred, e.g. "Jennifer Doudna" or "J. Doudna").'}, 'pmid': {'type': 'string', 'description': 'PubMed ID of a work authored by this researcher, bare (22745249), as PMID:22745249, or as a pubmed.ncbi.nlm.nih.gov or ncbi.nlm.nih.gov/pubmed URL. Acts as a near-deterministic anchor â\x80\x94 filters to researchers who linked this PMID to their ORCID record.'}, 'rows': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Maximum candidate count to return (1â\x80\x9320). Defaults to 5.'}, 'affiliation': {'type': 'string', 'description': "Researcher's institution or organization name. Used for institution overlap scoring and optionally as a search constraint."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['candidates', 'queryUsed', 'totalFound', 'primaryQuery', 'primaryTotalFound']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['query_failed'], 'description': 'Machine-readable failure mode. Declared by this tool: `query_failed`: ORCID rejects a search built from the supplied name, affiliation, or identifier anchor. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Recovery hint when no candidates are found or when the anchor query failed to match.'}, 'queryUsed': {'type': 'string', 'description': 'The Solr query that produced the returned candidates â\x80\x94 the primary query, or the final relaxed query when a fallback ran. Paired with totalFound.'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['orcidId', 'orcidUri', 'institutionNames', 'nameMatchType', 'institutionOverlap', 'anchorType'], 'properties': {'orcidId': {'type': 'string', 'description': 'Candidate ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'anchorType': {'enum': ['doi', 'pmid', 'none'], 'type': 'string', 'description': 'Type of identifier anchor used in the query: doi, pmid, or none. A doi or pmid anchor means the candidate has linked that work to their ORCID record.'}, 'creditName': {'type': 'string', 'description': 'Published credit name, if set.'}, 'givenNames': {'type': 'string', 'description': 'Given names from the ORCID record.'}, 'familyNames': {'type': 'string', 'description': 'Family name from the ORCID record.'}, 'nameMatchType': {'enum': ['exact', 'partial', 'other-name', 'none'], 'type': 'string', 'description': 'How closely the candidate name matches the input name, compared case- and accent-insensitively (José = Jose): exact (full match), partial (token overlap), other-name (match on alternate name), or none.'}, 'institutionNames': {'type': 'array', 'items': {'type': 'string', 'description': 'Institution name.'}, 'description': 'Affiliated institutions from the ORCID record.'}, 'institutionOverlap': {'type': 'boolean', 'description': "True when the provided affiliation and one of the candidate's institutions are the same name, or one appears inside the other as a contiguous run of words (so an abbreviated form still matches its full name). A single shared word such as a city or surname is not enough."}}, 'description': 'Disambiguation candidate with transparency signals.', 'additionalProperties': False}, 'description': 'Ranked candidates, ordered by name match quality then institution overlap.'}, 'totalFound': {'type': 'number', 'description': 'Total ORCID records matching queryUsed (the query that produced the returned candidates).'}, 'primaryQuery': {'type': 'string', 'description': 'The primary, most-constrained Solr query attempted first (name + optional anchor + optional affiliation). Always populated; equals queryUsed when no relaxed fallback ran.'}, 'relaxedQuery': {'type': 'string', 'description': 'Solr query used in a secondary relaxed search, if the primary returned no results.'}, 'primaryTotalFound': {'type': 'number', 'description': 'Total ORCID records matching primaryQuery. Zero when the primary query found nothing and a relaxed fallback produced the returned candidates.'}}, 'additionalProperties': False}
orcid_search_researchers
Search ORCID Researchers
Search the ORCID registry using structured field parameters or raw Solr syntax. Provide at least one non-blank search field; all provided structured params are ANDed together. The `query` field appends raw Solr syntax to the generated clause. Returns ORCID iDs with inline name and institution data — no follow-up profile fetches needed for basic disambiguation. For ranked disambiguation of an ambiguous author name, use orcid_resolve_researcher instead. The ORCID Public API caps results at 10,000 — use pagination for large result sets.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'doi': {'type': 'string', 'description': 'DOI to anchor the search, bare (10.1126/science.1225829) or as a https://doi.org/, https://dx.doi.org/, or doi: form. Returns researchers who have linked this DOI to their ORCID record.'}, 'pmid': {'type': 'string', 'description': 'PubMed ID to anchor the search, bare (22745249), as PMID:22745249, or as a pubmed.ncbi.nlm.nih.gov or ncbi.nlm.nih.gov/pubmed URL. Returns researchers who have linked this PMID to their ORCID record.'}, 'rows': {'type': 'integer', 'default': 20, 'maximum': 1000, 'minimum': 1, 'description': 'Maximum results to return (1â\x80\x931000).'}, 'query': {'type': 'string', 'description': 'Raw Solr query string appended to the generated clause with AND. Supports all ORCID Solr fields and boolean operators.'}, 'start': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Pagination offset (0-based), 0â\x80\x9310,000. The ORCID Public API rejects start > 10,000 for unauthenticated requests.'}, 'ror_id': {'type': 'string', 'description': 'ROR organization ID to filter by (full URL, e.g. https://ror.org/00f54p054). Returns researchers affiliated with this organization.'}, 'keyword': {'type': 'string', 'description': "Keyword to search in the researcher's keyword fields. Phrase match."}, 'given_name': {'type': 'string', 'description': "Researcher's given (first) name."}, 'affiliation': {'type': 'string', 'description': 'Organization name to filter by. Phrase match.'}, 'family_name': {'type': 'string', 'description': "Researcher's family (last) name."}, 'grant_number': {'type': 'string', 'description': 'Grant or award number on a funding item in the researcher record (e.g. 5F31MH010500-03). Matched as a case-insensitive phrase over the parts between separators such as hyphens and slashes: 5F31MH010500 also matches 5F31MH010500-03, but a number cut mid-part (5F31MH0105) matches nothing. Not an exact identifier lookup.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['results', 'rows', 'start', 'effectiveQuery', 'numFound', 'truncated']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'rows': {'type': 'number', 'description': 'Number of results returned in this response.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['query_failed'], 'description': 'Machine-readable failure mode. Declared by this tool: `query_failed`: ORCID rejects the compiled Solr query â\x80\x94 most often malformed raw query syntax. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'start': {'type': 'number', 'description': 'Pagination offset used for this response.'}, 'notice': {'type': 'string', 'description': 'Recovery hint when results are empty, pagination overshoots the total, or matches exceed the 10,000-offset ceiling. Absent on fully retrievable pages.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['orcidId', 'orcidUri', 'otherNames', 'institutionNames'], 'properties': {'orcidId': {'type': 'string', 'description': 'ORCID iD (bare format).'}, 'orcidUri': {'type': 'string', 'description': 'Full ORCID URI.'}, 'creditName': {'type': 'string', 'description': 'Published credit name, if set.'}, 'givenNames': {'type': 'string', 'description': 'Given names from the ORCID record.'}, 'otherNames': {'type': 'array', 'items': {'type': 'string', 'description': 'Alternative name.'}, 'description': 'Other names listed on the ORCID record.'}, 'familyNames': {'type': 'string', 'description': 'Family name from the ORCID record.'}, 'institutionNames': {'type': 'array', 'items': {'type': 'string', 'description': 'Institution name.'}, 'description': 'Affiliated institution names returned inline with each search result.'}}, 'description': 'Expanded search result for one researcher.', 'additionalProperties': False}, 'description': 'Matching researchers with inline name and institution data.'}, 'numFound': {'type': 'number', 'description': 'Total number of matching records in ORCID (before pagination).'}, 'nextStart': {'type': 'number', 'description': 'Offset to pass as start on the next call to continue paging. Present only when more matches remain below the ORCID Public API 10,000-offset ceiling; omitted at the final reachable page and when this response already includes the last match.'}, 'truncated': {'type': 'boolean', 'description': "True when numFound exceeds the ORCID Public API's 10,000-offset retrieval ceiling, so some matches cannot be paged to with the current query. Narrow or partition the query to reach them."}, 'effectiveQuery': {'type': 'string', 'description': 'Solr query sent to the ORCID API.'}}, 'additionalProperties': False}
Modificado
orcid_resolve_researcher
25 de September de 2026 a las 02:51
Modificado
orcid_get_research_resources
25 de September de 2026 a las 02:51
Modificado
orcid_get_peer_reviews
25 de September de 2026 a las 02:51
Modificado
orcid_get_funding
25 de September de 2026 a las 02:51
Modificado
orcid_get_affiliations
25 de September de 2026 a las 02:51
Modificado
orcid_get_work_detail
25 de September de 2026 a las 02:51
Modificado
orcid_get_works
25 de September de 2026 a las 02:51
Modificado
orcid_search_researchers
25 de September de 2026 a las 02:51
Modificado
orcid_get_profile
25 de September de 2026 a las 02:51
Añadido
orcid_resolve_researcher
17 de September de 2026 a las 12:41
Añadido
orcid_get_research_resources
17 de September de 2026 a las 12:41
Añadido
orcid_get_peer_reviews
17 de September de 2026 a las 12:41
Añadido
orcid_get_funding
17 de September de 2026 a las 12:41
Añadido
orcid_get_affiliations
17 de September de 2026 a las 12:41
Añadido
orcid_get_work_detail
17 de September de 2026 a las 12:41
Añadido
orcid_get_works
17 de September de 2026 a las 12:41
Añadido
orcid_search_researchers
17 de September de 2026 a las 12:41
Añadido
orcid_get_profile
17 de September de 2026 a las 12:41