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
| Name | Required | Description | Default |
|---|---|---|---|
| active_moiety | No | Active moiety filter | |
| drug_class_code | No | Drug class code filter | |
| drug_class_coding_system | No | Drug class coding system filter | |
| rxcui | No | RxCUI filter | |
| unii_code | No | Specific UNII code to search for | |
| page | No | Page number for pagination (1-based, default: 1) | |
| pageSize | No | Number of results per page (default: 25, max: 100) |
Implementation Reference
- src/clients/unii-client.ts:32-58 (handler)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), }, ], - src/tools.ts:381-406 (schema)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", },