Skip to main content
Glama

search_pubmed

Search biomedical literature from PubMed/MEDLINE database to find relevant research articles, reviews, and publications using NCBI E-utilities API.

Instructions

Search biomedical literature from PubMed/MEDLINE database using NCBI E-utilities API

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string
maxResultsNoMaximum number of results to return
yearNoPublication year filter (e.g., "2023", "2020-2023")
authorNoAuthor name filter
journalNoJournal name filter
publicationTypeNoPublication type filter (e.g., ["Journal Article", "Review"])
sortByNoSort results by relevance or date

Implementation Reference

  • Handler logic for executing the 'search_pubmed' MCP tool: destructures args, performs search via searchers.pubmed.search(), retrieves rate limit status, and returns formatted JSON response with paper details.
    case 'search_pubmed': { const { query, maxResults, year, author, journal, publicationType, sortBy } = args; const results = await searchers.pubmed.search(query, { maxResults, year, author, journal, publicationType, sortBy }); const rateStatus = searchers.pubmed.getRateLimiterStatus(); const apiKeyStatus = searchers.pubmed.hasApiKey() ? 'configured' : 'not configured'; const rateLimit = searchers.pubmed.hasApiKey() ? '10 requests/second' : '3 requests/second'; return jsonTextResponse( `Found ${results.length} PubMed papers.\n\nAPI Status: ${apiKeyStatus} (${rateLimit})\nRate Limiter: ${rateStatus.availableTokens}/${rateStatus.maxTokens} tokens available\n\n${JSON.stringify( results.map((paper: Paper) => PaperFactory.toDict(paper)), null, 2 )}` ); }
  • Zod schema definition (SearchPubMedSchema) for input validation of the 'search_pubmed' tool parameters.
    export const SearchPubMedSchema = z .object({ query: z.string().min(1), maxResults: z.number().int().min(1).max(100).optional().default(10), year: z.string().optional(), author: z.string().optional(), journal: z.string().optional(), publicationType: z.array(z.string()).optional(), sortBy: z.enum(['relevance', 'date']).optional() }) .strip();
  • MCP tool registration in TOOLS array, including name, description, and JSON inputSchema matching the Zod schema.
    { name: 'search_pubmed', description: 'Search biomedical literature from PubMed/MEDLINE database using NCBI E-utilities API', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query string' }, maxResults: { type: 'number', minimum: 1, maximum: 100, description: 'Maximum number of results to return' }, year: { type: 'string', description: 'Publication year filter (e.g., "2023", "2020-2023")' }, author: { type: 'string', description: 'Author name filter' }, journal: { type: 'string', description: 'Journal name filter' }, publicationType: { type: 'array', items: { type: 'string' }, description: 'Publication type filter (e.g., ["Journal Article", "Review"])' }, sortBy: { type: 'string', enum: ['relevance', 'date'], description: 'Sort results by relevance or date' } }, required: ['query'] } },
  • Schema parsing logic in parseToolArgs function for 'search_pubmed' tool.
    case 'search_pubmed': return SearchPubMedSchema.parse(args);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dianel555/paper-search-mcp-nodejs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server