Skip to main content
Glama
rubatoyd

io.github.rubatoyd/kakao-book-mcp

by rubatoyd

kakao-book-mcp

CI Release Downloads

๐Ÿ“Š ์‚ฌ์šฉ๋Ÿ‰ ํ†ต๊ณ„ โ€” ์ตœ๊ทผ 14์ผ ์กฐํšŒ 0ํšŒ(์ˆœ 0) ยท ํด๋ก  0ํšŒ(์ˆœ 0) ยท ๋ฆด๋ฆฌ์Šค ๋‹ค์šด๋กœ๋“œ 1๊ฑด

์ผ๋ณ„ ํด๋ก ยท์กฐํšŒ ์ถ”์ด

2026-09-19 ์ž๋™ ์ง‘๊ณ„๋จ ยท ์ „์ฒด ์ด๋ ฅ docs/usage.csv. GitHub ํŠธ๋ž˜ํ”ฝ API 14์ผ ์ฐฝ์„ ์˜๊ตฌ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

์นด์นด์˜ค Daum ์ฑ… ๊ฒ€์ƒ‰(Daum Book Search) Open API๋ฅผ Claude, Cursor ๋“ฑ MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐ”๋กœ ์“ฐ๋Š” MCP ์„œ๋ฒ„ + CLI ๋„๊ตฌ.
๋„์„œ๋ช…ยท์ €์žยท์ถœํŒ์‚ฌยทISBN ๊ฒ€์ƒ‰, ์ƒ์„ธ ์„œ์ง€ ๋ฐ ๊ฐ€๊ฒฉ/ํ• ์ธ์œจ ์ •๋ณด ์ˆ˜์ง‘, ๋‹ค์ค‘ ํ‚ค์›Œ๋“œ ์ผ๊ด„ ์ˆ˜์ง‘ ํ›„ xlsxยทcsvยทjsonยทsqlite ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

๐Ÿ“š ์ž๋งค ํ”„๋กœ์ ํŠธ: kci-openapi-mcp (KCI ํ•™์ˆ ๋…ผ๋ฌธยท์ธ์šฉ์ง€์ˆ˜) ยท scienceON-mcp (KISTI ๊ณผํ•™๊ธฐ์ˆ  ๋ฌธํ—Œ) ยท nl-openapi-mcp (๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ ๊ตญ๊ฐ€์„œ์ง€)


์ฃผ์š” ๊ธฐ๋Šฅ

  1. ๋„์„œ ๊ฒ€์ƒ‰ & ISBN ์กฐํšŒ:

    • ์ œ๋ชฉ, ์ €์ž/์—ญ์ž, ์ถœํŒ์‚ฌ, ISBN ํ•„๋“œ ํƒ€๊ฒŸํŒ… ๊ฒ€์ƒ‰

    • 10์ž๋ฆฌ / 13์ž๋ฆฌ ISBN ์ž๋™ ์ •๊ทœํ™” ๋ฐ ์กฐํšŒ

  2. ์กฐ์šฉํ•œ ์ ˆ๋‹จ(Quiet Truncation) ๋ฐฉ์ง€:

    • ์นด์นด์˜ค ์ฑ… ๊ฒ€์ƒ‰ API๋Š” ์ตœ๋Œ€ 50ํŽ˜์ด์ง€ * 50๊ฑด = 2,500๊ฑด์˜ ํŽ˜์ด์ง• ์ƒํ•œ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

    • ์‘๋‹ต์— total_count, pageable_count, is_end, truncated, cap_hit์„ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜์—ฌ ๋ถ€๋ถ„ ์ˆ˜์ง‘์„ ์ „์ˆ˜๋กœ ์˜ค์ธํ•˜์ง€ ์•Š๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

  3. ๋Œ€๋Ÿ‰ ์ˆ˜์ง‘ & ๋‹ค์ค‘ ํฌ๋งท Export:

    • ๋ณต์ˆ˜ ๊ฒ€์ƒ‰์–ด์— ๋Œ€ํ•œ ์ž๋™ ํŽ˜์ด์ง• ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ(ISBN ๊ธฐ์ค€)

    • ์ถœํŒ์—ฐ๋„(year_from, year_to), ๊ฐ€๊ฒฉ(min_price, max_price), ํŒ๋งค์ƒํƒœ(status), ๋ณธ๋ฌธ ํ‚ค์›Œ๋“œ(contains) ํด๋ผ์ด์–ธํŠธ ํ•„ํ„ฐ๋ง

    • xlsx (์Šคํƒ€์ผ ์„œ์‹ ์ ์šฉ), csv (ํ•œ๊ธ€ Excel ํ˜ธํ™˜ UTF-8 BOM), json (์›๋ณธ raw ํฌํ•จ), sqlite ๋™์‹œ ์ €์žฅ

  4. ๊ต์œก๋ง/์‚ฌ๋‚ด๋ง SSL ์ธํ„ฐ์…‰์…˜ ๋Œ€์‘:

    • truststore ๋‚ด์žฅ์œผ๋กœ ๋ณ„๋„ ์ธ์ฆ์„œ ๋“ฑ๋ก ์—†์ด OS ์‹ ๋ขฐ ์ €์žฅ์†Œ ์ž๋™ ์—ฐ๋™


