Skip to main content
Glama
rubatoyd

kci-openapi-mcp

by rubatoyd

kci_collect

Collect and save Korean Citation Index literature, citation data, and references by automatically selecting REST API or OAI-PMH based on query parameters, with retry logic for complete results.

Instructions

[혼용] 요청 성격·키 유무로 REST↔OAI 자동 선택 후 수집 → 파일 저장.

  • terms/title 있고 인증키 보유 → REST 변형어 합집합 검색(year_from/to·contains 적용)

retry_incomplete: 다중 페이지 질의는 호출마다 결과가 흔들려 1~2건이 빠질 수 있다. 기본 1 이면 total 에 못 미쳤을 때 검색축마다 한 번 더 훑어 합집합을 취한다(meta.sweeps_total 로 확인). ⚠️ 보정이 걸린 축은 전체를 재페이징하므로 요청 수가 그 축만큼 늘어난다. 대규모 수집에서 비용이 부담되면 0 으로 끈다 — 대신 결손이 남고 meta.total_mismatch 로만 표시된다.

  • terms/title 있고 키 없음 → OAI 수확(date_from/until) + terms/contains 로컬 필터

  • terms/title 없음 → OAI 세트/날짜범위 전수 수확 out_dir 미지정 시 홈의 kci-output/. OAI 날짜는 YYYY-MM-DD, REST 연도는 정수.

⚠️ REST 경로는 각 검색어를 제목축·키워드축 두 번 조회해 합집합한다 → 결과는 '제목검색 결과'가 아니라 제목∪키워드다. 반환값 meta.axes 에 축별 total 이 담긴다. ⚠️ truncated=true 면 max_records 상한에 잘린 것이다 — 그대로 분석에 쓰면 안 된다. meta.union_upper_bound 위로 max_records 를 올려 재수집할 것.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
termsNo
titleNo
formatsNo
out_dirNo
year_toNo
containsNo
set_specNoARTI
date_fromNo
year_fromNo
date_untilNo
max_recordsNo
retry_incompleteNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.3.6
    • addedInput schema / properties / retry_incomplete
      Added value: +{
      +  "default": 1,
      +  "title": "Retry Incomplete",
      +  "type": "integer"
      +}
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write), openWorldHint=true (unbounded/stateful), destructiveHint=false. The description complements these by disclosing that the tool saves files to disk (out_dir), automatically routes between REST/OAI, performs dual-axis union searches on REST path, and may produce multiple sweeps with retry_incomplete. It also warns about truncated results (truncated=true) and how to interpret meta fields. The only minor gap is that it doesn't explicitly state file write permissions or overwrite behavior.

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

Conciseness3/5

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

The description is quite long, with dense text covering multiple scenarios. While it packs valuable information, it lacks clear section breaks or bullet points for readability. Key warnings are fronted with ⚠️, which helps, but the overall structure is a single block of Korean text that could be better organized for an AI agent to parse quickly.

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 high complexity (13 params, no output schema, multimodal routing), the description does a commendable job of covering core behaviors: REST vs OAI selection, dual-axis queries, retry logic, file output, date formats, and truncated data warnings. It is functionally complete for an experienced user, though it could benefit from an explicit listing of output file format or return value shape (since no output schema exists).

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?

Schema description coverage is 0%, so the description must carry full weight. The description explains many parameters implicitly: terms, title, retry_incomplete, out_dir, date_from/until, year_from/to, contains, max_records, set_spec. It clarifies that dates are YYYY-MM-DD and years are integers. However, it does not explain formats, name, or provides a formal parameter-by-parameter mapping. But given the complexity (13 params), the description does a good job making sense of the core parameters through contextual examples.

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 precisely states that the tool collects (saves) articles from KCI by automatically choosing between REST (with key) or OAI (without key) based on the presence of authentication key and the nature of the request. It distinguishes itself from sibling tools like kci_search (which likely only searches), kci_detail (single article details), and kci_harvest (which may be a different collection method) by describing its dual-mode routing logic and file-saving behavior.

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 description gives clear when-to-use guidelines by outlining the decision logic: use REST if terms/title are present and auth key exists, use OAI otherwise. It also warns about the behavior of retry_incomplete and when to set it to 0 to save cost. However, it does not explicitly compare against each sibling tool (e.g., when to use kci_harvest instead), and it lacks an explicit 'do not use if' clause.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rubatoyd/KCI_openAPI'

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