Skip to content

rubato103/KCI_openAPI

Repository files navigation

kci-openapi-mcp

한국연구재단(NRF) KCI(Korea Citation Index) 문헌·인용지수 검색·수집 MCP 서버 + CLI. REST Open API(키워드 검색)와 OAI-PMH(무인증 대량 수확)를 혼용한다. 자매 프로젝트 scienceon-mcp(KISTI ScienceON)와 동일 아키텍처.

무엇을 하나

  • 논문 검색·상세 (서지 · 국문/영문 초록 · 키워드 · 저자/소속)
  • OAI-PMH 대량 수확 (인증키 불필요 — 세트+날짜범위)
  • 참고문헌 원형 수집 · 저널 인용지수/등재이력 (REST 전용)
  • 대량 수집 → xlsx / csv / json / sqlite

두 인터페이스

REST Open API OAI-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 라이브 검증 완료 · pytest 24 + MCP 프로토콜 스모크 · 도구 annotations
  • 공식 MCP 레지스트리 발행됨: io.github.rubato103/kci-openapi-mcp (registry.modelcontextprotocol.io 검색 가능)
  • ✅ Claude Desktop 자체완결 .mcpb(win/mac/linux, Python·uv 불필요) + Claude Code .mcp.json

MCP 클라이언트에 등록

Claude Code

프로젝트 루트의 .mcp.json 이 자동 인식된다(키는 환경변수로 주입):

export KCI_API_KEY=<발급키>   # 선택 — 없으면 OAI 무인증 도구만 동작
# 또는 어디서나:
claude mcp add kci --env KCI_API_KEY=$KCI_API_KEY -- uvx --from git+https://github.com/rubato103/KCI_openAPI kci-mcp

Claude Desktop

(권장) 자체완결 .mcpb — Python·uv 불필요, 더블클릭 설치: 릴리스에서 OS에 맞는 파일 다운로드 → 더블클릭(또는 Settings → Extensions → Install) → KCI_API_KEY 입력(선택).

  • Windows: kci-openapi-mcp-win-x64.mcpb / macOS: …-macos-arm64.mcpb / Linux: …-linux-x64.mcpb

(경량) kci-openapi-mcp.mcpb — 크기 작지만 실행에 uv 필요(uvx --from git+…).

(수동 config) %APPDATA%/Claude/claude_desktop_config.json:

{ "mcpServers": { "kci": {
  "command": "uvx",
  "args": ["--from", "git+https://github.com/rubato103/KCI_openAPI", "kci-mcp"],
  "env": { "KCI_API_KEY": "<발급키 또는 비움>", "KCI_OS_TRUST": "1" }
} } }

uvx (저장소에서 직접 실행)

uvx --from git+https://github.com/rubato103/KCI_openAPI kci-mcp   # MCP 서버(stdio)

PyPI에는 게시하지 않음 — 레지스트리 배포는 .mcpb(GitHub Release) 방식.

CLI (로컬 개발)

uv sync                    # venv는 UV_PROJECT_ENVIRONMENT 로 클라우드 폴더 밖 권장
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

MCP 도구 (7종)

kci_status · kci_search · kci_detail · kci_references · kci_journal_citation · kci_harvest · kci_collect kci_collect 은 요청 성격·키 유무로 REST↔OAI 자동 선택.

자격증명 / 네트워크

  • KCI_API_KEY (open.kci.go.kr 발급) → .env(gitignore) 또는 OS 환경변수. 커밋·로그 금지. OAI는 키 불필요.
  • 교육망/사내망 SSL 인터셉션truststore로 OS 신뢰저장소를 사용해 통과(검증 유지). KCI_OS_TRUST=0로 비활성.

라이선스

MIT

About

KCI(Korea Citation Index) REST Open API + OAI-PMH 혼용 MCP 서버·CLI

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages