xinyousuozhi

Academic MCP

Community xinyousuozhi
Updated

academic-mcp

Academic MCP

한국·일본 학술 데이터베이스를 AI 도구에서 검색할 수 있게 해주는 MCP(Model Context Protocol) 서버입니다.

Claude Desktop, Cursor, Windsurf 등 MCP를 지원하는 AI 도구에서 사용할 수 있습니다.

지원 데이터베이스

📌 안내: Provider 목록은 향후 추가, 수정 또는 삭제될 수 있습니다.

1. 📚 논문/문헌 (Academic Papers)

학술 논문 및 연구 보고서를 검색합니다.

Provider 국가 콘텐츠 API 키 비고
KCI 🇰🇷 한국학술지인용색인 ❌ 불필요 OAI-PMH (최신자료 위주)
OAK 🇰🇷 오픈액세스코리아 ❌ 불필요 OAI-PMH (최신자료 위주)
LOSI 🇰🇷 국회도서관 입법정보 ✅ 필요
CiNii 🇯🇵 일본 학술논문 ✅ 필요

⚠️ KCI/OAK 검색 제한사항

KCI와 OAK는 별도의 검색 API 키 없이 OAI-PMH 프로토콜을 사용하여 데이터를 수집합니다. 프로토콜 특성상 최근 6개월 이내의 데이터만 검색 범위에 포함되며, 과거 전체 논문에 대한 키워드 검색은 제한될 수 있습니다. (전체 검색을 위해서는 해당 기관의 정식 검색 API 키가 필요할 수 있으나, 현재 본 패키지는 무료 OAI-PMH만 지원합니다.)

2. 📜 고서류/역사 (Ancient Documents & History)

고문헌, 역사 자료, 지리 정보를 검색합니다.

Provider 국가 콘텐츠 API 키 비고
NL 🇰🇷 한국고문헌종합목록 ❌ 불필요 국립중앙도서관 (KORCIS)
KOSTMA 🇰🇷 한국학자료센터 ❌ 불필요 고서/고문서 원문
HGIS 🇰🇷 국사편찬위원회 역사지리 ✅ 필요 역사/지리 통합 정보
Gugak 🇰🇷 국립국악원 학술연구-고서 ✅ 필요 고서/고악보

3. 📖 사전/기타 (Dictionary & Others)

특수 목적의 사전 및 인물 정보를 검색합니다.

Provider 국가 콘텐츠 API 키 비고
KoreanTK 🇰🇷 지식재산 용어사전 ✅ 필요 특허청/공공데이터포털
Eyis 🇰🇷 여성사전시관 인물연구 ✅ 필요 여성가족부/공공데이터포털
NRICH 🇰🇷 한국고고학사전 ❌ 불필요 국립문화유산연구원
Tripitaka 🇰🇷 고려대장경지식베이스 ✅ 필요 고려대장경연구소
Folkency 🇰🇷 한국민속대백과사전 ✅ 필요 국립민속박물관
Stdict 🇰🇷 표준국어대사전 ✅ 필요 국립국어원

Note: API 키가 필요한 Provider는 각 기관에서 개별 발급받아야 합니다. 아래 API 키 발급 섹션을 참고하세요.

빠른 시작

1. 설치

git clone https://github.com/xinsyousuozhi/academic-mcp.git
cd academic-mcp
uv sync

2. 설정

cp .env.example .env
# 필요한 API 키 입력 (선택사항)
# KCI, OAK, KOSTMA는 키 없이도 사용 가능

3. Claude Desktop 설정

claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "academic-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/academic-mcp",
        "run",
        "academic-mcp"
      ]
    }
  }
}

설정 파일 위치:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

4. 재시작

Claude Desktop을 완전히 종료 후 다시 시작하면 사용 가능합니다.

환경 변수

.env 파일에서 설정:

# 활성화할 Provider (쉼표 구분)
# 키 없이 사용 가능: kci, oak, kostma
ENABLED_PROVIDERS=kci,oak,kostma

# API 키가 필요한 Provider 추가 시
# ENABLED_PROVIDERS=kci,oak,kostma,losi,cinii

# 개별 API 키 (필요한 것만 입력)
LOSI_API_KEY=your_losi_key
HISTORY_API_KEY=your_history_key
DATA_GO_KR_API_KEY=your_data_go_kr_key
CINII_API_KEY=your_cinii_key
GUGAK_API_KEY=your_gugak_key
TRIPITAKA_API_KEY=your_tripitaka_key
FOLKENCY_API_KEY=your_folkency_key
STDICT_API_KEY=your_stdict_key

API 키 발급

Provider 발급처 비고
LOSI 국회도서관 입법정보 회원가입 후 신청
HGIS 국사편찬위원회 HGIS 역사지리정보
NL 국립중앙도서관 KORCIS 사용 시 키 불필요
CiNii CiNii API 등록 일본 NII 계정 필요
Gugak 문화체육관광부 공공데이터광장 "학술연구-고서" 신청
Tripitaka 문화체육관광부 공공데이터광장 "고려대장경지식베이스" 신청
Folkency 문화체육관광부 공공데이터광장 "한국민속대백과사전" 신청
Stdict 표준국어대사전 개발 지원 회원가입 후 API 키 신청
KoreanTK 공공데이터포털 "지식재산 용어사전" 신청
Eyis 공공데이터포털 "여성사전시관 인물연구" 신청

커스터마이징

이 프로젝트는 자유롭게 수정해서 사용할 수 있습니다.

Provider 추가/제거

.env 파일의 ENABLED_PROVIDERS에서 원하는 것만 활성화:

# 예: KCI와 CiNii만 사용
ENABLED_PROVIDERS=kci,cinii

새 Provider 작성

src/academic_mcp/providers/ 폴더에 새 Provider 추가:

from academic_mcp.providers.base import BaseProvider

class MyProvider(BaseProvider):
    name = "my_provider"
    display_name = "My Custom Provider"

    async def search(self, query):
        # 구현
        pass

프로젝트 구조

academic-mcp/
├── src/academic_mcp/
│   ├── __main__.py      # 진입점
│   ├── server.py        # MCP 서버 설정
│   ├── config.py        # 환경 변수 설정
│   ├── models.py        # 데이터 모델
│   ├── tools.py         # MCP 도구 정의
│   └── providers/       # 데이터베이스별 Provider
│       ├── base.py
│       ├── kci.py       # KCI (OAI-PMH)
│       ├── oak.py       # OAK (OAI-PMH)
│       ├── kostma.py
│       ├── losi.py
│       ├── hgis.py
│       ├── nl.py
│       └── cinii.py
├── .env.example
└── pyproject.toml

다른 MCP 클라이언트

Claude Desktop 외에도 MCP를 지원하는 도구에서 사용 가능합니다:

Cursor:

// ~/.cursor/mcp.json
{
  "mcpServers": {
    "academic-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/academic-mcp", "run", "academic-mcp"]
    }
  }
}

라이선스

MIT License

관련 프로젝트

  • CNKI MCP - 중국 CNKI 학술 데이터베이스

MCP Server · Populars

MCP Server · New