UNPKG

@cyanheads/pubmed-mcp-server

Version:

Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP.

108 lines 5.36 kB
/** * @fileoverview PubMed fetch tool. Fetches full article metadata by PubMed IDs, * including abstracts, authors, journal info, and MeSH terms. * @module src/mcp-server/tools/definitions/fetch-articles.tool */ import { z } from '@cyanheads/mcp-ts-core'; import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors'; export declare const fetchArticlesTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{ pmids: z.ZodArray<z.ZodString>; includeMesh: z.ZodDefault<z.ZodBoolean>; includeGrants: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>, z.ZodObject<{ articles: z.ZodArray<z.ZodObject<{ pmid: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodString>; abstractText: z.ZodOptional<z.ZodString>; affiliations: z.ZodOptional<z.ZodArray<z.ZodString>>; authors: z.ZodOptional<z.ZodArray<z.ZodObject<{ lastName: z.ZodOptional<z.ZodString>; firstName: z.ZodOptional<z.ZodString>; initials: z.ZodOptional<z.ZodString>; collectiveName: z.ZodOptional<z.ZodString>; affiliationIndices: z.ZodOptional<z.ZodArray<z.ZodNumber>>; orcid: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; journalInfo: z.ZodOptional<z.ZodObject<{ title: z.ZodOptional<z.ZodString>; isoAbbreviation: z.ZodOptional<z.ZodString>; issn: z.ZodOptional<z.ZodString>; eIssn: z.ZodOptional<z.ZodString>; volume: z.ZodOptional<z.ZodString>; issue: z.ZodOptional<z.ZodString>; pages: z.ZodOptional<z.ZodString>; publicationDate: z.ZodOptional<z.ZodObject<{ year: z.ZodOptional<z.ZodString>; month: z.ZodOptional<z.ZodString>; day: z.ZodOptional<z.ZodString>; medlineDate: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; doi: z.ZodOptional<z.ZodString>; pmcId: z.ZodOptional<z.ZodString>; pubmedUrl: z.ZodOptional<z.ZodString>; pmcUrl: z.ZodOptional<z.ZodString>; publicationTypes: z.ZodOptional<z.ZodArray<z.ZodString>>; keywords: z.ZodOptional<z.ZodArray<z.ZodString>>; meshTerms: z.ZodOptional<z.ZodArray<z.ZodObject<{ descriptorName: z.ZodOptional<z.ZodString>; descriptorUi: z.ZodOptional<z.ZodString>; isMajorTopic: z.ZodBoolean; qualifiers: z.ZodOptional<z.ZodArray<z.ZodObject<{ qualifierName: z.ZodString; qualifierUi: z.ZodOptional<z.ZodString>; isMajorTopic: z.ZodBoolean; }, z.core.$strip>>>; }, z.core.$strip>>>; grantList: z.ZodOptional<z.ZodArray<z.ZodObject<{ grantId: z.ZodOptional<z.ZodString>; acronym: z.ZodOptional<z.ZodString>; agency: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; articleDates: z.ZodOptional<z.ZodArray<z.ZodObject<{ dateType: z.ZodOptional<z.ZodString>; year: z.ZodOptional<z.ZodString>; month: z.ZodOptional<z.ZodString>; day: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>>; totalReturned: z.ZodNumber; unavailablePmids: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strip>, readonly [{ readonly reason: "queue_full"; readonly code: JsonRpcErrorCode.RateLimited; readonly when: "Local NCBI request queue is at capacity."; readonly recovery: "Retry after 1-2 seconds; the request queue hit the NCBI rate limit."; readonly retryable: true; }, { readonly reason: "ncbi_unreachable"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "NCBI E-utilities is unreachable after all retry attempts."; readonly recovery: "Retry after a brief delay; NCBI was unreachable across all retry attempts."; readonly retryable: true; }, { readonly reason: "ncbi_deadline_exceeded"; readonly code: JsonRpcErrorCode.Timeout; readonly when: "Total request deadline expired before NCBI returned a response."; readonly recovery: "Reduce batch size or retry; NCBI may be under temporary load."; readonly retryable: true; }, { readonly reason: "ncbi_invalid_response"; readonly code: JsonRpcErrorCode.SerializationError; readonly when: "NCBI returned a body that could not be parsed (invalid XML/JSON)."; readonly recovery: "Retry the request; NCBI returned a malformed response that could not be parsed."; readonly retryable: true; }, { readonly reason: "ncbi_resource_not_found"; readonly code: JsonRpcErrorCode.NotFound; readonly when: "NCBI returned a structured \"not found\" error for the requested ID(s)."; readonly recovery: "Verify the ID exists in PubMed; the resource was not found in NCBI and retrying will not help."; readonly retryable: false; }, { readonly reason: "invalid_efetch_response"; readonly code: JsonRpcErrorCode.SerializationError; readonly when: "NCBI EFetch returned a payload missing the PubmedArticleSet wrapper."; readonly recovery: "Retry once; if it persists, NCBI returned malformed data — try fewer PMIDs at once."; }]>; //# sourceMappingURL=fetch-articles.tool.d.ts.map