Skip to main content
Glama
antegral
by antegral

get_drug_detail_by_id

Retrieve comprehensive pharmaceutical details using a drug code from the Korea Pharmaceutical Information Center. Access ingredients, usage instructions, precautions, and storage information for specific medications.

Instructions

약학정보원의 의약품 코드로 의약품의 상세정보를 가져옵니다. search_drugs_by_name()로 조회한 정보가 부족할 때 사용할 수 있습니다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
drugcodeYessearch_drugs_by_name()의 결과 값에 기재된 의약품의 drug_code 값

Implementation Reference

  • Core handler function that performs the API fetch to KPIC for drug details by ID, parses the response, validates it, and returns formatted JSON string.
    export async function get_drug_detail_by_id(drugcode: string): Promise<string> { if (!drugcode || drugcode.trim().length === 0) { throw new KPICApiError('Drug code cannot be empty'); } const now = Date.now(); const url = `https://www.health.kr/searchDrug/ajax/ajax_result_drug2.asp?drug_cd=${encodeURIComponent(drugcode)}&_=${now}`; try { const response = await fetch(url, { method: 'GET', headers: { accept: 'application/json, text/javascript, */*; q=0.01', 'accept-language': 'ko,en-US;q=0.9,en;q=0.8,ru;q=0.7', 'cache-control': 'no-cache', pragma: 'no-cache', Referer: `https://www.health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, }, }); if (!response.ok) { throw new KPICApiError(`API request failed: ${response.statusText}`, response.status); } const data = await response.text(); // 응답 데이터 검증 try { const parsed = JSON.parse(data) as DrugDetailResult[]; if (!Array.isArray(parsed)) { throw new KPICApiError('Invalid response format: expected array'); } if (parsed.length === 0) { throw new KPICApiError(`No drug found with code: ${drugcode}`); } // 결과를 보기 좋게 포맷팅하여 반환 return JSON.stringify(parsed, null, 2); } catch (parseError) { if (parseError instanceof KPICApiError) { throw parseError; } throw new KPICApiError( `Failed to parse API response: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`, ); } } catch (error) { if (error instanceof KPICApiError) { throw error; } if (error instanceof Error) { throw new KPICApiError(`Network error: ${error.message}`); } throw new KPICApiError('Unknown error occurred'); }
  • src/index.ts:39-54 (registration)
    MCP tool registration defining the tool name, description, and input schema for get_drug_detail_by_id.
    { name: 'get_drug_detail_by_id', description: '약학정보원의 의약품 코드로 의약품의 상세정보를 가져옵니다. ' + 'search_drugs_by_name()로 조회한 정보가 부족할 때 사용할 수 있습니다.', inputSchema: { type: 'object', properties: { drugcode: { type: 'string', description: 'search_drugs_by_name()의 결과 값에 기재된 의약품의 drug_code 값', }, }, required: ['drugcode'], }, },
  • TypeScript interface defining the structure of the drug detail result used by the get_drug_detail_by_id handler for type safety.
    * 약품 상세 정보 타입 (get_drug_detail_by_id) */ export interface DrugDetailResult { idx: number; drug_code: string; drug_name: string; drug_enm: string; noins: string | null; narcotic_kind_code: string; list_sunb_name: string; cls_code_num: string; sunb: string; drug_cls: string; sunb_count: number; upso_name: string; upso1: string; drug_form: string; dosage_route: string; charact: string; charact_new: string; cls_code: string; atc_cd: string; boh_history: string; boh_hiracode: string; item_permit_date: string; cancel_date: string; newdrug_class_code: string; bioeq_prodt_yn: string; comp_drug_yn_biology: string; comp_drug_yn_effect: string; comp_drug_yn: string; comp_drug_yn_physicochemical: string; kpic_atc: string; kpic_atc_cd: string; insertpaper: string; paper_dt: string; dur_age: string; dur_contra: string; dur_preg: string; dur_senior: string; dur_dose: string; dur_period: string; dur_donate: string; dur_form: string; fdacode: string; fdacontent: string; sunbcontent: string; drug_box: string; stmt: string; drug_pic: string; pack_img: string; picto_img: string; medititle: string; mediguide: string; effect: string; dosage: string; caution: string; idfylength: string; boh: string; etc: string; idfyidx: number; reexam: string | null; reexam_start_date: string; reexam_end_date: string; item_ingr_type: string; additives: string; }
  • MCP request handler dispatch case that extracts arguments, validates input, calls the core handler, and formats the MCP response.
    case 'get_drug_detail_by_id': { const { drugcode } = args as { drugcode: string }; if (!drugcode) { throw new Error('drugcode parameter is required'); } const result = await get_drug_detail_by_id(drugcode); return { content: [ { type: 'text', text: result, }, ], }; }
Install Server

Other Tools

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/antegral/kpic-mcp'

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