Back to Browse

KCI OpenAPI MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

KCI (Korea Citation Index) literature & citation search via REST Open API + OAI-PMH

About

KCI (Korea Citation Index) literature & citation search via REST Open API + OAI-PMH

Security Report

4.2
Use Caution4.2High Risk

This is a well-structured KCI academic data harvesting MCP server with appropriate authentication controls and reasonable permissions for its purpose. The code demonstrates solid security practices: API keys are properly managed through environment variables with validation, sensitive data is not logged, and network calls include proper error handling without credential exposure. Minor code quality issues around broad exception handling and SSL/TLS configuration do not significantly impact security. Supply chain analysis found 9 known vulnerabilities in dependencies (0 critical, 5 high severity).

4 files analyzed ยท 13 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

What You'll Need

Set these up before or after installing:

KCI REST Open API key (issued at open.kci.go.kr). Not needed for OAI-PMH harvesting.Required

Environment variable: KCI_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-rubatoyd-kci-openapi-mcp": {
      "env": {
        "KCI_API_KEY": "your-kci-api-key-here"
      },
      "args": [
        "kci-openapi-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

kci-openapi-mcp

CI Release Downloads

๐Ÿ“ˆ ์‚ฌ์šฉ๋Ÿ‰ โ€” ์ตœ๊ทผ 14์ผ ์กฐํšŒ 26ํšŒ(๊ณ ์œ  12) ยท ํด๋ก  216ํšŒ(๊ณ ์œ  102) ยท ๋ฆด๋ฆฌ์Šค ์ž์‚ฐ ๋ˆ„์  ๋‹ค์šด๋กœ๋“œ 250

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

2026-08-31 ์ž๋™ ๊ฐฑ์‹  ยท ์ „์ฒด ์ด๋ ฅ์€ docs/usage.csv. GitHub ํŠธ๋ž˜ํ”ฝ ํ†ต๊ณ„๋Š” 14์ผ ์ฐฝ๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด ์ €์žฅ์†Œ๊ฐ€ ๋งค์ผ ์ฐ์–ด ๋ˆ„์ ํ•œ๋‹ค.

ํ•œ๊ตญ์—ฐ๊ตฌ์žฌ๋‹จ(NRF) KCI(Korea Citation Index) ๋ฌธํ—Œยท์ธ์šฉ์ง€์ˆ˜ ๊ฒ€์ƒ‰ยท์ˆ˜์ง‘ MCP ์„œ๋ฒ„ + CLI. REST Open API(ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰)์™€ OAI-PMH(๋ฌด์ธ์ฆ ๋Œ€๋Ÿ‰ ์ˆ˜ํ™•)๋ฅผ ํ•จ๊ป˜ ๋‹ค๋ฃฌ๋‹ค.

๊ธฐ๋Šฅ

  • ๋…ผ๋ฌธ ๊ฒ€์ƒ‰ยท์ƒ์„ธ โ€” ์„œ์ง€ ยท ๊ตญ๋ฌธ/์˜๋ฌธ ์ดˆ๋ก ยท ํ‚ค์›Œ๋“œ ยท ์ €์ž/์†Œ์†
  • ์ฐธ๊ณ ๋ฌธํ—Œ ์ˆ˜์ง‘ โ€” ์›ํ˜• ํ…์ŠคํŠธ + ํ”ผ์ธ์šฉ ๋…ผ๋ฌธ์˜ KCI ID(arti_id) โ†’ ์ธ์šฉ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ
  • ์ €๋„ ์ธ์šฉ์ง€์ˆ˜ โ€” ์—ฐ๋„๋ณ„ IF ยท ๋“ฑ์žฌ์ด๋ ฅ
  • OAI-PMH ๋Œ€๋Ÿ‰ ์ˆ˜ํ™• โ€” ์ธ์ฆํ‚ค ์—†์ด ์„ธํŠธ + ๋‚ ์งœ๋ฒ”์œ„ ์ „์ˆ˜ ์ˆ˜์ง‘
  • ๋‚ด๋ณด๋‚ด๊ธฐ โ€” xlsx ยท csv ยท json ยท sqlite

๋‘ ์ธํ„ฐํŽ˜์ด์Šค

REST Open APIOAI-PMH
์—”๋“œํฌ์ธํŠธโ€ฆ/po/openapi/openApiSearch.kciโ€ฆ/oai/request
์ธ์ฆKCI_API_KEY ํ•„์š”๋ถˆํ•„์š”
์งˆ์˜ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰(title ํ•„์ˆ˜)์„ธํŠธ + ๋‚ ์งœ๋ฒ”์œ„ ์ˆ˜ํ™•
์ธ์šฉ์ง€์ˆ˜ยท์ฐธ๊ณ ๋ฌธํ—Œโœ…โŒ

๊ทœ๊ฒฉ: docs/KCI_API_GUIDE.md ยท docs/KCI_OAI_PMH_GUIDE.md ยท ์„ค๊ณ„: docs/ARCHITECTURE.md

์ธ์ฆํ‚ค ์—†์ด ๋ฐ”๋กœ ์จ๋ณด๊ธฐ

REST ๊ฒ€์ƒ‰๋งŒ ์ธ์ฆํ‚ค๊ฐ€ ํ•„์š”ํ•˜๊ณ , OAI-PMH ์ˆ˜ํ™•์€ ํ‚ค ์—†์ด ๋™์ž‘ํ•œ๋‹ค.

uvx --from git+https://github.com/rubatoyd/KCI_openAPI kci identify
uvx --from git+https://github.com/rubatoyd/KCI_openAPI kci harvest --set ARTI --from 2024-01-01 --until 2024-03-31 --contains ํ•™๋ถ€๋ชจ --max 200

MCP ๋กœ ๋ถ™์˜€๋‹ค๋ฉด kci_status โ†’ kci_harvest ์ˆœ์œผ๋กœ ๋ฐ”๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ํ‚ค๊ฐ€ ์—†์œผ๋ฉด REST ๋„๊ตฌ๋Š” ์˜ค๋ฅ˜ ๋Œ€์‹  OAI ๋Œ€์•ˆ์„ ์•ˆ๋‚ดํ•œ๋‹ค.

์ธ์ฆํ‚ค ๋ฐœ๊ธ‰

REST ๋„๊ตฌ(kci_search ยท kci_detail ยท kci_references ยท kci_journal_citation)์—๋งŒ ํ•„์š”ํ•˜๋‹ค.

  1. open.kci.go.kr ์—์„œ Open API ์ด์šฉ ์‹ ์ฒญ
  2. ๋ฐœ๊ธ‰๋œ ์ธ์ฆํ‚ค ๋ฌธ์ž์—ด 1๊ฐœ๋ฅผ ๋ฐ›๋Š”๋‹ค
  3. ์•„๋ž˜ ์ค‘ ํ•œ ๊ณณ์— ๋„ฃ๋Š”๋‹ค โ€” ์ฝ”๋“œ๋‚˜ ์ปค๋ฐ‹์—๋Š” ๋„ฃ์ง€ ์•Š๋Š”๋‹ค
์‚ฌ์šฉ ํ™˜๊ฒฝ๋„ฃ๋Š” ๊ณณ
Claude Code.claude/settings.local.json ์˜ env (gitignore ๋Œ€์ƒ)
Claude Desktopclaude_desktop_config.json ์˜ env โ€” ํ‰๋ฌธ ์ธ๋ผ์ธ(${VAR} ํ™•์žฅ ์•ˆ ๋จ)
.mcpb ์„ค์น˜์„ค์น˜ ์ฐฝ์˜ ์ž…๋ ฅ๋ž€
CLI / ๋กœ์ปฌ ๊ฐœ๋ฐœ.env(gitignore) ๋˜๋Š” OS ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ๋ณ€์ˆ˜

AES ์•”ํ˜ธํ™”ยทํ† ํฐ ๋ฐœ๊ธ‰ยท๊ณต์ธ IP ๋“ฑ๋ก์€ ๋ถˆํ•„์š”ํ•˜๋‹ค. ํ‰๋ฌธ key ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•˜๋‚˜๋กœ ํ˜ธ์ถœํ•œ๋‹ค.

์„ค์น˜

Claude Desktop

์ž์ฒด์™„๊ฒฐ .mcpb(๊ถŒ์žฅ) โ€” Pythonยทuv ๋ถˆํ•„์š”. ๋ฆด๋ฆฌ์Šค์—์„œ OS์— ๋งž๋Š” ํŒŒ์ผ์„ ๋ฐ›์•„ ๋”๋ธ”ํด๋ฆญ(๋˜๋Š” Settings โ†’ Extensions โ†’ Install) โ†’ KCI_API_KEY ์ž…๋ ฅ(์„ ํƒ).

์ž์‚ฐํŠน์ง•
kci-openapi-mcp-win-x64.mcpb / โ€ฆ-macos-arm64.mcpb / โ€ฆ-linux-x64.mcpb์ž์ฒด์™„๊ฒฐ โ€” ์‚ฌ์ „ ์„ค์น˜๋ฌผ ์—†์Œ
kci-openapi-mcp.mcpb๊ฒฝ๋Ÿ‰. ์‹คํ–‰์— uv ํ•„์š”

์ˆ˜๋™ config โ€” %APPDATA%/Claude/claude_desktop_config.json:

{ "mcpServers": { "kci": {
  "command": "uvx",
  "args": ["--from", "git+https://github.com/rubatoyd/KCI_openAPI", "kci-mcp"],
  "env": { "KCI_API_KEY": "<๋ฐœ๊ธ‰ํ‚ค ๋˜๋Š” ๋น„์›€>", "KCI_OS_TRUST": "1" }
} } }

Claude Code

claude mcp add kci --env KCI_API_KEY=$KCI_API_KEY -- uvx --from git+https://github.com/rubatoyd/KCI_openAPI kci-mcp

ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .mcp.json ๋„ ์ž๋™ ์ธ์‹๋œ๋‹ค.

๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ

ํ‘œ์ค€ stdio MCP ์„œ๋ฒ„์ด๋ฏ€๋กœ MCP ๋ฅผ ์ง€์›ํ•˜๋Š” ์—์ด์ „ํŠธ๋ฉด ๊ทธ๋Œ€๋กœ ๋ถ™๋Š”๋‹ค โ€” Cursor ยท Windsurf ยท Cline ยท Zed ยท VS Code Copilot(agent mode) ยท OpenAI Agents SDK ยท ์ž์ฒด ํด๋ผ์ด์–ธํŠธ ๋“ฑ. ์œ„ command/args/env 3์š”์†Œ๋ฅผ ๊ฐ ํด๋ผ์ด์–ธํŠธ ์„ค์ •์— ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค.

from mcp import StdioServerParameters

params = StdioServerParameters(
    command="uvx",
    args=["--from", "git+https://github.com/rubatoyd/KCI_openAPI", "kci-mcp"],
    env={"KCI_API_KEY": "..."},   # ๋น„์šฐ๋ฉด OAI ๋ฌด์ธ์ฆ ๋„๊ตฌ๋งŒ
)

์ „์†ก ๋ฐฉ์‹

kci-mcp                                # stdio (๊ธฐ๋ณธ)
kci-mcp --transport streamable-http    # http://127.0.0.1:8000/mcp
kci-mcp --transport sse --port 9000    # http://127.0.0.1:9000/sse

ํ™˜๊ฒฝ๋ณ€์ˆ˜: KCI_MCP_TRANSPORT ยท KCI_MCP_HOST ยท KCI_MCP_PORT.

MCP ๋„๊ตฌ

๋„๊ตฌํ•˜๋Š” ์ผ
kci_status์—ฐ๊ฒฐ ์ ๊ฒ€ โ€” OAI Identify + ์ธ์ฆํ‚ค ๋ณด์œ  ์—ฌ๋ถ€
kci_search๋…ผ๋ฌธ ๊ฒ€์ƒ‰ โ€” title ํ•„์ˆ˜ + author/journal/keyword/abstract/doi/๋ฐœํ–‰์—ฐ์›”/institution ํ•„ํ„ฐ, ์ •๋ ฌ
kci_detailControl Number(ARTโ€ฆ)๋กœ ์ƒ์„ธ โ€” ํ‚ค์›Œ๋“œยทISSNยท์ €์ž์†Œ์†ยท์ฐธ๊ณ ๋ฌธํ—Œ์˜ ์œ ์ผํ•œ ์ถœ์ฒ˜
kci_references์ œ๋ชฉ ๊ฒ€์ƒ‰์–ด์— ๋งค์นญ๋œ ๋…ผ๋ฌธ๋“ค์˜ ์ฐธ๊ณ ๋ฌธํ—Œ ์›ํ˜•
kci_journal_citation์ €๋„ ์ธ์šฉ์ง€์ˆ˜ โ€” ์—ฐ๋„ ๋ชฉ๋ก / journal_id ์ƒ์„ธ(๋“ฑ์žฌ์ด๋ ฅยท์—ฐ๋„๋ณ„ IF)
kci_harvestOAI-PMH ๋ฌด์ธ์ฆ ๋Œ€๋Ÿ‰ ์ˆ˜ํ™• โ€” ์„ธํŠธ + ๋‚ ์งœ๋ฒ”์œ„, contains ๋กœ์ปฌ ํ•„ํ„ฐ
kci_collect๋ผ์šฐํ„ฐ โ€” ํ‚ค ์œ ๋ฌดยท์š”์ฒญ ์„ฑ๊ฒฉ์œผ๋กœ RESTโ†”OAI ์ž๋™ ์„ ํƒ ํ›„ ํŒŒ์ผ ์ €์žฅ

์•Œ์•„๋‘˜ ์ œํ•œ

articleSearch ๋Š” ํ‚ค์›Œ๋“œยทISSNยทUCI ๋ฅผ ์‘๋‹ต์— ์‹ฃ์ง€ ์•Š๋Š”๋‹ค. keyword= ๋กœ ๊ฒ€์ƒ‰์€ ๋˜์ง€๋งŒ ๊ฒฐ๊ณผ์—๋Š” ์—†๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ ๋นˆ keywords ๋Š” 'ํ‚ค์›Œ๋“œ ์—†๋Š” ๋…ผ๋ฌธ'์ด ์•„๋‹ˆ๋‹ค โ€” ํ•„์š”ํ•˜๋ฉด kci_detail ๋กœ ๊ฑด๋ณ„ ๋ณด๊ฐ•ํ•œ๋‹ค.

kci_collect ์˜ REST ๊ฒฝ๋กœ๋Š” ์ œ๋ชฉ์ถ• โˆช ํ‚ค์›Œ๋“œ์ถ•์ด๋‹ค. ๊ฐ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋‘ ์ถ•์œผ๋กœ ์กฐํšŒํ•ด ํ•ฉ์ง‘ํ•ฉ์„ ๋งŒ๋“ ๋‹ค. ๊ฒฐ๊ณผ๋Š” '์ œ๋ชฉ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ'๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ฝ”ํผ์Šค ๊ฒฝ๊ณ„๋ฅผ ๊ธฐ์ˆ ํ•  ๋•Œ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค. meta.axes ์— ์ถ•๋ณ„ total ์ด ๋‹ด๊ธด๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ์˜ arti_id ๋Š” KCI ๋“ฑ์žฌ๋ถ„์—๋งŒ ๋ถ™๋Š”๋‹ค. ๋‹จํ–‰๋ณธยท๋ณด๊ณ ์„œยทํ•ด์™ธ๋ฌธํ—Œ์€ ๋นˆ ๋ฌธ์ž์—ด์ด๋‹ค. ์ธ์šฉ ๋„คํŠธ์›Œํฌ๋Š” ์ด ID ๊ฐ€ ์žˆ๋Š” ํ•ญ๋ชฉ์œผ๋กœ๋งŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค(references_linked_count ๋กœ ํ™•์ธ).

referenceSearch ๋Š” ํŽ˜์ด์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์–ด 1ํšŒ 100๊ฑด์ด ์ƒํ•œ์ด๋‹ค. ๋ถ€์กฑํ•œ ์ด์œ ๊ฐ€ ๋‘˜์ด๊ณ  ์ฒ˜๋ฐฉ์ด ์ •๋ฐ˜๋Œ€์ด๋ฏ€๋กœ ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

์ƒํ™ฉ์ฒ˜๋ฐฉ
total > 100 โ€” API ๊ฐ€ ๋” ์ค„ ์ˆ˜ ์—†๋‹คsort_dir ๋ฅผ ๋’ค์ง‘์–ด(ascโ†”desc) ๋ฐ˜๋Œ€์ชฝ์„ ๋ฐ›์•„ ํ•ฉ์ง‘ํ•ฉ
total โ‰ค 100 ์ธ๋ฐ rows ๋กœ ์ž˜๋ ธ๋‹คrows ๋ฅผ total ์ด์ƒ์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค (์ •๋ ฌ ๋ฐ˜์ „์€ ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๋งŒ ๋‹ค์‹œ ์˜จ๋‹ค)

KCI ๊ฐ€ ๋ณด๊ณ ํ•˜๋Š” total ์€ ์‹ค์ œ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฑด์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ์ƒํ™ฉ์„ ๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

ํ”Œ๋ž˜๊ทธ๋œป๋Œ€์ฒ˜
truncatedmax_records ์ƒํ•œ์— ๊ฑธ๋ ธ๋‹ค์ƒํ•œ์„ ์˜ฌ๋ ค ์žฌ์ˆ˜์ง‘ํ•˜๋ฉด ๋Š˜์–ด๋‚œ๋‹ค
total_mismatch๋๊นŒ์ง€ ํŽ˜์ด์ง•ํ–ˆ๋Š”๋ฐ total ์— ๋ชป ๋ฏธ์ณค๋‹ค์ƒํ•œ์„ ์˜ฌ๋ ค๋„ ๋Š˜์ง€ ์•Š๋Š”๋‹ค. ํšŒ์ˆ˜๋Ÿ‰์„ ํ™•์ • ์ˆ˜์น˜๋กœ ์“ด๋‹ค

๋‹ค์ค‘ ํŽ˜์ด์ง€ ์งˆ์˜๋Š” ํ˜ธ์ถœ๋งˆ๋‹ค ๊ฒฐ๊ณผ๊ฐ€ ๋ฏธ์„ธํ•˜๊ฒŒ ๋‹ฌ๋ผ์ง„๋‹ค. ๋‹จ์ผ ํŽ˜์ด์ง€ ์งˆ์˜๋Š” ์•ˆ์ •์ ์ด๋‹ค. total ์— ๋ชป ๋ฏธ์น˜๊ณ  ์ƒํ•œ๋„ ์•„๋‹ˆ๋ฉด ํ•œ ๋ฒˆ ๋” ํ›‘์–ด ํ•ฉ์ง‘ํ•ฉ์„ ์ทจํ•œ๋‹ค(meta.sweeps ๊ฐ€ 1๋ณด๋‹ค ํฌ๋ฉด ๋ณด์ •๋œ ๊ฒƒ, ์ˆ˜์ง‘ ์ „์ฒด๋Š” meta.sweeps_total).

๋ณด์ •์ด ๊ฑธ๋ฆฐ ์ถ•์€ ์ „์ฒด๋ฅผ ์žฌํŽ˜์ด์ง•ํ•˜๋ฏ€๋กœ ๊ทธ๋งŒํผ ์š”์ฒญ์ด ๋Š˜์–ด๋‚œ๋‹ค. ๋Œ€๊ทœ๋ชจ ์ˆ˜์ง‘์—์„œ ๋ถ€๋‹ด๋˜๋ฉด kci_collect ์˜ retry_incomplete=0 ์œผ๋กœ ๋ˆ๋‹ค โ€” ๋Œ€์‹  ๊ฒฐ์†์ด ๋‚จ๊ณ  total_mismatch ๋กœ๋งŒ ํ‘œ์‹œ๋œ๋‹ค.

์ถœ๋ ฅ ํŒŒ์ผ๋ช…์€ ์ •๊ทœํ™”๋œ๋‹ค. name ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒ€์ƒ‰์–ด๊ฐ€ ๊ทธ๋Œ€๋กœ ํŒŒ์ผ๋ช…์ด ๋˜๋ฏ€๋กœ, ๊ฒฝ๋กœ ๊ตฌ๋ถ„์žยท..ยท์œˆ๋„ ๊ธˆ์ง€๋ฌธ์ž๋Š” ์ œ๊ฑฐ๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ out_dir ์•ˆ์—๋งŒ ์ €์žฅ๋œ๋‹ค. ํ•œ๊ธ€ ํŒŒ์ผ๋ช…์€ ๊ทธ๋Œ€๋กœ ๋ณด์กด๋œ๋‹ค.

์ •๋ ฌ ์ธ์ž๋Š” ์ „์†ก ์ „์— ๊ฒ€์ฆํ•œ๋‹ค. sort_by ๋Š” title/author/pubiYr, sort_dir ์€ asc/desc. ํ—ˆ์šฉ๊ฐ’ ๋ฐ–์ด๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋Œ๋ ค์ค€๋‹ค.

Claude ์•ฑ ์•ˆ์—์„œ ๊ฒ€์ƒ‰ํ•ด ์„ค์น˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ณต์‹ MCP ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋“ฑ์žฌ์™€ Claude Desktop ์ธ์•ฑ ์ปค๋„ฅํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋ณ„๊ฐœ์ด๊ณ  ์ž๋™ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š”๋‹ค. ์œ„ ์„ค์น˜ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์“ด๋‹ค.

๋„๊ตฌ ์„ค๋ช…์ด ํ•œ๊ตญ์–ด๋‹ค. ํ•œ๊ตญ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋ธ์ด์–ด์•ผ ๋„๊ตฌ ์„ ํƒ์ด ์ •ํ™•ํ•˜๋‹ค.

mcp SDK ๋Š” 1.x ๋กœ ๊ณ ์ •๋œ๋‹ค(mcp>=1.2.0,<2). 2.0 ์—์„œ mcp.server.fastmcp ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์ƒํ•œ์ด ์—†์œผ๋ฉด ๊ธฐ๋™์— ์‹คํŒจํ•œ๋‹ค.

CLI

kci identify                                  # OAI ๋ฌด์ธ์ฆ โ€” ํ‚ค ์—†์ด ์ฆ‰์‹œ
kci harvest --set ARTI --from 2024-01-01 --until 2024-12-31 --contains ํ•™๋ถ€๋ชจ --max 500
kci search --title ๊ฒฝ๊ณ„์„ ์ง€๋Šฅ --rows 20        # REST(์ธ์ฆํ‚ค ํ•„์š”)
kci collect --config config/borderline_slow.yaml

๋กœ์ปฌ ๊ฐœ๋ฐœ์€ uv sync. ํด๋ผ์šฐ๋“œ ๋™๊ธฐํ™” ํด๋”(OneDrive ๋“ฑ)๋ผ๋ฉด venv ๋ฅผ ํด๋” ๋ฐ–์— ๋‘๊ธฐ๋ฅผ ๊ถŒํ•œ๋‹ค (UV_PROJECT_ENVIRONMENT).

๋„คํŠธ์›Œํฌ

  • KCI ๋ฐฉํ™”๋ฒฝ์€ User-Agent ํ•„ํ„ฐ๋ฅผ ๊ฑด๋‹ค. curl ๊ธฐ๋ณธ UA ๋Š” ์ฐจ๋‹จ ์•ˆ๋‚ดํŽ˜์ด์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋ณธ ์„œ๋ฒ„๋Š” requests ๋กœ ํ˜ธ์ถœํ•˜๋ฏ€๋กœ ์ •์ƒ ๋™์ž‘ํ•œ๋‹ค.
  • ๊ต์œก๋งยท์‚ฌ๋‚ด๋ง SSL ์ธํ„ฐ์…‰์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” truststore ๋กœ OS ์‹ ๋ขฐ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ํ†ต๊ณผํ•œ๋‹ค (TLS ๊ฒ€์ฆ์„ ๋„์ง€ ์•Š๋Š”๋‹ค). ๋น„ํ™œ์„ฑ์€ KCI_OS_TRUST=0.
  • HTTP ์ „์†ก์—๋Š” ์ธ์ฆ์ด ์—†๋‹ค. ๊ธฐ๋ณธ ๋ฐ”์ธ๋“œ๋Š” ๋ฃจํ”„๋ฐฑ(127.0.0.1)์ด๋‹ค. --host 0.0.0.0 ์œผ๋กœ ์™ธ๋ถ€์— ์—ด๋ฉด ์ธ์ฆํ‚ค๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜๋ฏ€๋กœ ์‹ ๋ขฐ๋œ ๋ง์—์„œ๋งŒ ์“ด๋‹ค.

๋ผ์ด์„ ์Šค

MIT. ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•œ๊ตญ์—ฐ๊ตฌ์žฌ๋‹จ์˜ ๋น„๊ณต์‹ ํด๋ผ์ด์–ธํŠธ์ด๋ฉฐ ์ œํœด ๊ด€๊ณ„๊ฐ€ ์—†๋‹ค. KCI ๋ฐ์ดํ„ฐ ์ด์šฉ์€ KCI ์•ฝ๊ด€์„ ๋”ฐ๋ฅธ๋‹ค.

Reviews

No reviews yet

Be the first to review this server!