Skip to main content
Glama
RowanErasmus

DailyMed MCP Server

by RowanErasmus

search_uniis

Find UNII codes for drugs using parameters like active moiety, drug class, or RxCUI with paginated results.

Instructions

Search for UNII codes using various parameters with pagination support

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
active_moietyNoActive moiety filter
drug_class_codeNoDrug class code filter
drug_class_coding_systemNoDrug class coding system filter
rxcuiNoRxCUI filter
unii_codeNoSpecific UNII code to search for
pageNoPage number for pagination (1-based, default: 1)
pageSizeNoNumber of results per page (default: 25, max: 100)

Implementation Reference

  • The actual implementation of the searchUNIIs logic, handling parameter mapping and API request.
    async searchUNIIs(params: UNIISearchParams = {}): Promise<PaginatedUNIIResponse> {
      const { page = 1, pageSize = 25, ...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.active_moiety) queryParams.active_moiety = searchParams.active_moiety;
        if (searchParams.drug_class_code) queryParams.drug_class_code = searchParams.drug_class_code;
        if (searchParams.drug_class_coding_system) queryParams.drug_class_coding_system = searchParams.drug_class_coding_system;
        if (searchParams.rxcui) queryParams.rxcui = searchParams.rxcui;
        if (searchParams.unii_code) queryParams.unii_code = searchParams.unii_code;
    
        const response = await this.client.get("/uniis.json", {
          params: queryParams,
        });
    
        if (
          response.data &&
          response.data.data &&
          Array.isArray(response.data.data)
        ) {
  • src/index.ts:258-275 (registration)
    The tool handler switch-case that extracts parameters and invokes the unii-client search method.
    case "search_uniis":
      const uniiParams: any = {};
      if (args.active_moiety) uniiParams.active_moiety = args.active_moiety as string;
      if (args.drug_class_code) uniiParams.drug_class_code = args.drug_class_code as string;
      if (args.drug_class_coding_system) uniiParams.drug_class_coding_system = args.drug_class_coding_system as string;
      if (args.rxcui) uniiParams.rxcui = args.rxcui as string;
      if (args.unii_code) uniiParams.unii_code = args.unii_code as string;
      if (args.page) uniiParams.page = args.page as number;
      if (args.pageSize) uniiParams.pageSize = args.pageSize as number;
    
      const uniiResults = await this.client.searchUNIIs(uniiParams);
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(uniiResults, null, 2),
          },
        ],
  • The tool definition and schema registration for search_uniis.
    {
      name: "search_uniis",
      description: "Search for UNII codes using various parameters with pagination support",
      inputSchema: {
        type: "object",
        properties: {
          active_moiety: {
            type: "string",
            description: "Active moiety filter",
          },
          drug_class_code: {
            type: "string",
            description: "Drug class code filter",
          },
          drug_class_coding_system: {
            type: "string",
            description: "Drug class coding system filter",
          },
          rxcui: {
            type: "string",
            description: "RxCUI filter",
          },
          unii_code: {
            type: "string",
            description: "Specific UNII code to search for",
          },

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