Academic MCP
한국·일본 학술 데이터베이스를 AI 도구에서 검색할 수 있게 해주는 MCP(Model Context Protocol) 서버입니다.
Claude Desktop, Cursor, Windsurf 등 MCP를 지원하는 AI 도구에서 사용할 수 있습니다.
지원 데이터베이스
| Provider | 국가 | 콘텐츠 | API 키 |
|---|---|---|---|
| KCI | 🇰🇷 | 한국학술지인용색인 (학술논문) | ❌ 불필요 |
| OAK | 🇰🇷 | 오픈액세스코리아 (OA 논문) | ❌ 불필요 |
| KOSTMA | 🇰🇷 | 한국학자료센터 (고문헌) | ❌ 불필요 |
| LOSI | 🇰🇷 | 국회도서관 입법정보 | ✅ 필요 |
| HGIS | 🇰🇷 | 국사편찬위원회 역사지리정보 | ✅ 필요 |
| NL | 🇰🇷 | 국립중앙도서관 | ✅ 필요 |
| CiNii | 🇯🇵 | 일본 학술논문 | ✅ 필요 |
| KoreanTK | 🇰🇷 | 지식재산 용어사전 | ✅ 필요 |
| NRICH | 🇰🇷 | 국립문화유산연구원 (일제강점기 문헌) | ❌ 불필요 |
| Eyis | 🇰🇷 | 여성사전시관 인물연구 | ✅ 필요 |
Note: API 키가 필요한 Provider는 각 기관에서 개별 발급받아야 합니다. 아래 API 키 발급 섹션을 참고하세요.
빠른 시작
1. 설치
git clone https://github.com/your-username/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
API 키 발급
| Provider | 발급처 | 비고 |
|---|---|---|
| LOSI | 국회도서관 입법정보 | 회원가입 후 신청 |
| HGIS | 국사편찬위원회 HGIS | 역사지리정보 |
| NL | 국립중앙도서관 | 공공데이터포털에서도 신청 가능 |
| CiNii | CiNii API 등록 | 일본 NII 계정 필요 |
| 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 학술 데이터베이스