Data4Library MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Data4Library MCP Server내 주변 도서관 어디 있어?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
정보나루 도서검색 MCP
도서관 정보나루 API를 MCP 도구로 제공하는 Node.js 서버입니다.
이 프로젝트는 도서관 정보나루 운영기관이 제공하는 공식 MCP와 무관한 독립 오픈소스 프로젝트입니다.
운영 안내 최근 정보나루 API에서 응답 지연과 타임아웃이 간헐적으로 관찰되고 있습니다. 도구 호출이 실패하거나 늦어질 때에는 이 MCP 서버와 정보나루 API 상태를 함께 확인하세요.
제공 도구
현재 27개 도구를 등록합니다.
도서관
search_libraries: 지역·도서관명으로 공공도서관 검색search_nearby_libraries: 좌표에서 가까운 도서관을 거리순으로 검색search_library_codes: 도서관명·지역명으로libCode검색get_library_info: 도서관 통합정보 조회
도서·소장
search_books: 제목·저자·출판사·주제별 도서 검색get_book_detail: ISBN으로 도서 상세정보 조회search_libraries_by_book: 특정 도서를 소장한 도서관 검색check_book_availability: 특정 도서관의 소장 여부와 전일 기준 대출 가능 여부 조회get_new_arrival_books: 도서관별 신착도서 조회
인기·트렌드
search_popular_books: 전국·지역별 인기대출도서 조회search_popular_books_by_library: 도서관·지역별 인기대출도서 조회get_popular_books_by_library: 도서관별 인기대출도서 통합 조회get_hot_trend: 대출 급상승 도서 조회get_monthly_keywords: 이달의 키워드 조회
통계·분석
get_usage_trend: 도서관별 대출·반납 추이 조회get_reading_quantity: 지역별 독서량 조회search_items: 도서관별 장서·대출 데이터 조회get_book_usage_analysis: 도서 이용 분석 조회get_book_keywords: 도서 키워드 조회
추천
get_mania_recommendations: 마니아 추천도서 조회get_reader_recommendations: 다독자 추천도서 조회
코드 조회
get_region_codes: 지역 코드 목록get_detailed_region_codes: 세부 지역 코드 목록search_detailed_region_codes: 세부 지역 코드 검색get_subject_codes: KDC 대분류 코드 목록get_detailed_subject_codes: KDC 세부 분류 코드 목록search_detailed_kdc_codes: KDC 세부 분류 코드 검색
Related MCP server: LexLink Korean Law MCP Server
설치
준비 사항
Node.js 18 이상
도서관 정보나루 API 키
API 키는 정보나루 로그인 후 마이페이지 > 인증키에서 신청할 수 있습니다. 호출 한도와
서버 IP 등록 정책은 정보나루의 최신 안내를 따르세요.
NPX
MCP 클라이언트 설정에 다음 서버를 추가합니다.
{
"mcpServers": {
"data4library-mcp": {
"command": "npx",
"args": ["-y", "@isnow890/data4library-mcp"],
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}LIBRARY_API_TIMEOUT_MS로 원천 요청 제한 시간을 조정할 수 있습니다. 기본값은 10초이며
50~60000ms 범위만 허용합니다.
로컬 설치
git clone https://github.com/isnow890/data4library-mcp.git
cd data4library-mcp
npm install
npm run buildMCP 클라이언트에서는 빌드 결과인 dist/src/index.js를 실행합니다.
{
"mcpServers": {
"data4library-mcp": {
"command": "node",
"args": ["/absolute/path/to/data4library-mcp/dist/src/index.js"],
"cwd": "/absolute/path/to/data4library-mcp",
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}로컬 실행
export LIBRARY_API_KEY="your-api-key"
npm run build
npm startDocker로 실행할 수도 있습니다.
docker build -t data4library-mcp .
docker run -i --rm -e LIBRARY_API_KEY="$LIBRARY_API_KEY" data4library-mcp사용 예시
“서울 강남구 공공도서관 찾아줘”
search_detailed_region_codes로 지역 코드를 찾고search_libraries를 호출합니다.
“이 ISBN을 소장한 서울 도서관 찾아줘”
search_libraries_by_book을 호출합니다.
“이 도서관에 이 책이 있고 전일 기준으로 대출 가능했어?”
check_book_availability을 호출합니다.
“요즘 20대가 많이 빌린 책 보여줘”
search_popular_books를 연령 조건과 함께 호출합니다.
데이터와 제한사항
데이터 출처는 도서관 정보나루입니다.
소장·통계 데이터의 갱신 시점은 정보나루 원천을 따릅니다.
check_book_availability의 대출 가능 여부는 전일 기준이며 실시간 예약·대출 상태를 보장하지 않습니다.search_nearby_libraries의 거리는 직선거리이며 실제 이동 거리와 다를 수 있습니다.
개발
npm run build
npm run watch자동 회귀 테스트는 아직 구성되어 있지 않습니다.
라이선스
Available Tools
27 toolscheck_book_availabilityAInspect
특정 도서관의 도서 소장 여부와 정보나루 전일 기준 대출 가능 여부를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 13자리 ISBN | |
| libCode | Yes | 도서관코드 - search_library_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses that loan availability is based on '정보나루 전일 기준' (as of the previous day), which is a useful behavioral detail. However, it does not mention output format, error behavior, or authentication requirements, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose and includes the key caveat about data freshness. Every word earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the essential purpose and a critical data-freshness caveat. It doesn't explicitly describe the return format, but the tool's simplicity and clear purpose make this a minor gap. Slightly more detail on the response would be ideal, but it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional parameter information beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (조회합니다 - queries) and resource (도서 소장 여부와 대출 가능 여부 - book holding and loan availability for a specific library). It clearly distinguishes from sibling tools like search_books and search_libraries by focusing on availability check for a given ISBN and library code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to check if a book is available at a library, but it does not explicitly state when to use this over alternatives or mention any exclusions. The schema's libCode description hints at using search_library_codes first, but the main description lacks explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_detailBInspect
ISBN으로 도서의 상세 정보를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 13자리 ISBN | |
| loaninfoYN | No | 대출상세정보 제공여부 (Y=제공, N=미제공) | |
| displayInfo | No | 대출정보 조회대상 (gender=성별, age=연령별, region=지역별) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. '조회합니다' signals a read-only lookup, which is useful, but the description does not disclose the response structure, optional-parameter effects (e.g., loaninfoYN/displayInfo dependencies), or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler; the key lookup criterion (ISBN) is front-loaded and the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and many closely related siblings, the description is too thin. It does not clarify what '상세 정보' includes, how optional loan-info parameters interact, or when this tool should be chosen over get_book_keywords/search_books.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents isbn13, loaninfoYN, and displayInfo. The description only adds that lookup is by ISBN, which maps to isbn13; it does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (조회합니다) and resource (도서의 상세 정보) and identifies the lookup key (ISBN). It is clear, but it does not explicitly distinguish itself from sibling tools such as search_books or get_book_usage_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over the many sibling book-related tools. The description implies 'use when you have an ISBN,' but it names no alternatives, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_keywordsCInspect
도서 키워드 목록을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 13자리 ISBN | |
| additionalYN | No | 부가정보 적용여부 (Y=제공, N=미제공) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only restates the read-only nature implied by the name ('get'). It does not disclose what the returned list contains, whether additionalYN changes the response, or any auth/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded Korean sentence with no filler or repetition. It is efficient, though it offers no structural aids like usage context or examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup, the schema and description together are minimally viable. However, there is no output schema and no behavior/usage context, so an agent cannot anticipate the response shape or know that additionalYN is the only option affecting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents isbn13 and additionalYN meaning and format. The description itself adds no parameter information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('조회합니다' / retrieves) and resource ('도서 키워드 목록' / book keyword list), so an agent can tell it is a lookup tool. However, it does not say that the keywords are for a specific ISBN or contrast it with siblings like get_monthly_keywords, so it lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_monthly_keywords, search_books, or get_book_detail. The description gives no context for selecting it, so the agent must infer from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_usage_analysisCInspect
도서별 이용 분석을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 10자리 또는 13자리 ISBN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('retrieves') but does not specify whether the operation is read-only, what data is returned, or any side effects. The term '조회' implies a read operation, but this is not explicit, and the description omits details like response format or potential limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically complete sentence with zero redundancy. It is front-loaded with the core action and subject, making it highly efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is insufficient. It fails to explain what constitutes 'usage analysis' (e.g., metrics, time range), any required context, or the nature of the return value. An agent would not know what to expect from the tool or how to interpret results, leaving critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes isbn13 as a 10- or 13-digit ISBN with a regex pattern (100% coverage). The description adds the contextual nuance that the analysis is 'per book,' linking the parameter to the tool's purpose. This slight addition justifies the baseline of 3, but no further semantic enhancement is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('조회합니다' – retrieve) and resource ('도서별 이용 분석' – usage analysis by book). This clearly indicates the tool's function and differentiates it from a general search or detail tool. However, it does not explicitly distinguish from sibling tools like get_usage_trend or get_reading_quantity, leaving potential ambiguity about which analysis is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or exclusions. An agent must infer from the name alone, which is insufficient given multiple sibling tools covering similar domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailed_region_codesCInspect
세부지역 코드를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | 상위 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description itself must disclose behavioral traits. The verb '조회' (lookup) vaguely implies a read operation, but the description discloses nothing about side effects, permissions, error conditions, or the nature of the results. It offers only the bare minimum lexical hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, but it is under-specification rather than concise. The sentence simply paraphrases the tool name and does not earn its place by adding useful information. There is no front-loaded detail about what the query returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema and with no annotations, this description leaves the agent uninformed about output format, hierarchy of returned codes, or any additional constraints. The single sentence covers none of the contextual information needed for correct use, so it is inadequate for a regional-code lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, including an explicit enum with province labels for the 'region' parameter. The description adds no parameter meaning beyond the schema, and the schema already fully explains the single required argument. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '세부지역 코드를 조회합니다' (Queries detailed region codes) simply restates the tool name with a generic verb. It does not define what a 'detailed region code' is or differentiate from siblings like get_region_codes or search_detailed_region_codes, leaving real ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance whatsoever about when to use this tool versus alternatives such as search_detailed_region_codes or get_region_codes. No preconditions, scenarios, or exclusions are mentioned. The description carries no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailed_subject_codesCInspect
세부주제 코드를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| kdc | Yes | 대주제분류코드 (0=총류, 1=철학, 2=종교, 3=사회과학, 4=자연과학, 5=기술과학, 6=예술, 7=언어, 8=문학, 9=역사) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. '조회합니다' implies a read-only query, but it does not describe output format, result granularity, ordering, or any other behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and easy to parse, though it is too minimal to be considered excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what the query returns and any relevant limitations. It only restates the action, leaving the agent without information about the tool's result shape or selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the kdc parameter already includes detailed mappings for codes 0-9. The description adds no additional parameter meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '세부주제 코드를 조회합니다' states a clear verb and resource: it retrieves detailed subject codes. However, it does not differentiate itself from siblings like get_subject_codes or search_detailed_kdc_codes, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as get_subject_codes or search_detailed_kdc_codes. An agent must infer the appropriate context solely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hot_trendCInspect
대출 급상승 도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| searchDt | Yes | 검색일자 (YYYY-MM-DD 형식) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only conveys that this is a read operation; it does not mention output format, result limits, sorting, whether the date must be a published data date, or any other behavioral trait. It is not misleading, but it is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It states the action and resource economically, though its brevity comes at the cost of useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should supply more context about what a 'hot trend' result contains and how searchDt affects the result. It provides only a headline-level statement, leaving an agent unable to anticipate response semantics, expected date behavior, or caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the lone parameter searchDt is fully described with its type, format, and Korean meaning. The description adds no parameter-specific insight, but because the schema already handles the parameter documentation, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('조회합니다' = retrieves) and a specific resource ('대출 급상승 도서' = books with rapidly rising loans). This is concrete enough for an agent to know the tool's basic purpose, though it does not explicitly distinguish it from similar sibling tools like get_usage_trend or get_popular_books_by_library.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, and there are no exclusions, prerequisites, or context about the date parameter's role. Given the large set of sibling tools, an agent must infer the appropriate selection entirely from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_infoCInspect
도서관별 통합정보를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | No | 페이지번호 | |
| region | No | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| libCode | No | 도서관코드 - search_library_codes 도구로 검색하세요 | |
| pageSize | No | 페이지크기 (최대 1000) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It merely says 'retrieves' which implies read-only, but it does not disclose pagination behavior, output format, rate limits, or any side effects. The tool likely returns a paginated list, but that is not mentioned. This is a significant gap for a tool with no annotation safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, which is efficient. It is not front-loaded with key details, but for a simple retrieval tool it is appropriately brief. The lack of structure (no bullet points or sections) is acceptable given the minimal content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 optional parameters, no output schema, and no annotations. The description gives no indication of what the response contains, how to interpret the integrated information, or how pagination works. An agent would be uncertain about the return value and how to use the parameters effectively. This is incomplete for a tool of moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (pageNo, region, libCode, pageSize, dtl_region) has a description in the schema. The tool description adds nothing about parameters, so it does not go beyond the schema. However, the baseline is 3 because the schema already documents parameters adequately; the description's lack of extra information is not penalized further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb (조회/retrieve) and a resource (도서관별 통합정보/integrated information by library), which is clear enough as a starting point. However, it does not specify what '통합정보' includes, nor does it distinguish itself from siblings like search_libraries, get_library_info, or search_library_codes. It is not a tautology but lacks specificity about the exact data scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The description does not mention prerequisites, such as needing a library code from search_library_codes, nor does it clarify that this tool is for fetching info by code rather than searching. The schema contains hints (libCode says to search with search_library_codes), but the description itself offers no direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mania_recommendationsCInspect
마니아 추천도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 10자리 또는 13자리 ISBN. 여러 권은 세미콜론으로 구분 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'retrieve' and gives no information about output format, side effects, permissions, or whether it is a read-only operation. For a tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It is appropriately front-loaded with the action and resource, though its brevity borders on under-specification, which is more a completeness issue than a conciseness flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description should at least clarify how the ISBN is used and what the response represents. It does neither. The lack of any explanation about the relationship between the input and the returned 'mania recommendations' leaves the agent uncertain about the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single required parameter 'isbn13', including its format and multiple-book syntax. The description adds no parameter-specific information beyond what the schema already states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb '조회합니다' (retrieve) and the resource '마니아 추천도서' (mania recommendation books), which is a clear verb+resource pairing. However, it does not clarify how the ISBN parameter relates to the recommendations—whether it filters by ISBN, returns recommendations for a specific book, or lists mania recommendations associated with that ISBN. The name suggests 'recommendations' but the purpose is ambiguous regarding the input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus its sibling 'get_reader_recommendations' or other recommendation tools. The description does not mention any context, prerequisites, or alternatives, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_keywordsCInspect
이달의 키워드를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | 검색월 (YYYY-MM 형식) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'retrieves' (조회), which implies a read operation, but it doesn't disclose what the response looks like, whether the month parameter is required or optional, what happens if no data exists for the month, or any rate limits. The description adds minimal behavioral context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence in Korean, which is concise and front-loaded. It earns its place by stating the core operation, though it could add more value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and one optional parameter, the description is too thin. An agent cannot tell what the return value looks like, whether the month is truly optional, or how this differs from the many sibling trend/keyword tools. The description is minimally viable but leaves important gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – the single 'month' parameter is documented in the schema with format 'YYYY-MM'. The description adds no additional meaning beyond the schema, so the baseline 3 applies. The description doesn't clarify whether the month is required (it's not marked required) or what the default behavior is if omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('이달의 키워드를 조회합니다' = 'retrieves this month's keywords'), so an agent knows the basic operation. However, it doesn't distinguish this from sibling tools like get_hot_trend, get_usage_trend, or get_book_keywords, which could overlap in purpose. The name itself is fairly self-explanatory, but the description adds no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only states what it does, not when it should be preferred. With 26 sibling tools, including several trend/keyword-related ones, the lack of usage context is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_new_arrival_booksCInspect
도서관별 신착도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| libCode | Yes | 도서관코드 - search_library_codes 도구로 검색하세요 | |
| searchDt | No | 검색일자 (YYYY-MM 형식) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It reveals little beyond the query action itself, without clarifying return shape, ordering, date semantics, or any conversational nuance. The word '조회' weakly implies a read operation, but nothing else is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. It is efficient, though it leans toward under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, an agent lacks key details such as what the returned object/list represents and how '신착도서' is scoped or ordered. The tool is simple (2 parameters, 100% schema coverage), but the meager description leaves important calling context absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: libCode is described as a library code to be retrieved via search_library_codes, and searchDt is described as a YYYY-MM date. The description adds no parameter info beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and scope: '도서관별 신착도서를 조회합니다' (query new arrival books by library). This clearly identifies a read operation over a resource and distinguishes it from search-by-title or popular-book tools, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool rather than siblings such as search_popular_books_by_library, get_popular_books_by_library, or search_books. The agent is given no context for choosing this tool over alternatives, and no exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_popular_books_by_libraryCInspect
도서관별 인기대출도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| libCode | Yes | 도서관코드 - search_library_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only states the action (retrieve) without mentioning whether it is a read-only operation, any rate limits, authentication requirements, or what data is returned. For a query tool, the read-only nature is implied but not explicitly stated, and there is no disclosure of output structure or potential limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is efficient, but it is under-specified. It provides the core purpose but lacks details that would help an agent understand usage nuances. For a simple tool this might be acceptable, but it does not include any guidance or context that would add value, so it is not as helpful as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, well-documented schema), the description is minimal. However, there is no output schema, and the description does not explain what the response contains (e.g., list of books with details). Without this, an agent cannot fully anticipate the result. The description also fails to mention any pagination, sorting, or limits. For a complete tool definition, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'libCode' with a pattern and a description that instructs the user to use 'search_library_codes' tool to find the code. Since schema description coverage is 100%, the baseline is 3. The description adds no extra meaning beyond the schema; it does not elaborate on the format or semantics beyond what is already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves popular loan books by library ('도서관별 인기대출도서를 조회합니다'). It identifies the resource (popular loan books) and the scoping (by library). However, it does not differentiate from the sibling 'search_popular_books_by_library', which likely performs a similar function, so it lacks sibling discrimination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is a sibling named 'search_popular_books_by_library' that may be similar or have different parameters, but the description does not mention it or any conditions for selection. No context about prerequisites or exclusions is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reader_recommendationsBInspect
다독자 추천도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn13 | Yes | 10자리 또는 13자리 ISBN. 여러 권은 세미콜론으로 구분 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden. It only restates the read operation ('조회합니다') and adds no information about output shape, pagination, authentication, or edge cases; the behavior beyond the tool name is effectively undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler and is easy to parse. It is appropriately concise, though the brevity comes at the cost of substantive behavioral and usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full schema coverage, the essential invocation data is present. However, with no annotations, no output schema, and no mention of when to choose this over get_mania_recommendations, the description is only minimally viable rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single isbn13 parameter with 100% coverage, including format and semicolon-separated multi-value behavior. The description adds no parameter-level detail, so it neither enhances nor detracts from the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('조회합니다') and a specific resource ('다독자 추천도서'), so an agent can understand it returns recommended books for avid readers. However, it does not explicitly differentiate itself from the similar sibling get_mania_recommendations, leaving that distinction to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '다독자 추천도서를 조회합니다' implies a use case: when a request concerns recommendations for heavy readers. It provides no explicit when-to-use guidance, exclusions, or alternatives, so the agent must infer selection criteria from the Korean term alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reading_quantityCInspect
지역별 독서량/독서율을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | 분석연도 (YYYY 형식) | |
| month | No | 분석월 (MM 형식) | |
| region | No | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says that regional reading volume/rate is queried, without addressing optional parameters, default behavior, output format, or filtering semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler and front-loads the key subject. It is concise without being wasteful, though slightly too terse to fully carry the tool's context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple read operation and 100% parameter documentation, the description is minimally sufficient for basic invocation. However, it lacks clarity on optional-filter behavior, output expectations, and when to prefer this tool over its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented in the input schema. The description adds only the regional scope and provides no additional meaning about year, month, or detailed-region filtering behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete subject—regional reading quantity/rate—and a clear query action ('조회합니다'). However, the verb is generic and it does not explicitly differentiate this tool from similar analysis siblings like get_usage_trend or get_book_usage_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. Despite a large sibling-tool list with several analytically similar tools, no exclusions or preferred-use conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_region_codesBInspect
지역 코드 목록을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden, but it only restates the lookup action. It does not disclose output shape, whether codes are hierarchical, possible empty results, or any other behavioral details, so the agent learns nothing beyond the basic intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact Korean sentence with the action and object front-loaded. It contains no filler and is appropriately sized for a trivial zero-parameter retrieval.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter, the phrase 'region code list' covers the obvious call and return type, but with no output schema and no distinction from detailed region-code siblings, the exact scope and structure of the returned codes remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there are no parameter semantics to document. The 0-parameter baseline applies, and the description correctly avoids inventing arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('지역 코드 목록을 조회합니다' – retrieve the region code list) and a specific resource, so an agent can identify this as a read-only list operation. However, it does not differentiate from siblings such as get_detailed_region_codes or get_subject_codes, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the many code-related sibling tools, such as get_detailed_region_codes, search_detailed_region_codes, or get_subject_codes. The agent is left to infer the choice purely from the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subject_codesBInspect
KDC 대주제분류 코드 목록을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| majorCode | No | 대분류 코드 (0-9) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool retrieves a list, but does not reveal any behavioral traits such as pagination, sorting, authentication requirements, rate limits, or how the majorCode parameter affects results. The description is too sparse to inform the agent about expected behavior beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler or redundancy. It is front-loaded with the core purpose, making it easy to scan. For a tool with minimal complexity, this level of brevity is appropriate and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity: one optional parameter, no output schema, and no nested objects. The description states the resource and the schema explains the parameter. However, it does not clarify that the parameter is optional, nor does it describe the structure of the returned list or how the filter works. Given the ambiguity among sibling tools, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% for the single parameter majorCode, which is described as '대분류 코드 (0-9)'. Since the schema already fully documents the parameter, the baseline is 3. The tool description does not add any extra semantic detail about the parameter, but the schema covers it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('조회' - retrieve) and a clear resource ('KDC 대주제분류 코드 목록' - KDC major subject classification code list). It distinguishes itself from sibling tools like get_detailed_subject_codes and search_detailed_kdc_codes, which likely deal with more granular codes. However, it does not explicitly mention the optional filter parameter, so it stops short of being fully specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_detailed_subject_codes or search_detailed_kdc_codes. There is no mention of scenarios, prerequisites, or exclusions. The usage context is entirely left to the agent to infer from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_trendCInspect
도서관별 대출반납 추이를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 조회기준 (D=요일별, H=시간대별) | |
| libCode | Yes | 도서관코드 - search_library_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says it retrieves a trend, with no information about output format, pagination, or any limitations. This is a minimal statement that does not convey behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that states the purpose directly. It is front-loaded and has no redundant information. However, it is so minimal that it borders on under-specification, so a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and only a one-line description, the agent lacks critical context such as what the returned trend looks like, any time-range constraints, or how the data is aggregated. The description is too sparse to be considered complete for a data-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully (libCode and type with enums), and coverage is 100%. The description adds no extra meaning to the parameters. Per the baseline for high schema coverage, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (조회합니다 = retrieves) and the resource (도서관별 대출반납 추이 = loan/return trend by library). It is specific enough to distinguish from most siblings, though it does not explicitly contrast with similar tools like get_book_usage_analysis. The resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only states what it does, with no mention of scenarios, prerequisites, or exclusions. An agent must infer its applicability from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_booksDInspect
도서관 소장 도서를 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 정렬필드 (title=도서명, author=저자명, pub=출판사, pubYear=출판년도, isbn=ISBN, loan=대출횟수) | |
| order | No | 정렬순서 (asc=오름차순, desc=내림차순) | |
| title | No | 도서명 | |
| author | No | 저자명 | |
| isbn13 | No | 13자리 ISBN | |
| pageNo | No | 페이지번호 | |
| keyword | No | 키워드 | |
| pageSize | No | 페이지크기 (최대 1000) | |
| publisher | No | 출판사 | |
| exactMatch | No | 일치검색여부 (true=완전일치, false=부분일치) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only says 'search' and gives no information about pagination, sorting, exact match behavior, result format, or any side effects. For a tool with 10 parameters that imply behavior (sort, order, exactMatch), this is a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is under-specified for a tool with 10 parameters and a large sibling set. It is not appropriately sized because it omits essential context that would help an agent use it correctly. This is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, no annotations, no output schema, and a crowded sibling set, the description provides almost no context. An agent would have to rely entirely on the schema and infer usage from parameter names, which is insufficient for a complex search tool. The description fails to convey the tool's purpose in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptive Korean labels for all 10 parameters (e.g., '정렬필드', '일치검색여부'), so the schema already documents parameter meanings. The description adds no parameter-level information, which is acceptable given full coverage, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('search') and resource ('library collection books'), which identifies the basic purpose. However, it does not differentiate from sibling tools like search_items or search_popular_books, leaving the specific scope ambiguous. A more specific verb or object scope would distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling search tools (e.g., search_popular_books, search_items, get_book_detail). No context is given for selecting this over alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_detailed_kdc_codesCInspect
세부주제코드를 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 결과 개수 제한 (기본값: 20) | |
| keyword | No | 검색할 주제 키워드 (예: '의학', '컴퓨터', '문학', '역사') | |
| majorCode | No | 대분류 코드 (0-9)로 필터링 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'searches', but does not clarify filtering semantics, whether it requires keywords, whether it returns partial matches, or any side effects. This is a significant gap for a full-disclosure tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, one sentence, which is efficient on length. However, it provides only a minimal statement, which is not conciseness but under-specification. It lacks the depth needed for a useful tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity with 3 parameters but no annotations or output schema, the description should explain how to form a query and what the output represents. It only says 'searches', leaving the agent to infer how to use it effectively, which is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema, so baseline is 3. The description adds no extra meaning beyond the schema; it does not explain how keyword, limit, and majorCode interact (e.g., are they ANDed?). Thus, while schema coverage is 100%, the description does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool searches for detailed subject codes (세부주제코드를 검색합니다), providing a clear verb and resource. However, it does not distinguish itself from sibling tools like search_detailed_region_codes or get_detailed_subject_codes, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it might be for finding codes by keyword, nor does it contrast with get_detailed_subject_codes which likely retrieves all codes. Without this, an agent may not route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_detailed_region_codesCInspect
세부지역코드를 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 결과 개수 제한 (기본값: 20) | |
| keyword | No | 검색할 지역 키워드 (예: '강남', '부산', '수원', '서대문') | |
| provinceCode | No | 광역시도 코드 (11=서울, 21=부산, 31=경기 등)로 필터링 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the full burden. It does not disclose that this is likely a read-only operation, nor any filtering or pagination behavior. The description only states 'searches' without explaining what happens with missing or partial inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short ('Search detailed region codes.'), which is concise, but it lacks useful structure or detail. It is not front-loaded with the most critical information because there is only a single sentence that provides minimal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters (one with an enum for province codes) and no output schema, the description is incomplete. It does not explain the purpose of the parameters or the expected output, and it fails to distinguish it from related sibling tools. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions, so the baseline is 3. The description does not add any additional meaning beyond what the schema provides, but the schema is adequate for understanding the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool searches for detailed region codes, which is a clear verb and resource. However, it does not differentiate from sibling tools like get_region_codes or get_detailed_region_codes, and the meaning of 'detailed' is not clarified. It also lacks any detail on what the search returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The sibling tools include get_region_codes and get_detailed_region_codes, and without any distinction, an agent could easily pick the wrong one. No context on use cases or filters is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_itemsCInspect
도서관별 장서/대출 데이터를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | 검색조건 (ALL=전체 데이터) | |
| endDt | No | 검색종료일자 (도서 등록일) - YYYY-MM-DD 형식 | |
| isbn13 | No | 13자리 ISBN | |
| pageNo | No | 페이지번호 | |
| libCode | Yes | 도서관코드 - search_library_codes 도구로 검색하세요 | |
| startDt | No | 검색시작일자 (도서 등록일) - YYYY-MM-DD 형식 | |
| pageSize | No | 페이지크기 (최대 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It does not mention whether it performs read-only queries, any authentication requirements, rate limits, or response format. The description is generic and does not add context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise熧 but it lacks specificity and structure. It does not list any key parameters or usage context. It is not verbose, but it under-delivers on informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 7 parameters and no output schema, the description provides minimal context. It does not explain the return format, pagination details, or how the parameters interact (e.g., date range vs ISBN). The description is insufficient for an agent to know how to construct a valid query, especially given the many similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines each parameter. The description adds no additional meaning beyond schema descriptions, but per the rubric, a baseline of 3 is warranted; however, the schema itself provides rich descriptions (e.g., libCode references another tool, date formats, constraints). Thus a slight above baseline is justified because the schema is self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'search' and resource 'library collection/loan data' but is vague about what exactly is returned. It does not differentiate from many siblings like search_books, check_book_availability, or search_popular_books, which likely also involve books and libraries. The agent cannot tell what unique functionality this tool provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool vs alternatives. The schema hints at filtering by ISBN, date, and pagination, but there is no mention of when to prefer this over search_books or search_popular_books_by_library. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_librariesCInspect
전국의 공공도서관 정보를 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | No | 페이지번호 | |
| region | No | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| libCode | No | 도서관코드 - search_library_codes 도구로 검색하세요 | |
| pageSize | No | 페이지크기 (최대 1000) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action '검색합니다' (searches), which implies a read operation, but it does not disclose whether results are paginated, whether any filters are required, or what the response format looks like. The description is too sparse to inform the agent about the tool's operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no redundant or filler content. It conveys the essential purpose without unnecessary elaboration, making it highly concise and front-loaded. Every word contributes to the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, all optional, and no output schema, the description is too sparse to be complete. It does not explain what the search returns, how to combine parameters, or what typical usage looks like. The schema covers parameter details, but the description fails to provide operational context, such as whether a pagination is required, whether a region must be specified, or what kind of results are expected. For a tool with this complexity, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 5 parameters, including enum values, patterns, and usage hints like 'search_library_codes 도구로 검색하세요'. The description itself does not add any parameter-specific meaning beyond what the schema already provides, which aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb '검색' (search) and the resource '공공도서관 정보' (public library information), with the scope '전국' (nationwide). This clearly conveys the core function and hints at its nationwide scope, distinguishing it from location-specific siblings like search_nearby_libraries. However, it does not explicitly name or contrast with any sibling tool, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus other search tools such as search_nearby_libraries, search_libraries_by_book, or search_library_codes. The description only states what it does, not when it should be preferred or when it should be avoided. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_libraries_by_bookBInspect
특정 도서를 소장한 도서관을 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn | Yes | 10자리 또는 13자리 ISBN | |
| pageNo | No | 페이지 번호 | |
| region | Yes | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| pageSize | No | 페이지 크기 (최대 1000) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says the tool 'searches', which implicitly suggests a read-only operation, but does not disclose any side effects, permission needs, pagination behavior, or possible errors. No meaningful behavioral expectations are set beyond the obvious read-only connotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It directly states the core purpose and is appropriately sized for the tool's simplicity. It is easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters including two required ones, yet the description provides no contextual guidance about required inputs, region dependence, or return expectations. There is no output schema, so the agent must infer what the search returns; the description does not bridge that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all parameters have descriptions). The description itself adds no semantic detail about the parameters; it does not even mention that the search is by ISBN or region, which are critical. This is a baseline 3 because the schema already documents everything, and the description adds negligible extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('검색합니다' - searches) and a resource ('도서를 소장한 도서관' - libraries that own a book), making its purpose clear. It distinguishes itself from sibling tools like search_libraries (which likely searches libraries without a book-specific lens) by specifying the 'by book' criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search_nearby_libraries or search_libraries. The description only states what it does, not when an agent should prefer it over related tools. There is no when-not or alternative-routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_library_codesAInspect
도서관명이나 지역명으로 도서관 코드를 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 검색 결과 수 (1~100) | |
| regionName | No | 지역명으로 검색 (예: 서울, 강남구, 부산, 경기도) | |
| libraryName | No | 도서관명 또는 코드의 일부로 검색 (예: '중앙도서관', '강남', '시립') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'search' without any mention of pagination, rate limits, output format, or other behavioral traits. This is a significant gap for a tool with no annotation safety net.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the tool's purpose with zero filler. Every word is functional and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what the tool returns (e.g., a list of library codes). It does not, leaving the agent to guess the return format. The simplicity of the tool partially excuses this, but for completeness it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all parameters at 100%, so the description does not need to repeat parameter details. It does add a high-level mapping of regionName and libraryName to the search criteria, but this adds minimal value beyond what the schema already provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search), the resource (library codes), and the search criteria (by library name or region name). This is specific and distinguishes it from siblings like search_libraries, which likely returns library information rather than codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: when you need library codes identified by name or region. However, it does not explicitly mention alternatives or when not to use other search tools, so it lacks exclusions but still conveys its intended use clearly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nearby_librariesAInspect
사용자의 위치를 기반으로 가까운 도서관들을 거리순으로 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 반환할 도서관 개수 (기본값: 15, 최대: 100) | |
| latitude | Yes | 사용자의 위도 (-90 ~ 90) | |
| longitude | Yes | 사용자의 경도 (-180 ~ 180) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavior burden itself. It does disclose that this is a search operation sorted by distance, which implies read-only, but it doesn't mention coordinate validation, output shape, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact Korean sentence conveys the resource, basis, and ordering with no filler. All information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool the description is adequate, but there is no output schema and no description of what a returned library record contains or how count is applied beyond the schema. The absence of annotations and output details leaves minor but real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds only the distance-ordering context and doesn't add parameter-specific meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('search') with a clear resource ('nearby libraries') and defines the operation's basis (user's location) and ordering (distance). This distinguishes it from sibling search tools like search_libraries, which don't mention location-based distance sorting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when a user has latitude/longitude and needs nearby libraries sorted by distance. It doesn't explicitly name alternatives or exclusions, so it loses one point, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_popular_booksCInspect
인기대출도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | 연령코드 (0=영유아, 6=유아, 8=초등, 14=청소년, 20~60=연령대, a8/a10/a12=초등 학년군, a14=중등, a17=고등) | |
| kdc | No | 대주제분류 (0=총류, 1=철학, 2=종교, 3=사회과학, 4=자연과학, 5=기술과학, 6=예술, 7=언어, 8=문학, 9=역사) | |
| endDt | No | 검색종료일자 (대출기간) - YYYY-MM-DD 형식 | |
| gender | No | 성별코드 (0=남성, 1=여성, 2=미상) | |
| pageNo | No | 페이지번호 | |
| region | No | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| to_age | No | 종료연령 | |
| addCode | No | ISBN부가기호 (0=교양, 1=실용, 2=여성, 4=청소년, 5=학습참고서(중고), 6=학습참고서(초등), 7=아동, 9=전문) | |
| dtl_kdc | No | 세부주제코드 - search_detailed_kdc_codes 도구로 검색하세요 | |
| startDt | No | 검색시작일자 (대출기간) - YYYY-MM-DD 형식 | |
| from_age | No | 시작연령 | |
| pageSize | No | 페이지크기 (최대 1000) | |
| book_dvsn | No | 도서구분 (big=큰글씨도서, oversea=국외도서) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that the tool performs a query ('조회') but does not disclose anything about output format, pagination behavior, whether it returns aggregated nationwide data, rate limits, or whether any filters are required. The read‑only nature is only implied by the word '조회', offering minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase, which is concise but under-specified. It conveys only the bare idea without any valuable details, making it not 'appropriately sized' – it lacks even minimal context us como pagination or result. The structure is front-loaded (naturally) but offers no information beyond a tautology-like statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters, no output schema, and no annotations, the description is far from complete. It does not mention what the result looks like, how to narrow searches, or that the date range and demographic fields are key modifiers. The schema covers parameters, but the overall callability context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-specific semantics; it only repeats the tool's name-level purpose. However, because all 14 parameters are fully described with code mappings and patterns in the schema, the description does not need to compensate, so the baseline score holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('조회합니다' - queries/retrieves) on a specific resource ('인기대출도서' - popular loan books), which clearly conveys the core purpose. However, it does not differentiate from siblings like search_popular_books_by_library or get_popular_books_by_library, which share the same resource and action pattern, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many competing siblings (e.g., search_popular_books_by_library, get_popular_books_by_library, search_books). There is no mention of what type of query this suits, how it differs from library-specific variants, or any prerequisites such as choosing a date range or region.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_popular_books_by_libraryCInspect
도서관/지역별 인기대출 도서를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | 연령코드 (0=영유아, 6=유아, 8=초등, 14=청소년, 20~60=연령대, a8/a10/a12=초등 학년군, a14=중등, a17=고등) | |
| kdc | No | 대주제분류 (0=총류, 1=철학, 2=종교, 3=사회과학, 4=자연과학, 5=기술과학, 6=예술, 7=언어, 8=문학, 9=역사) | |
| endDt | No | 검색종료일자 (대출기간) - YYYY-MM-DD 형식 | |
| gender | No | 성별코드 (0=남성, 1=여성, 2=미상) | |
| pageNo | No | 페이지번호 | |
| region | No | 지역코드 (11=서울, 21=부산, 22=대구, 23=인천, 24=광주, 25=대전, 26=울산, 29=세종, 31=경기, 32=강원, 33=충북, 34=충남, 35=전북, 36=전남, 37=경북, 38=경남, 39=제주) | |
| to_age | No | 종료연령 | |
| addCode | No | ISBN부가기호 (0=교양, 1=실용, 2=여성, 4=청소년, 5=학습참고서(중고), 6=학습참고서(초등), 7=아동, 9=전문) | |
| dtl_kdc | No | 세부주제코드 - search_detailed_kdc_codes 도구로 검색하세요 | |
| libCode | No | 도서관코드 - search_library_codes 도구로 검색하세요 | |
| startDt | No | 검색시작일자 (대출기간) - YYYY-MM-DD 형식 | |
| from_age | No | 시작연령 | |
| pageSize | No | 페이지크기 (최대 1000) | |
| book_dvsn | No | 도서구분 (big=큰글씨도서, oversea=국외도서) | |
| dtl_region | No | 세부지역코드 - search_detailed_region_codes 도구로 검색하세요 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb '조회합니다' implies a read-only query, but no behavioral details are disclosed. There is no mention of pagination, filtering defaults, output format, or side effects. With no annotations provided, the description carries the full burden and fails to provide meaningful transparency beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the purpose without excess words. It is appropriately front-loaded and economical, though it lacks the richness that would elevate it to a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (15 parameters, no output schema, no annotations), this description is far too sparse. It does not explain what the response contains, how to construct a meaningful query, or whether any minimum filter is needed. The schema covers parameter meanings but the description fails to tie the tool together for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes 100% of parameters, so the baseline is 3. The description itself adds no parameter-level detail; it only mentions the broad categories 'library/region' which are already covered by existing parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('조회합니다') and a specific resource ('도서관/지역별 인기대출 도서'), making the tool's purpose unambiguous. However, it does not explicitly differentiate itself from similar sibling tools like search_popular_books or get_popular_books_by_library, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It neither mentions prerequisites, exclusions, nor recommended scenarios, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
27 tool updates
v1.0.7- First observed
check_book_availability - First observed
get_book_detail - First observed
get_book_keywords - First observed
get_book_usage_analysis - First observed
get_detailed_region_codes - First observed
get_detailed_subject_codes - First observed
get_hot_trend - First observed
get_library_info - First observed
get_mania_recommendations - First observed
get_monthly_keywords - First observed
get_new_arrival_books - First observed
get_popular_books_by_library - First observed
get_reader_recommendations - First observed
get_reading_quantity - First observed
get_region_codes - First observed
get_subject_codes - First observed
get_usage_trend - First observed
search_books - First observed
search_detailed_kdc_codes - First observed
search_detailed_region_codes - First observed
search_items - First observed
search_libraries - First observed
search_libraries_by_book - First observed
search_library_codes - First observed
search_nearby_libraries - First observed
search_popular_books - First observed
search_popular_books_by_library
TDQS
Scored across 27 tools
Several tools have heavily overlapping purposes, especially search_popular_books, search_popular_books_by_library, and get_popular_books_by_library, which all concern popular loan books with unclear differences. The code-related tools (get_subject_codes, get_detailed_subject_codes, search_detailed_kdc_codes) and library-search variants also blur boundaries.
All names use snake_case and mostly follow a verb_noun structure, but the use of get_ vs search_ is inconsistent and doesn't clearly separate semantics (e.g., search_popular_books vs get_popular_books_by_library). The naming is readable but lacks a consistent rule.
27 tools exceeds the 25 threshold for 'too many' for a single server. The count is inflated by redundant variations (three popular-book tools, multiple code-list/search tools) that could be consolidated.
The set covers the read-only library domain well: library search, book search/detail, availability, popular books, recommendations, usage trends, and code lookups. There are minor gaps such as no direct tool to search by a specific date range or comprehensive library comparison, but agents can work around them.
Maintenance
Related MCP Connectors
Who qualifies for 10,956 Korean government benefits (보조금24). Plus public data and weather.
Find official Korean public datasets, agency-site menus, disclosure listings, and source URLs.
Korean business registry, corporate info, parcel tracking, validation APIs
Access Korea’s G2B procurement and Nara Market data for bid notices, awards, contracts, statistics…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables exploration and interaction with South Korea's Public Data Portal (OpenAPI) through keyword search, standard documentation retrieval, and direct API endpoint calls with automatic service key injection.11Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceEnables searching and retrieving Korean legal information including laws, court precedents, legal interpretations, and local ordinances from the Korean National Law Information Center API with intelligent search ranking.-
- FlicenseNot gradedqualityBmaintenanceSearches for children's programs at public facilities like libraries and cultural centers in South Korea, answering natural language queries about schedules, fees, and registration.-
- AlicenseNot gradedqualityAmaintenanceEnables exploration of Korean National Assembly data by connecting bills, committee reviews, and official records. Allows users to ask natural language questions and receive structured answers with citations to original documents.26Apache 2.0