Related MCP server: scienceon-mcp

๋„๊ตฌ ๋ชฉ๋ก (MCP Tools)

๋„๊ตฌ๋ช…

์„ค๋ช…

์ฃผ์š” ์ธ์ž

kakao_book_status

์ธ์ฆํ‚ค ์œ ํšจ์„ฑ ์ ๊ฒ€ ๋ฐ ์นด์นด์˜ค API 1ํšŒ ํ”„๋กœ๋ธŒ ํ˜ธ์ถœ

์—†์Œ

kakao_book_search

ํ‚ค์›Œ๋“œ ๋„์„œ ๊ฒ€์ƒ‰

query, target (title|isbn|publisher|person), sort (accuracy|latest), page, size

kakao_book_isbn

ISBN ์ „์šฉ ์ƒ์„ธ ์กฐํšŒ (๋ณต์ˆ˜ ISBN ์ง€์›)

isbn (์‰ผํ‘œ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ)

kakao_book_collect

๋‹ค์ค‘ ๊ฒ€์ƒ‰์–ด ๋Œ€๋Ÿ‰ ์ˆ˜์ง‘ ๋ฐ ํŒŒ์ผ ์ €์žฅ

terms, target, sort, max_records, year_from, year_to, min_price, max_price, status, contains, formats, out_dir, name


์ธ์ฆํ‚ค ๋ฐœ๊ธ‰ ๋ฐ ์„ค์ • (1๋ถ„ ์†Œ์š”, ๋ฌด๋ฃŒ)

์นด์นด์˜ค Daum ์ฑ… ๊ฒ€์ƒ‰ API๋Š” ๋ฌด๋ฃŒ์ด๋ฉฐ ๋ณ„๋„์˜ ์Šน์ธ ์‹ฌ์‚ฌ ์—†์ด ์ฆ‰์‹œ ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค (์ผ์ผ ๊ธฐ๋ณธ 30,000๊ฑด ์ฟผํ„ฐ ์ œ๊ณต).

