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 학술 데이터베이스