get_linked_ordinances
Retrieve local ordinances and rules linked to a specific national law. Enter the law name to get associated regulations across all regions.
Instructions
[연계] 법령 기준 자치법규 연계 목록. 특정 법령과 관련된 전국 조례/규칙 조회.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 법령명 (예: '국민건강보험법') | |
| display | Yes | 결과 개수 (기본:20, 최대:100) | |
| page | Yes | 페이지 번호 (기본:1) | |
| apiKey | No | 법제처 Open API 인증키(OC) |
Implementation Reference
- src/tools/law-linkage.ts:113-117 (handler)The handler function for get_linked_ordinances. Calls the shared handleLinkage function with target 'lnkLs', primary root 'LawSearch', and fallback root 'LnkLsSearch'.
export const getLinkedOrdinances = (apiClient: LawApiClient, input: LinkageInput) => handleLinkage(apiClient, input, { target: "lnkLs", primaryRoot: "LawSearch", fallbackRoot: "LnkLsSearch", title: "법령-자치법규 연계", emptyMsg: "연계 자치법규가 없습니다." }) - src/tools/law-linkage.ts:24-26 (schema)Input schema for get_linked_ordinances (extends base schema with a query description for law name).
export const LinkedOrdinancesSchema = baseLinkageSchema.extend({ query: z.string().describe("법령명 (예: '국민건강보험법')") }) - src/tool-registry.ts:169-175 (registration)Registration of the get_linked_ordinances tool in the tool registry, mapping it to LinkedOrdinancesSchema and getLinkedOrdinances handler.
// === 법령-자치법규 연계 === { name: "get_linked_ordinances", description: "[연계] 법령 기준 자치법규 연계 목록. 특정 법령과 관련된 전국 조례/규칙 조회.", schema: LinkedOrdinancesSchema, handler: getLinkedOrdinances }, - src/tool-registry.ts:55-55 (registration)Import statement for getLinkedOrdinances and LinkedOrdinancesSchema from law-linkage.ts.
import { getLinkedOrdinances, LinkedOrdinancesSchema, getLinkedOrdinanceArticles, LinkedOrdinanceArticlesSchema, getDelegatedLaws, DelegatedLawsSchema, getLinkedLawsFromOrdinance, LinkedLawsFromOrdinanceSchema } from "./tools/law-linkage.js" - src/tools/law-linkage.ts:84-109 (helper)Shared handleLinkage function that contains the core logic: API call, XML parsing, response formatting, and error handling for all linkage tools including get_linked_ordinances.
async function handleLinkage(apiClient: LawApiClient, input: LinkageInput, cfg: LinkageConfig) { try { const xml = await apiClient.fetchApi({ endpoint: "lawSearch.do", target: cfg.target, extraParams: { query: String(input.query), display: String(input.display || 20), page: String(input.page || 1) }, apiKey: input.apiKey, }) let result = parseLinkageXML(xml, cfg.primaryRoot, "law") if (result.totalCnt === 0 && result.items.length === 0) { result = parseLinkageXML(xml, cfg.fallbackRoot, "law") } if (result.items.length === 0) { return { content: [{ type: "text", text: truncateResponse(`'${input.query}' ${cfg.emptyMsg}`) }] } } let output = `${cfg.title} (총 ${result.totalCnt}건, ${result.page}페이지)\n` output += `검색어: ${input.query}\n\n` output += formatItems(result.items) return { content: [{ type: "text", text: truncateResponse(output) }] } } catch (error) { return formatToolError(error, cfg.title) } }