Skip to main content
Glama
rubatoyd

kci-openapi-mcp

by rubatoyd

kci_search

Read-only

Search Korean Citation Index papers by title, filtering by date, author, institution, and more. Retrieve up to 100 results sorted by title, author, or publication year.

Instructions

[REST] 논문 검색 — title 필수 + 선택 필터. 인증키 필요.

date_from/date_to: 발행연월 YYYYMM. rows: 반환 건수(최대 100). institution: 발행기관명 필터. sort_by: title|author|pubiYr, sort_dir: asc|desc. (정렬은 페이징 상한에 걸렸을 때 sort_dir 를 뒤집어 반대쪽을 추가 수집하는 데도 쓴다.) 반환값의 total 은 KCI 가 보고한 전체 건수이고, truncated=true 면 rows 상한에 잘린 것이다.

⚠️ articleSearch 응답에는 저자 키워드·ISSN·UCI 가 아예 없다(원본 XML 에 필드 부재). keyword= 로 검색은 되지만 결과에는 실리지 않는 비대칭이므로, 결과의 빈 keywords 를 '키워드 없는 논문'으로 오독하면 안 된다. 키워드·ISSN 이 필요하면 kci_detail 로 건별 보강할 것. 인증키가 없으면 kci_harvest(OAI 무인증) 사용을 안내한다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doiNo
rowsNo
titleYes
authorNo
date_toNo
journalNo
keywordNo
sort_byNo
abstractNo
sort_dirNo
date_fromNo
institutionNo

Schema Changelog

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

  1. Changed3 schema fields changedv0.3.6
    • addedInput schema / properties / institution
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Institution"
      +}
    • addedInput schema / properties / sort_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Sort By"
      +}
    • addedInput schema / properties / sort_dir
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Sort Dir"
      +}
  2. First observedv0.1.0

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 (safe read) and openWorldHint=true (may not be exhaustive). The description adds substantial behavioral context: authentication requirement, the truncated flag meaning, and the critical warning that keyword search may not include keywords in results. The description is open about field absence, which goes beyond annotations. Minor deduction: does not explicitly state it is a REST-based tool beyond the tag, but 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.

Conciseness4/5

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

The description is well-structured with a first line giving the core purpose, then parameter details, and finally a warning section and alternative. The warning about missing fields is front-loaded after the parameters. It is slightly long but every sentence adds value. Could be marginally more concise by combining some sentences, but overall efficient.

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 12 parameters, no output schema, and complex sibling tools, the description covers the essential usage: required auth, parameter formats, behavior for pagination and truncation, and field limitations compared to kci_detail. It lacks an explicit mention of the response structure beyond total/truncated, but since the tool is a search with a likely list response, the absence of output schema is partially mitigated. A more complete description might list other response fields (e.g., title, author, journal), but not required.

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?

Despite 0% schema description coverage (the schema has no descriptions), the narrative description explains the meaning of date_from/date_to (YYYYMM format), rows (max 100), institution filter, sort_by/sort_dir values, and the behavioral note about using sort_dir for pagination. It also explains the total and truncated fields. This is strong compensation for the missing schema descriptions. One minor gap: 'author' and 'journal' are listed in schema but not explained in text, though their names are self-describing.

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 begins with '[REST] 논문 검색 — title 필수 + 선택 필터', which clearly states the tool searches for KCI papers, identifies the required parameter (title), and notes optional filters. It distinguishes itself from siblings like kci_detail (used for per-item enrichment) and kci_harvest (for unauthenticated access), so purpose is very clear.

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

Usage Guidelines5/5

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

The description explicitly says '인증키 필요' (API key required) and directs users to kci_harvest (OAI without auth) when no key is available. It explains the sorting strategy for pagination and warns about the absence of certain fields in articleSearch. These provide both use-case guidance and alternatives.

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