Skip to main content
Glama
RowanErasmus

DailyMed MCP Server

by RowanErasmus

search_drug_names

Find drug names in the FDA DailyMed database by generic or brand name, manufacturer, and name type with paginated results.

Instructions

Search for drug names using various parameters with pagination support

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
drug_nameNoGeneric or brand name of drug
name_typeNoSpecify name type
manufacturerNoName of drug manufacturer
pageNoPage number for pagination (1-based, default: 1)
pageSizeNoNumber of results per page (default: 100, max: 100)

Implementation Reference

  • The core handler implementation for searching drug names, including API request construction and pagination handling.
    async searchDrugNamesAdvanced(params: DrugNameSearchParams = {}): Promise<PaginatedDrugNameResponse> {
      const { page = 1, pageSize = 100, ...searchParams } = params;
      
      validatePaginationParams(page, pageSize, 100);
    
      try {
        const queryParams: any = {
          page,
          pagesize: Math.min(pageSize, 100), // API max is 100
        };
    
        // Add search filters
        if (searchParams.drug_name) queryParams.drug_name = searchParams.drug_name;
        if (searchParams.name_type) queryParams.name_type = searchParams.name_type;
        if (searchParams.manufacturer) queryParams.manufacturer = searchParams.manufacturer;
    
        const response = await this.client.get("/drugnames.json", {
          params: queryParams,
        });
    
        if (
          response.data &&
          response.data.data &&
          Array.isArray(response.data.data)
        ) {
          const drugNames = response.data.data.map((item: any) => ({
            drugName: item.drug_name,
            routeOfAdministration: item.route_of_administration,
            activeIngredient: item.active_ingredient,
          }));
    
          // Extract pagination metadata from API response
          const totalResults = response.data.metadata?.total_elements || drugNames.length;
          const totalPages = Math.ceil(totalResults / pageSize);
    
          return {
            data: drugNames,
            pagination: {
              page,
              pageSize,
              totalResults,
              totalPages,
              hasNextPage: page < totalPages,
              hasPreviousPage: page > 1,
            },
          };
  • src/tools.ts:348-360 (registration)
    Tool definition and schema registration for "search_drug_names".
    {
      name: "search_drug_names",
      description: "Search for drug names using various parameters with pagination support",
      inputSchema: {
        type: "object",
        properties: {
          drug_name: {
            type: "string",
            description: "Generic or brand name of drug",
          },
          name_type: {
            type: "string",
            description: "Specify name type",

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/RowanErasmus/dailymed-mcp-server'

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