1. REST API ํ‚ค ๋ฐœ๊ธ‰ ๋ฐฉ๋ฒ•

  1. ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ์Šค (developers.kakao.com) ์ ‘์† ๋ฐ ์นด์นด์˜ค ๊ณ„์ • ๋กœ๊ทธ์ธ

  2. ์ƒ๋‹จ ๋ฉ”๋‰ด์˜ [๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜] โžก๏ธ [์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ] ํด๋ฆญ

    • ์•ฑ ์ด๋ฆ„: ์ž„์˜ ์ž…๋ ฅ (์˜ˆ: kakao-book-mcp)

    • ์‚ฌ์—…์ž๋ช…: ์ž„์˜ ์ž…๋ ฅ (์˜ˆ: ๊ฐœ์ธ ๋˜๋Š” ๋ณธ์ธ ์ด๋ฆ„)

  3. ์ƒ์„ฑ๋œ ์•ฑ ํด๋ฆญ โžก๏ธ ์ขŒ์ธก [์•ฑ ํ‚ค] (๋˜๋Š” [์•ฑ ์„ค์ •] > [์š”์•ฝ ์ •๋ณด])์—์„œ REST API ํ‚ค (32์ž๋ฆฌ 16์ง„์ˆ˜) ๋ณต์‚ฌ

2. ํ™˜๊ฒฝ๋ณ„ ํ‚ค ๋“ฑ๋ก ๋ฐฉ๋ฒ•

๋ณต์‚ฌํ•œ REST API ํ‚ค๋ฅผ ์‚ฌ์šฉ ํ™˜๊ฒฝ์— ๋งž์ถฐ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

์‚ฌ์šฉ ํ™˜๊ฒฝ

์„ค์ • ์œ„์น˜

์„ค์ • ๋ฐฉ๋ฒ•

Claude Desktop (.mcpb)

ํ™•์žฅ ์„ค์น˜ ์‹œ ํŒ์—…์ฐฝ

.mcpb ํŒŒ์ผ์„ Claude Desktop์— ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ํ›„ ๋‚˜ํƒ€๋‚˜๋Š” ์ž…๋ ฅ์ฐฝ์— ํ‚ค ๋ถ™์—ฌ๋„ฃ๊ธฐ

Claude Code

claude mcp add

--env KAKAO_API_KEY=YOUR_REST_API_KEY ์˜ต์…˜์œผ๋กœ ์ „๋‹ฌ

Antigravity / Gemini CLI

mcp_config.json

env.KAKAO_API_KEY ํ•ญ๋ชฉ์— ์„ค์ •

CLI / ํ„ฐ๋ฏธ๋„ ์ง์ ‘ ์‹คํ–‰

OS ํ™˜๊ฒฝ๋ณ€์ˆ˜ / .env

Windows ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋ก ๋˜๋Š” ์ž‘์—… ํด๋”์˜ .env ํŒŒ์ผ์— KAKAO_API_KEY=... ์ž‘์„ฑ


์„ค์น˜ ๋ฐ MCP ๋“ฑ๋ก

1. Claude Desktop

%APPDATA%/Claude/claude_desktop_config.json (Windows) ๋˜๋Š” ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "kakao-book": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/rubatoyd/kakao-book-mcp", "kakao-book-mcp"],
      "env": {
        "KAKAO_API_KEY": "YOUR_KAKAO_REST_API_KEY",
        "KAKAO_OS_TRUST": "1"
      }
    }
  }
}

2. Claude Code

claude mcp add kakao-book --env KAKAO_API_KEY=YOUR_REST_API_KEY -- uvx --from git+https://github.com/rubatoyd/kakao-book-mcp kakao-book-mcp

