Skip to main content
Glama
rubatoyd

io.github.rubatoyd/kakao-book-mcp

by rubatoyd

kakao_book_collect

Bulk-collect book records by multiple search terms and filters, deduplicate automatically, and save results to local xlsx, csv, json, or sqlite files.

Instructions

[도서 대량 수집 및 내보내기] 여러 검색어/필터 조건으로 도서를 자동 페이징 수집하고 중복 제거 후 로컬 파일로 저장합니다.

terms: 검색어 단일 문자열 또는 문자열 리스트 (예: ['인공지능', '머신러닝']). target: 검색 대상 필드 (title, isbn, publisher, person, 기본값: 전체). sort: 정렬 방식 (accuracy, latest). max_records: 검색어당 최대 수집 건수 (기본 50, 최대 2500). year_from / year_to: 출판연도 필터 (YYYY 형식, 클라이언트 후처리). min_price / max_price: 가격 범위 필터 (원 단위, 클라이언트 후처리). status: 도서 상태 필터 (예: '정상판매', '품절', '절판'). contains: 본문/제목/저자/출판사에 반드시 포함되어야 할 추가 키워드. formats: 저장할 파일 포맷 리스트 (['xlsx', 'csv', 'json', 'sqlite'], 기본값: ['xlsx', 'csv', 'json']). out_dir: 저장할 폴더 경로 (기본값: ./output). name: 파일 기본 이름 (기본값: 첫 검색어 기준 자동 생성).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
sortNoaccuracy
termsYes
statusNo
targetNo
formatsNo
out_dirNo
year_toNo
containsNo
max_priceNo
min_priceNo
year_fromNo
max_recordsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse annotations (readOnlyHint=false, destructiveHint=false), the description discloses meaningful behaviors: auto-pagination, deduplication, local file persistence, per-term record caps (50 default, 2500 max), and crucially '클라이언트 후처리' (client-side post-processing) for year and price filters, which tells the agent these filters are applied locally and results may be approximate. This is valuable context well beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The summary is front-loaded in a single compact Korean sentence, and the parameter section uses a terse 'param: description' format with no redundancy. It is long, but every line is warranted given 13 parameters and zero schema documentation. Minor deduction for the unbroken parameter wall, which could be more scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 13-parameter, 1-required tool with no output schema, the description covers operation semantics, parameter meaning, output formats, and default output location thoroughly. The notable gap is the return contract: with no output schema, the agent is not told what the tool returns (success message, file paths, record counts) or how failures are reported.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by documenting all 13 parameters with types, allowed values (target, sort, formats), defaults, format constraints (YYYY for years, KRW for prices), and behavioral notes (client-side post-processing). Examples like ['인공지능', '머신러닝'] for terms make correct invocation unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The summary line states a specific verb+resource+mechanism: automatically paginated collection of books across multiple search terms with deduplication, saved to local files. This 'bulk collect and export' profile is clearly distinguishable from the sibling tools (kakao_book_search, kakao_book_status, kakao_book_isbn), which are single-lookup operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the batch use case ('여러 검색어/필터 조건' - multiple search terms/filters) and local-file export, which signals when bulk collection is appropriate. However, it never explicitly names alternatives or states when NOT to use it (e.g., a single ISBN lookup should go to kakao_book_isbn). The usage context is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.