Skip to main content
Glama
xinyousuozhi

Academic MCP

by xinyousuozhi

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

🇰🇷

한국학자료센터

❌ 불필요

고서/고문서 원문

ITKC

🇰🇷

한국고전종합DB OpenAPI

❌ 불필요

한국고전번역원

HGIS

🇰🇷

국사편찬위원회 역사지리

✅ 필요

역사/지리 통합 정보

Gugak

🇰🇷

국립국악원 학술연구-고서

✅ 필요

고서/고악보

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

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

Provider

국가

콘텐츠

API 키

비고

KoreanTK

🇰🇷

지식재산 용어사전

✅ 필요

특허청/공공데이터포털

Eyis

🇰🇷

여성사전시관 인물연구

✅ 필요

여성가족부/공공데이터포털

NRICH

🇰🇷

한국고고학사전

❌ 불필요

국립문화유산연구원

Tripitaka

🇰🇷

고려대장경지식베이스

✅ 필요

고려대장경연구소

Folkency

🇰🇷

한국민속대백과사전

✅ 필요

국립민속박물관

Stdict

🇰🇷

표준국어대사전

✅ 필요

국립국어원

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

Related MCP server: Korean Law MCP Server

빠른 시작

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, itkc
ENABLED_PROVIDERS=kci,oak,kostma,itkc

# API 키가 필요한 Provider 추가 시
# ENABLED_PROVIDERS=kci,oak,kostma,itkc,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 학술 데이터베이스

Available Tools

3 tools
get_paper_detailC

논문/문헌의 상세 정보(초록, 키워드, 인용정보 등)를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes논문 ID
sourceYes출처 기관. 가능한 값: ['kci', 'losi']

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a retrieval operation ('조회합니다'), implying read-only behavior, but doesn't cover critical aspects like authentication needs, rate limits, error handling (e.g., invalid paper IDs), response format, or whether it's a real-time query. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose. It's front-loaded with the core action and resource, with no wasted words. However, it could be slightly more structured by explicitly separating the tool's function from the types of details retrieved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a retrieval tool with 2 required parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., JSON structure), error conditions, or behavioral constraints. For a tool that fetches detailed information, more context is needed to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('paper_id' and 'source') with descriptions and required status. The description doesn't add any parameter-specific details beyond what's in the schema, such as examples of paper IDs or how 'source' affects the data retrieved. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('조회합니다' - retrieves/looks up) and resource ('논문/문헌의 상세 정보' - detailed information of papers/documents), specifying what information is retrieved (abstract, keywords, citation info). It distinguishes from 'search' (which likely finds papers) and 'list_providers' (which likely lists sources), though the differentiation could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a paper ID), when not to use it (e.g., for searching papers), or how it relates to sibling tools like 'search' (which might return brief results) or 'list_providers' (which might list available sources).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_providersB

사용 가능한 학술 DB 목록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action ('retrieves a list') without mentioning any behavioral traits such as whether it's read-only, if it requires authentication, rate limits, or what the output format might be. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence in Korean that directly states the tool's purpose without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy to understand at a glance. Every word earns its place, contributing to the core meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain what the returned list contains (e.g., provider names, IDs, metadata), how it's structured, or any prerequisites. For a tool that might return complex data (academic databases), more context is needed to understand the output and usage implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline score of 4 is given as it handles the lack of parameters correctly without unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '사용 가능한 학술 DB 목록을 조회합니다' (Retrieves a list of available academic databases). It specifies the verb '조회합니다' (retrieves) and the resource '학술 DB 목록' (academic database list). However, it doesn't explicitly distinguish this tool from its siblings (get_paper_detail, search), which might have overlapping academic contexts, so it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention its siblings (get_paper_detail, search) or specify contexts where listing providers is preferred over searching or getting details. This lack of comparative usage information limits its effectiveness in tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: get_paper_detail retrieves detailed metadata for a specific paper, list_providers shows available academic databases, and search performs cross-database searches. There is no overlap in functionality that would cause misselection.

Naming Consistency5/5

All three tools follow a consistent verb_noun pattern (get_paper_detail, list_providers, search). While 'search' is a single verb without an explicit noun, it fits naturally as a search action in this context and maintains readability with the other tools.

Tool Count3/5

With only 3 tools, the set feels thin for an academic research server. While the tools cover basic operations (search, detail retrieval, provider listing), more comprehensive functionality like citation analysis, paper recommendations, or database-specific operations would enhance the scope. It's borderline but functional for minimal use.

Completeness3/5

The tool surface covers core search and retrieval workflows but has notable gaps. There is no way to save papers, manage collections, track citations over time, or access full-text content. Agents can work around this by using the provided tools, but advanced academic tasks will be limited.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time search and analysis of Korean laws, legal precedents, and administrative rules through the National Law Information Center Open API, allowing AI agents to access official legal information for contract review, compliance, and legal research.
    73
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, retrieve, and analyze South Korean legal documents including statutes, precedents, constitutional decisions, and administrative rulings via the Ministry of Government Legislation Open API. Provides 89 specialized tools with features like legal abbreviation auto-recognition, annex extraction, and complex research chain workflows.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables searching and retrieving full text and translations from the Korean Classics Database (ITKC), including collections such as the Annals of the Joseon Dynasty, Seungjeongwon Ilgi, Ilseongnok, and more.
    6

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xinyousuozhi/academic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server