UNPKG

@cyanheads/pubmed-mcp-server

Version:

A Model Context Protocol (MCP) server enabling AI agents to intelligently search, retrieve, and analyze biomedical literature from PubMed via NCBI E-utilities. Built on the mcp-ts-template for robust, production-ready performance.

68 lines (67 loc) 2.95 kB
/** * @fileoverview Logic for the fetch_pubmed_content MCP tool. * Handles EFetch queries for specific PMIDs and formats the results. * This tool can fetch various details from PubMed including abstracts, full XML, * MEDLINE text, and citation data. * @module src/mcp-server/tools/fetchPubMedContent/logic */ import { z } from "zod"; import { RequestContext } from "../../../utils/index.js"; export declare const FetchPubMedContentInputSchema: z.ZodEffects<z.ZodObject<{ pmids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; queryKey: z.ZodOptional<z.ZodString>; webEnv: z.ZodOptional<z.ZodString>; retstart: z.ZodOptional<z.ZodNumber>; retmax: z.ZodOptional<z.ZodNumber>; detailLevel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["abstract_plus", "full_xml", "medline_text", "citation_data"]>>>; includeMeshTerms: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; includeGrantInfo: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; outputFormat: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "raw_text"]>>>; }, "strip", z.ZodTypeAny, { detailLevel: "abstract_plus" | "full_xml" | "medline_text" | "citation_data"; includeMeshTerms: boolean; includeGrantInfo: boolean; outputFormat: "json" | "raw_text"; pmids?: string[] | undefined; queryKey?: string | undefined; webEnv?: string | undefined; retstart?: number | undefined; retmax?: number | undefined; }, { pmids?: string[] | undefined; queryKey?: string | undefined; webEnv?: string | undefined; retstart?: number | undefined; retmax?: number | undefined; detailLevel?: "abstract_plus" | "full_xml" | "medline_text" | "citation_data" | undefined; includeMeshTerms?: boolean | undefined; includeGrantInfo?: boolean | undefined; outputFormat?: "json" | "raw_text" | undefined; }>, { detailLevel: "abstract_plus" | "full_xml" | "medline_text" | "citation_data"; includeMeshTerms: boolean; includeGrantInfo: boolean; outputFormat: "json" | "raw_text"; pmids?: string[] | undefined; queryKey?: string | undefined; webEnv?: string | undefined; retstart?: number | undefined; retmax?: number | undefined; }, { pmids?: string[] | undefined; queryKey?: string | undefined; webEnv?: string | undefined; retstart?: number | undefined; retmax?: number | undefined; detailLevel?: "abstract_plus" | "full_xml" | "medline_text" | "citation_data" | undefined; includeMeshTerms?: boolean | undefined; includeGrantInfo?: boolean | undefined; outputFormat?: "json" | "raw_text" | undefined; }>; export type FetchPubMedContentInput = z.infer<typeof FetchPubMedContentInputSchema>; export type FetchPubMedContentOutput = { content: string; articlesReturned: number; eFetchUrl: string; }; export declare function fetchPubMedContentLogic(input: FetchPubMedContentInput, parentRequestContext: RequestContext): Promise<FetchPubMedContentOutput>;