Skip to main content
Glama

get-drug-by-generic-name

Find drug information using generic ingredient names. Retrieve all brand versions and details for medications when you know the active component but not specific products.

Instructions

Get drug information by generic (active ingredient) name. Useful when you know the generic name but not the brand name. Returns all brand versions of the generic drug.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
genericNameYesGeneric drug name (active ingredient)
limitNoMaximum number of results to return

Implementation Reference

  • The core handler function for the 'get-drug-by-generic-name' tool. It constructs an OpenFDA API query using OpenFDABuilder for the given generic name, fetches data via makeOpenFDARequest, handles errors and empty results, maps the response to simplified drug objects (brand_name, generic_name, manufacturer, product_type, route), and returns a formatted text response with the results.
    async ({ genericName, limit }) => { const url = new OpenFDABuilder() .context("label") .search(`openfda.generic_name:"${genericName}"`) .limit(limit) .build(); const { data: drugData, error } = await makeOpenFDARequest<OpenFDAResponse>(url); if (error) { return { content: [{ type: "text", text: `Failed to retrieve drug data for generic name "${genericName}": ${error.message}`, }], }; } if (!drugData || !drugData.results || drugData.results.length === 0) { return { content: [{ type: "text", text: `No drug information found for generic name "${genericName}".`, }], }; } const drugs = drugData.results.map(drug => ({ brand_name: drug?.openfda.brand_name?.[0] || 'Unknown', generic_name: drug?.openfda.generic_name?.[0] || 'Unknown', manufacturer_name: drug?.openfda.manufacturer_name?.[0] || 'Unknown', product_type: drug?.openfda.product_type?.[0] || 'Unknown', route: drug?.openfda.route || [], })); return { content: [{ type: "text", text: `Found ${drugs.length} drug(s) with generic name "${genericName}":\n\n${JSON.stringify(drugs, null, 2)}`, }], }; }
  • Zod input schema validation for the tool parameters: genericName (required string) and optional limit (number, defaults to 5).
    { genericName: z.string().describe("Generic drug name (active ingredient)"), limit: z.number().optional().default(5).describe("Maximum number of results to return") },
  • src/index.ts:150-199 (registration)
    MCP server tool registration call that defines the tool name, description, input schema, and attaches the handler function.
    server.tool( "get-drug-by-generic-name", "Get drug information by generic (active ingredient) name. Useful when you know the generic name but not the brand name. Returns all brand versions of the generic drug.", { genericName: z.string().describe("Generic drug name (active ingredient)"), limit: z.number().optional().default(5).describe("Maximum number of results to return") }, async ({ genericName, limit }) => { const url = new OpenFDABuilder() .context("label") .search(`openfda.generic_name:"${genericName}"`) .limit(limit) .build(); const { data: drugData, error } = await makeOpenFDARequest<OpenFDAResponse>(url); if (error) { return { content: [{ type: "text", text: `Failed to retrieve drug data for generic name "${genericName}": ${error.message}`, }], }; } if (!drugData || !drugData.results || drugData.results.length === 0) { return { content: [{ type: "text", text: `No drug information found for generic name "${genericName}".`, }], }; } const drugs = drugData.results.map(drug => ({ brand_name: drug?.openfda.brand_name?.[0] || 'Unknown', generic_name: drug?.openfda.generic_name?.[0] || 'Unknown', manufacturer_name: drug?.openfda.manufacturer_name?.[0] || 'Unknown', product_type: drug?.openfda.product_type?.[0] || 'Unknown', route: drug?.openfda.route || [], })); return { content: [{ type: "text", text: `Found ${drugs.length} drug(s) with generic name "${genericName}":\n\n${JSON.stringify(drugs, null, 2)}`, }], }; } );

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/ythalorossy/openfda'

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