KISTI-MCP Server - MCP server for KISTI OpenAPI (ScienceON, NTIS, DataON)
Project description
KISTI-MCP v0.3.12a
한국과학기술정보연구원(KISTI)가 서비스하는 다양한 플랫폼의 OpenAPI를 활용할 수 있는 MCP서버입니다. 현재 ScienceON, NTIS, DataON의 논문, 특허, 보고서, 국가R&D과제, 연구데이터 관련 API를 사용할 수 있습니다. Model Context Protocol 기반 사용하는 AI 모델과 KISTI가 제공하는 서비스 간 원활한 통합을 지원합니다.
기능
- ScienceON: 논문, 특허, R&D연구보고서 검색 및 상세검색, 특허 인용/피인용 관계 분석 등 총 7종 기능
- NTIS: 국가R&D 연구과제 검색 및 상세검색, 분류코드 추천 등 총 3종 기능
- DataON: 국가R&D 연구데이터 검색 및 메타데이터 상세 정보 조회 등 총 2종 기능
주요 기능
| # | 기능 | 설명 |
|---|---|---|
| 1 | 논문 검색 | ScienceON에서 키워드로 논문을 검색하고 제목, 저자, 초록, CN번호 제공 |
| 2 | 논문 상세정보 | CN번호로 특정 논문의 상세정보, DOI, 키워드, 관련논문 조회 |
| 3 | 특허 검색 | ScienceON에서 키워드로 특허를 검색하고 출원인, 출원일, CN번호 제공 |
| 4 | 특허 상세정보 | CN번호로 특정 특허의 상세정보, IPC분류, 특허상태 조회 |
| 5 | 특허 인용정보 | CN번호로 특허의 인용/피인용 관계 분석 |
| 6 | 보고서 검색 | ScienceON에서 키워드로 R&D 보고서를 검색하고 저자, 발행기관, CN번호 제공 |
| 7 | 보고서 상세정보 | CN번호로 특정 보고서의 상세정보, 인용논문/특허 조회 |
| 8 | 국가R&D 과제 검색 | NTIS에서 키워드로 국가R&D 과제를 검색하고 수행기관, 연구비, 과제번호 제공 |
| 9 | 과학기술 분류코드 추천 | 연구과제 초록으로 적합한 분류코드를 AI 기반 매칭점수와 함께 추천 |
| 10 | 과제 연관콘텐츠 추천 | 과제번호로 연관된 논문, 특허, 보고서, 관련과제 추천 |
| 11 | 연구데이터 검색 | DataON에서 키워드로 공개 연구데이터를 검색하고 제목, 작성자, svcId 제공 |
| 12 | 연구데이터 상세정보 | svcId로 특정 연구데이터의 메타데이터, 포맷, 권리정보 조회 |
History
| 버전 | 날짜 | 주요 사항 |
|---|---|---|
| 0.3.12a | 2025-11-11 | - 버그 수정: get_paper_details 메서드 수정 - 기능 개선: 논문/특허/보고서 상세정보에 ScienceON 웹 링크 추가 - 기능 개선: 특허 검색 결과에 CN 번호 표시 및 안내 문구 추가 |
| 0.3.12 | 2025-11-05 | - DataON 연구데이터 및 메타정보 검색 기능 지원 등 총 12종 도구 지원 |
| 0.2.10a | 2025-10-29 | - NTIS API Key 통합 및 내부 프로세스 개선 |
| 0.2.10 | 2025-08-13 | - NTIS 과제 검색 도구 기능 지원 - NTIS 과학기술분류 추천 도구 기능 지원 - NTIS 과제 연관콘텐츠 추천 도구 기능 지원 등 총 10종 도구 지원 |
| 0.1.7 | 2025-07-22 | - 첫 번째 릴리즈 - ScienceON 의 논문, 특허, 보고서 등 총 7종의 API 사용 지원 |
데이터 소스
-
ScienceON: 한국과학기술정보연구원의 통합 과학기술 정보서비스
- 논문 데이터: SCIE, SCOPUS, 한국과학기술논문 등 99.7% 포함
- 특허 데이터: 국내외 특허 정보 포함
- 보고서 데이터: 국가 R&D 보고서, 기술동향 보고서 등
-
NTIS: 국가과학기술지식정보서비스
- 국가R&D 과제: 정부 R&D 사업 및 과제 정보
- 분류코드 추천: 연구 초록 기반 과학기술 분류 추천
- 연관 콘텐츠: 과제 관련 논문, 특허, 보고서 추천
-
DataON: 국가연구데이터플랫폼
- 연구데이터: 공공 연구데이터, 데이터셋, AI 모델 등
- 메타데이터: 데이터셋 상세 정보, DOI, 라이선스 정보
설치
요구사항
-
uv 설치 (https://github.com/astral-sh/uv)
- Python 3.10 이상
-
플랫폼 별 API 관련 정보
- ScienceON - API Key, Client ID, MAC Address
- https://scienceon.kisti.re.kr/por/oapi/openApi.do 사이트 방문
- 회원가입 및 로그인
- API Key 및 Client ID 발급 신청
- NTIS - API Key
- https://www.ntis.go.kr/rndopen/api/mng/apiMain.do 사이트 방문
- 회원가입 및 로그인
- 데이터활용 > OpenAPI > API 별 활용신청
-
- 국가R&D 과제검색 서비스(대국민용) 2021-02-09
-
- 과학기술표준분류 추천 서비스(기관용) 2019-12-31
-
- 연관콘텐츠 추천 서비스(전체용) 2023-11-27
-
- DataON - 서비스 별 API Key
- https://dataon.kisti.re.kr/openApi/openApiList_R.do 사이트 방문(데이터온 > 서비스 > API 활용 > OpenAPI)
- 회원가입 및 로그인
- API 키 발급 (데이터온은 검색 API와 상세조회 API 키 별도 발급 필요)
- 연구데이터 검색 API 활용신청
- 연구데이터 메타정보 상세 조회 API 활용신청
- ScienceON - API Key, Client ID, MAC Address
-
MCP 지원 LLM 클라이언트 설정
- Claude Desktop
설치 방법
uv 사용 (권장)
- 저장소 클론
git clone https://github.com/ansua79/kisti-mcp.git
cd kisti-mcp
- uv로 의존성 설치
uv sync
전통적인 pip 방법
- 가상환경 생성 및 활성화:
python -m venv venv
source venv/bin/activate # Linux/Mac
# 또는
venv\Scripts\activate # Windows
- 의존성 설치:
pip install -e .
# 또는 직접 설치
pip install fastmcp httpx pycryptodome
설정
환경변수 설정
.env.example파일을.env로 복사:
cp .env.example .env
.env파일을 편집하여 실제 값으로 변경:
# .env 파일 내용
# ScienceON API 키
SCIENCEON_API_KEY=your_actual_api_key
SCIENCEON_CLIENT_ID=your_actual_client_id
SCIENCEON_MAC_ADDRESS=your_actual_mac_address
# NTIS API 키 (모든 NTIS 서비스에 공통 사용)
NTIS_API_KEY=your_ntis_api_key
# DataON API 키 (데이터온은 API마다 Key값이 다름)
DataON_ResearchData_API_KEY=your_dataon_search_api_key
DataON_ResearchDataMetadata_API_KEY=your_dataon_detail_api_key
사용법
MCP 서버 실행(동작 확인)
uvx 사용(가장 간단)
PyPI 배포 전(태그 기준 실행):
uvx --from "git+https://github.com/ansua79/kisti-mcp@vX.Y.Z" kisti-mcp
PyPI 배포 후:
uvx kisti-mcp
uv 사용(개발/기여자 권장)
uv run python kisti_mcp.py
INFO:__main__:.env 파일에서 6개의 환경변수를 로드했습니다.
INFO:__main__:KISTI API 인증 정보가 성공적으로 로드되었습니다.
INFO:__main__:NTIS API 인증 정보가 성공적으로 로드되었습니다.
INFO:__main__:DataON API 인증 정보가 성공적으로 로드되었습니다.
╭─ FastMCP 2.0 ──────────────────────────────────────────────────────────────╮
│ │
│ _ __ ___ ______ __ __ _____________ ____ ____ │
│ _ __ ___ / ____/___ ______/ /_/ |/ / ____/ __ \ |___ \ / __ \ │
│ _ __ ___ / /_ / __ `/ ___/ __/ /|_/ / / / /_/ / ___/ / / / / / │
│ _ __ ___ / __/ / /_/ (__ ) /_/ / / / /___/ ____/ / __/_/ /_/ / │
│ _ __ ___ /_/ \__,_/____/\__/_/ /_/\____/_/ /_____(_)____/ │
│ │
│ │
│ │
│ 🖥️ Server name: KISTI-MCP Server │
│ 📦 Transport: STDIO │
│ │
│ 📚 Docs: https://gofastmcp.com │
│ 🚀 Deploy: https://fastmcp.cloud │
│ │
│ 🏎️ FastMCP version: 2.10.6 │
│ 🤝 MCP version: 1.12.2 │
│ │
╰────────────────────────────────────────────────────────────────────────────╯
[11/05/25 11:26:29] INFO Starting MCP server 'KISTI-MCP Server' with transport 'stdio' server.py:1371
전통적인 방법
python kisti_mcp.py
도구 등록
Claude Deskop(윈도우) 기준 %APPDATA%\Claude\claude_desktop_config.json 파일 수정
{
"mcpServers": {
"kisti": {
"command": "uv",
"args": [
"--directory",
"설치디렉토리명",
"run",
"python",
"kisti_mcp.py"
]
}
}
}
- 설치디렉토리명은 C:/mcp/kisti-mcp 등으로, 로컬 기준에 따라 수정
마이그레이션 참고:
- 기존 문서의
kisti-mcp-server.py는kisti_mcp.py로 변경되었습니다. - 향후 배포(uvx/PyPI) 이후에는
kisti-mcp명령을 기본으로 사용합니다.
클라이언트 재시작
- Claude Desktop 기준
- 메뉴 > 파일 > 종료
- 또는 작업관리자에서 종료후
- 재시작
- 검색 및 도구 : kisti ⑫ 확인 ![[Pasted image 20250729101543.png]]
도구 사용
Claude Desktop 등의 MCP 클라이언트에서 kisti-mcp 가 정상 등록되었다면, 다음과 같이 사용하실 수 있습니다.
일반 : 인공지능 멀티모달 관련 논문 5개 찾아 요약해줘
명시 : ScienceOn에서 인공지능 멀티모달 논문 검색해줘
![[Pasted image 20250729101952.png]]
검색 결과 예시
논문 검색 결과
🔍 **'인공지능' 논문 검색 결과** (총 1,234건 중 5건 표시):
📄 **Deep Learning for Natural Language Processing**
👤 저자: 김철수, 이영희
📅 연도: 2024
📖 저널: IEEE Transactions on Neural Networks
🔗 논문번호(CN): JAKO202412345678901
📝 초록: 자연어 처리를 위한 딥러닝 기법에 관한 연구...
💡 특정 논문의 상세정보를 원하면 CN번호를 이용해 논문상세보기를 사용하세요.
특허 상세 정보
📋 **특허 상세정보 (CN: KIPO202412345678901)**
🏛️ **특허제목**: 인공지능 기반 음성인식 시스템
👥 **출원인**: 삼성전자
📅 **출원일**: 2024-01-15
📰 **공개일**: 2024-07-15
📊 **특허상태**: 등록
🏷️ **IPC분류**: G10L15/08
API 응답 형식
{
"success": true,
"total_count": 1234,
"papers": [
{
"Title": "논문 제목",
"Author": "저자명",
"Pubyear": "2024",
"JournalName": "저널명",
"Abstract": "논문 초록..."
}
]
}
프로젝트 구조
kisti-mcp-server/
├── kisti-mcp-server.py # 메인 서버 파일
├── pyproject.toml # 프로젝트 설정
├── requirements.txt # 의존성 목록
├── .env.example # 환경변수 예시 파일
├── .env # 환경변수 파일 (사용자가 생성)
├── README.md # 이 파일
├── LICENSE # 라이선스
└── .gitignore # Git 무시 파일
라이선스
이 프로젝트는 Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0) 하에 배포됩니다.
- ✅ 개인적/학술/연구/교육 목적 사용, 비상업적 사용 허용
- ❌ 상업적 사용 금지
- 💼 상업적 사용을 원하시는 경우 별도 라이선스가 필요합니다. 문의: [raezero@kisti.re.kr]
자세한 내용은 LICENSE 파일을 참조하세요.
문제 해결
일반적인 문제
ScienceON
- 토큰 발급 실패
- API 키와 클라이언트 ID가 올바른지 확인
- MAC 주소가 정확한지 확인 (형식: XX-XX-XX-XX-XX-XX)
- 네트워크 연결 상태 확인
- 검색 결과 없음
- 검색 키워드를 다양하게 시도
- 한글 키워드 사용 권장
NTIS
- API 키 오류
- NTIS_API_KEY가 올바르게 설정되었는지 확인
- 모든 NTIS 서비스에 동일한 API 키 사용
- 분류코드 추천 실패
- 연구 초록이 최소 128바이트 이상인지 확인
- 분류체계 이름이 정확한지 확인
DataON
- API 키 오류
- 검색 API와 상세조회 API 키가 각각 올바르게 설정되었는지 확인
- DataON_ResearchData_API_KEY와 DataON_ResearchDataMetadata_API_KEY 확인
공통
- 환경변수 확인
.env파일이 올바르게 설정되었는지 확인- 환경변수 값에 따옴표나 공백이 없는지 확인
KISTI 초거대AI연구센터 AI플랫폼팀
KISTI의 초거대AI연구센터는 2023년 12월 KISTI는 생성형 거대 언어 모델 'KONI(KISTI Open Natural Intelligence)'의 첫선을 토대로 2024년 3월 정식 출범한 부서이며, AI플랫폼팀은 AI모델 관련 플랫폼 기술 및 Agent 서비스 개발을 담당하고 있습니다.
지원
문제가 있거나 질문이 있으시면 이메일(raezero@kisti.re.kr)을 보내주시거나 Issues에서 문의해주세요.
관련 링크
- KONI:KISTI Open Neural Intelligence - KISTI 과학기술정보 특화 거대언어생성모델
- KISTI AI Platform Team - KISTI 초거대AI연구센터 AI플랫폼팀
- DOREA:Document-Oriented Reasoning and Exploration Assistant
- SpectraBench - Intelligent Scheduling System for Large Language Model Benchmarking
- KISTI ScienceON
- NTIS 국가과학기술지식정보서비스
- DataON 국가연구데이터플랫폼
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kisti_mcp-0.3.12b0.tar.gz.
File metadata
- Download URL: kisti_mcp-0.3.12b0.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb92401ea1dcad870345e51b609d27145a728512dfdaf38ea1bc800e20014e41
|
|
| MD5 |
b698d606ee5f2b75530a83ff45c48f52
|
|
| BLAKE2b-256 |
ea2eedc52b43a8a7ca1fd4abcafbcd09432464edc33339f84ec96ca24dbb769e
|
Provenance
The following attestation bundles were made for kisti_mcp-0.3.12b0.tar.gz:
Publisher:
publish.yml on ansua79/kisti-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kisti_mcp-0.3.12b0.tar.gz -
Subject digest:
bb92401ea1dcad870345e51b609d27145a728512dfdaf38ea1bc800e20014e41 - Sigstore transparency entry: 1028110431
- Sigstore integration time:
-
Permalink:
ansua79/kisti-mcp@b1cbb4df62ce46de144789a47538f42dcfeacb9a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ansua79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b1cbb4df62ce46de144789a47538f42dcfeacb9a -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file kisti_mcp-0.3.12b0-py3-none-any.whl.
File metadata
- Download URL: kisti_mcp-0.3.12b0-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58182f0cac61a360bbf65f9131f5d02d4b71b4b68a8fdb54a84bdb23e6816966
|
|
| MD5 |
9cf0d0abd059b039a1c2ada693d795e5
|
|
| BLAKE2b-256 |
085691f94abe8732e3225a6783b78e1ce38374d0f4ad72407b525a891d188135
|
Provenance
The following attestation bundles were made for kisti_mcp-0.3.12b0-py3-none-any.whl:
Publisher:
publish.yml on ansua79/kisti-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kisti_mcp-0.3.12b0-py3-none-any.whl -
Subject digest:
58182f0cac61a360bbf65f9131f5d02d4b71b4b68a8fdb54a84bdb23e6816966 - Sigstore transparency entry: 1028110489
- Sigstore integration time:
-
Permalink:
ansua79/kisti-mcp@b1cbb4df62ce46de144789a47538f42dcfeacb9a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ansua79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b1cbb4df62ce46de144789a47538f42dcfeacb9a -
Trigger Event:
workflow_dispatch
-
Statement type: