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.

37 lines (36 loc) 1.42 kB
/** * @fileoverview Manages a queue for NCBI E-utility requests to ensure compliance with rate limits. * @module src/services/NCBI/ncbiRequestQueueManager */ import { RequestContext } from "../../utils/index.js"; import { NcbiRequestParams } from "./ncbiConstants.js"; /** * Interface for a queued NCBI request. */ export interface QueuedRequest { resolve: (value: any) => void; reject: (reason?: any) => void; task: () => Promise<any>; context: RequestContext; endpoint: string; params: NcbiRequestParams; } export declare class NcbiRequestQueueManager { private requestQueue; private isProcessingQueue; private lastRequestTime; constructor(); /** * Processes the request queue, ensuring delays between requests to respect NCBI rate limits. */ private processQueue; /** * Enqueues a task (an NCBI API call) to be processed. * @param task A function that returns a Promise resolving to the API call result. * @param context The request context for logging and correlation. * @param endpoint The NCBI endpoint being called (e.g., "esearch", "efetch"). * @param params The parameters for the NCBI request. * @returns A Promise that resolves or rejects with the result of the task. */ enqueueRequest<T>(task: () => Promise<T>, context: RequestContext, endpoint: string, params: NcbiRequestParams): Promise<T>; }