3. Gemini CLI / Antigravity

ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .agents/mcp_config.json ๋˜๋Š” ์ „์—ญ ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "kakao-book": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/rubatoyd/kakao-book-mcp", "kakao-book-mcp"],
      "env": {
        "KAKAO_API_KEY": "YOUR_KAKAO_REST_API_KEY",
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

4. Cursor / Windsurf / Cline

  • Command: uvx

  • Args: ["--from", "git+https://github.com/rubatoyd/kakao-book-mcp", "kakao-book-mcp"]

  • Env: KAKAO_API_KEY=...


CLI ์‚ฌ์šฉ๋ฒ•

# 1. ์ƒํƒœ ๋ฐ ์—ฐ๊ฒฐ ์ ๊ฒ€
uvx --from git+https://github.com/rubatoyd/kakao-book-mcp kbook status

# 2. ๋„์„œ ๊ฒ€์ƒ‰
uvx --from git+https://github.com/rubatoyd/kakao-book-mcp kbook search "์ธ๊ณต์ง€๋Šฅ" --target title --size 5

# 3. ISBN ์กฐํšŒ
uvx --from git+https://github.com/rubatoyd/kakao-book-mcp kbook isbn 9788996991342

# 4. ๋Œ€๋Ÿ‰ ์ˆ˜์ง‘ ๋ฐ ์—‘์…€/CSV/JSON ์ €์žฅ
uvx --from git+https://github.com/rubatoyd/kakao-book-mcp kbook collect --terms "๋”ฅ๋Ÿฌ๋‹" "๋จธ์‹ ๋Ÿฌ๋‹" --max 100 --format xlsx csv json --out ./output

๋กœ์ปฌ ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰

ํด๋ผ์šฐ๋“œ ๋™๊ธฐํ™”(OneDrive ๋“ฑ)์™€์˜ ์ถฉ๋Œ ๋ฐ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒํ™˜๊ฒฝ์€ ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€(C:\Users\rubat\.venvs\kakao-book)์— ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

# ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํŒจํ‚ค์ง€ ์„ค์น˜
uv venv C:\Users\rubat\.venvs\kakao-book
uv pip install --python C:\Users\rubat\.venvs\kakao-book -e . pytest

# ํ…Œ์ŠคํŠธ ์‹คํ–‰
C:\Users\rubat\.venvs\kakao-book\Scripts\pytest.exe

# CLI ์‹คํ–‰
C:\Users\rubat\.venvs\kakao-book\Scripts\kbook.exe status

๋ผ์ด์„ ์Šค

MIT License.

Available Tools

4 tools
kakao_book_collectA

[๋„์„œ ๋Œ€๋Ÿ‰ ์ˆ˜์ง‘ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ] ์—ฌ๋Ÿฌ ๊ฒ€์ƒ‰์–ด/ํ•„ํ„ฐ ์กฐ๊ฑด์œผ๋กœ ๋„์„œ๋ฅผ ์ž๋™ ํŽ˜์ด์ง• ์ˆ˜์ง‘ํ•˜๊ณ  ์ค‘๋ณต ์ œ๊ฑฐ ํ›„ ๋กœ์ปฌ ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

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: ํŒŒ์ผ ๊ธฐ๋ณธ ์ด๋ฆ„ (๊ธฐ๋ณธ๊ฐ’: ์ฒซ ๊ฒ€์ƒ‰์–ด ๊ธฐ์ค€ ์ž๋™ ์ƒ์„ฑ).

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

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.

kakao_book_isbnA
Read-only

[ISBN ๋„์„œ ์กฐํšŒ] ISBN(10์ž๋ฆฌ ๋˜๋Š” 13์ž๋ฆฌ, ํ•˜์ดํ”ˆ ํฌํ•จ ๊ฐ€๋Šฅ)์œผ๋กœ ๋„์„œ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

isbn: ์กฐํšŒํ•  ISBN ๋ฌธ์ž์—ด (์˜ˆ: '9788996991342', '8996991341', ์‰ผํ‘œ๋กœ ๋ณต์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ).

ParametersJSON Schema
NameRequiredDescriptionDefault
isbnYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description's '์กฐํšŒ' (lookup) aligns with that. The description adds the behavioral detail that multiple ISBNs can be specified with commas, which is beyond the schema. It does not contradict annotations, but it doesn't disclose additional traits like return format or rate limits. Given the low complexity and existing read-only annotation, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is two sentences: the first states the purpose and format, the second explains the parameter with examples. No wasted words, and the key information is front-loaded. It is appropriately sized for a single-parameter read-only tool.

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?

Given the tool's simplicity (1 param, read-only annotation, no output schema), the description covers the essential details: what it does, how to format the input, and multi-ISBN capability. It does not describe the return format, but for a lookup tool this is often intuitive. The absence of output schema means the agent might benefit from a hint about what fields are returned, but this is a minor gap for such a focused tool.

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?

Schema description coverage is 0%, so the description must fully explain the parameter. It does: it defines isbn as the ISBN string, gives two concrete examples, and notes that multiple ISBNs can be separated by commas. This fully compensates for the empty schema descriptions and exceeds the baseline.

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 description clearly states the tool's purpose: looking up books by ISBN. It specifies the ISBN format (10 or 13 digits, hyphens allowed) and is distinct from sibling tools like kakao_book_search, which likely searches by keyword. The verb '์กฐํšŒ' (lookup) and resource '๋„์„œ' (book) are explicit.

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 usage (when you have an ISBN, use this tool) but does not explicitly state when to use it versus alternatives like search. No mention of exclusions or prerequisites beyond the ISBN format. An agent can infer the use case, but it lacks explicit routing guidance.

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

kakao_book_statusA
Read-only

[์—ฐ๊ฒฐ ์ ๊ฒ€] ์ธ์ฆํ‚ค ์„ค์ • ์—ฌ๋ถ€ ๋ฐ ์นด์นด์˜ค ์ฑ… ๊ฒ€์ƒ‰ API ์‹ค์ œ ์™•๋ณต 1ํšŒ ํ…Œ์ŠคํŠธ.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that it tests a real round-trip and checks the authentication key, which provides context beyond annotations and is consistent with them. It does not disclose output format but for a status tool that is acceptable.

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

Conciseness5/5

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

A single, front-loaded sentence that communicates the tool's purpose concisely without any fluff. Every word is informative.

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

Completeness5/5

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

For a zero-parameter diagnostic tool with no output schema and clear siblings, the description is fully sufficient. It explains what the tool does and its scope; nothing is missing for correct invocation.

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

Parameters4/5

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

There are no parameters, so the description has no need to explain them. The schema coverage is 100% (empty properties). Baseline of 4 applies because no parameter documentation is required.

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 description clearly states a specific diagnostic purpose: checking authentication key setup and performing a single round-trip to the Kakao book search API. It is distinct from sibling tools (search, isbn, collect) which all query data; this tool verifies connectivity.

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

Usage Guidelines4/5

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

The phrase 'connection check' explicitly signals when to use it (to verify API connectivity and authentication), but it does not name alternatives or state exclusions. The context is clear enough for agents to select it appropriately.

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.

  1. 4 tool updatesv0.1.0
    • First observedkakao_book_collect
    • First observedkakao_book_isbn
    • First observedkakao_book_search
    • First observedkakao_book_status

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation4/5

The tools are mostly distinct: status checks connectivity, search does general queries, isbn is a specialized lookup by ISBN, and collect is a batch operation. However, search with target='isbn' overlaps with the isbn tool, which could cause confusion about which to use.

Naming Consistency5/5

All tools follow a consistent kakao_book_<action> snake_case pattern with clear action words (status, search, isbn, collect). The naming is predictable and uniform across the set.

Tool Count5/5

With 4 tools, the server is well-scoped for a book search API wrapper. It covers a health check, basic search, ISBN lookup, and batch collection without unnecessary bloat.

Completeness5/5

The tool surface covers the core read-only operations for a search API: single search, ISBN lookup, and bulk collection with filters and export. No obvious lifecycle operations are missing since the domain is read-only.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying a curated book database using MCP tools to retrieve basic or detailed book information by ISBN or title, including batch lookups.
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching and collecting academic literature metadata from KISTI ScienceOn via Claude or CLI, supporting various document types and export formats.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables real-time book search, detailed information, and bestsellers from the Aladin OpenAPI, integrated with Claude Desktop via MCP.
    4 npm
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Search and harvest Korean academic literature and book bibliography metadata from the National Library of Korea Seoji OpenAPI via MCP or CLI.
    3
    1
    MIT