@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
TypeScript
/**
* @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>;