Back to the catalog

io.github.rubatoyd/scienceon-mcp

KISTI ScienceON OpenAPI literature search & metadata collection (MCP server + CLI)

Open source Open in the app JSON README (API)

About

KISTI ScienceON OpenAPI literature search & metadata collection (MCP server + CLI)

Details

Kind
MCP servers
Topic
Developer tools
Publisher
rubatoyd
Origin
official
Category
ferramentas
Transport
local
Version
0.5.1
Last push
2026-09-05T07:43:01Z
Repository state
ativo
Language
Python
License
MIT
Added
2026-08-29 04:01:19
Updated
2026-08-29 04:01:19
Origin id
io.github.rubatoyd/scienceon-mcp

README

# scienceON-mcp

<!-- mcp-name: io.github.rubatoyd/scienceon-mcp -->

[![CI](https://github.com/rubatoyd/scienceON-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/rubatoyd/scienceON-mcp/actions/workflows/ci.yml)
[![Release](https://img.shields.io/github/v/release/rubatoyd/scienceON-mcp)](https://github.com/rubatoyd/scienceON-mcp/releases/latest)
[![Downloads](https://img.shields.io/github/downloads/rubatoyd/scienceON-mcp/total?label=downloads)](https://github.com/rubatoyd/scienceON-mcp/releases)

<!-- usage:start -->
> ๐Ÿ“ˆ **์‚ฌ์šฉ๋Ÿ‰** โ€” ์ตœ๊ทผ 14์ผ ์กฐํšŒ **6**ํšŒ(๊ณ ์œ  3) ยท ํด๋ก  **144**ํšŒ(๊ณ ์œ  79) ยท ๋ฆด๋ฆฌ์Šค ์ž์‚ฐ ๋ˆ„์  ๋‹ค์šด๋กœ๋“œ **111**
>
> ![์ผ๋ณ„ ํด๋ก ยท์กฐํšŒ ์ถ”์ด](docs/usage.svg)
>
> <sub>2026-09-05 ์ž๋™ ๊ฐฑ์‹  ยท ์ „์ฒด ์ด๋ ฅ์€ [`docs/usage.csv`](docs/usage.csv). GitHub ํŠธ๋ž˜ํ”ฝ ํ†ต๊ณ„๋Š” 14์ผ ์ฐฝ๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด ์ €์žฅ์†Œ๊ฐ€ ๋งค์ผ ์ฐ์–ด ๋ˆ„์ ํ•œ๋‹ค.</sub>
<!-- usage:end -->

KISTI **ScienceON OpenAPI** ๋ฌธํ—Œ ๊ฒ€์ƒ‰ยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ โ€” **MCP ์„œ๋ฒ„ + CLI**.
์ž๊ธฐ ScienceON API ํ‚ค๋งŒ ๋ฐœ๊ธ‰๋ฐ›์œผ๋ฉด Claude(๋˜๋Š” CLI)์—์„œ ๊ตญ๋‚ด์™ธ ๋…ผ๋ฌธยท๋ณด๊ณ ์„œ ์„œ์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ
๊ฒ€์ƒ‰ยท์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

> An MCP server + CLI for KISTI ScienceON OpenAPI. Bring your own API key and let
> Claude search & collect academic literature metadata in any project.

## ๊ธฐ๋Šฅ

- **๊ฒ€์ƒ‰** โ€” ๋…ผ๋ฌธ(ARTI)ยท๋ณด๊ณ ์„œ(REPORT) ๋“ฑ ์„œ์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ. ๋‹ค์ค‘์ฟผ๋ฆฌ ํ•ฉ์ง‘ํ•ฉ ยท ์™€์ผ๋“œ์นด๋“œ(`*`) ยท
  ์—ฐ๋„๋ฒ”์œ„ ยท `contains`/`lang` ํ›„์ฒ˜๋ฆฌ ํ•„ํ„ฐ
- **์ƒ์„ธ** โ€” ์ œ์–ด๋ฒˆํ˜ธ(CN)๋กœ ์ดˆ๋กยท์„œ์ง€ ์ „์ฒด
- **๋‹ค์ค‘๊ทธ๋ฃน ์ˆ˜์ง‘** โ€” ๊ทธ๋ฃน๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒ€์ƒ‰ ์ „๋žต์„ ๊ฑธ์–ด ํ•œ ์ฝ”ํผ์Šค๋กœ ํ•ฉ์นจ
- **๋‚ด๋ณด๋‚ด๊ธฐ** โ€” xlsx ยท csv ยท json ยท sqlite
- **๋‘ ๊ฐ€์ง€ ์‚ฌ์šฉ๋ฒ•** โ€” Claude ์—์„œ ๋„๊ตฌ ํ˜ธ์ถœ(MCP) ยท ํ„ฐ๋ฏธ๋„ ๋ฐฐ์น˜(CLI), ๊ฐ™์€ ์ฝ”์–ด ๊ณต์œ 

์ง€์› ํ‹ฐ์ผ“: `ARTI` ๋…ผ๋ฌธ ยท `REPORT` ๋ณด๊ณ ์„œ ยท `ATT` ๋™ํ–ฅ ยท `RESEARCHER` ์—ฐ๊ตฌ์ž ยท `ORGAN` ์—ฐ๊ตฌ๊ธฐ๊ด€
(๊ณ„์ • ๊ตฌ๋… ๋ฒ”์œ„์— ๋”ฐ๋ฆ„)

## API ํ‚ค ๋ฐœ๊ธ‰

1. [ScienceON](https://scienceon.kisti.re.kr) ํšŒ์›๊ฐ€์ž…ยท๋กœ๊ทธ์ธ
2. **API Gateway โ†’ ์ธ์ฆํ‚ค ๋ฐœ๊ธ‰ ์‹ ์ฒญ** โ†’ ์Šน์ธ ํ›„ `์ธ์ฆํ‚ค`ยท`Client ID` ๋ฐœ๊ธ‰
3. **์ธ์ฆํ‚ค๊ด€๋ฆฌ**์—์„œ ์‹ ์ฒญ **MAC ์ฃผ์†Œ** ๋“ฑ๋ก, **IP๊ด€๋ฆฌ**์—์„œ ํ˜ธ์ถœ PC ์˜ ๊ณต์ธ IP ๋“ฑ๋ก
4. ์‚ฌ์šฉํ•  **์„œ๋น„์Šค ์ฝ˜ํ…์ธ (ํ‹ฐ์ผ“)** ์ฒดํฌ

์ž๊ฒฉ์ฆ๋ช…์€ MCP ์„ค์ •์˜ `env` ๋ธ”๋ก ๋˜๋Š” `.env`(`.env.example` ๋ณต์‚ฌ)๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์ฝ”๋“œยท์ปค๋ฐ‹ยท๋กœ๊ทธ์—๋Š”
๋„ฃ์ง€ ์•Š๋Š”๋‹ค.

## ์„ค์น˜

### Claude Desktop

**`.mcpb` ์›ํด๋ฆญ** โ€” [๋ฆด๋ฆฌ์Šค](https://github.com/rubatoyd/scienceON-mcp/releases/latest)์—์„œ ๋ฐ›์•„
๋”๋ธ”ํด๋ฆญ/๋“œ๋ž˜๊ทธ โ†’ ์„ค์น˜ ์ฐฝ์—์„œ ์ธ์ฆํ‚คยทClient IDยทMAC ์ž…๋ ฅ.

| ์ž์‚ฐ | ํŠน์ง• |
|---|---|
| `scienceon-mcp-win-x64.mcpb` / `โ€ฆ-macos-arm64.mcpb` / `โ€ฆ-linux-x64.mcpb` | ์ž์ฒด์™„๊ฒฐ โ€” Pythonยทuv ๋ถˆํ•„์š” |
| `scienceon-mcp.mcpb` | ๊ฒฝ๋Ÿ‰. ์‹คํ–‰์— `uv` ํ•„์š” |

**์ˆ˜๋™ config** โ€” `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "scienceon": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/rubatoyd/scienceON-mcp", "scienceon-mcp"],
      "env": {
        "SCIENCEON_AUTH_KEY": "๋ฐœ๊ธ‰_32์ž๋ฆฌ_์ธ์ฆํ‚ค",
        "SCIENCEON_CLIENT_ID": "๋ฐœ๊ธ‰_client_id",
        "SCIENCEON_MAC_ADDRESS": "AA-BB-CC-DD-EE-FF"
      }
    }
  }
}
```

### Claude Code

```bash
claude mcp add scienceon -- uvx --from "git+https://github.com/rubatoyd/scienceON-mcp" scienceon-mcp
```

์ฒซ ์‹คํ–‰ ์‹œ ๋นŒ๋“œ(์ˆ˜ ์ดˆ), ์ดํ›„ ์บ์‹œ. ์ตœ์‹  ๋ฐ˜์˜์€ `uvx --refresh โ€ฆ`.

### ๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ

ํ‘œ์ค€ stdio MCP ์„œ๋ฒ„์ด๋ฏ€๋กœ MCP ๋ฅผ ์ง€์›ํ•˜๋Š” ์—์ด์ „ํŠธ๋ฉด ๊ทธ๋Œ€๋กœ ๋ถ™๋Š”๋‹ค โ€” Cursor ยท Windsurf ยท Cline ยท
Zed ยท VS Code Copilot(agent mode) ยท OpenAI Agents SDK ยท ์ž์ฒด ํด๋ผ์ด์–ธํŠธ ๋“ฑ. ์œ„ `command`/`args`/`env`
3์š”์†Œ๋ฅผ ๊ฐ ํด๋ผ์ด์–ธํŠธ ์„ค์ •์— ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค.

### ์ „์†ก ๋ฐฉ์‹

```bash
scienceon-mcp                                # stdio (๊ธฐ๋ณธ)
scienceon-mcp --transport streamable-http    # http://127.0.0.1:8000/mcp
scienceon-mcp --transport sse --port 9000    # http://127.0.0.1:9000/sse
```

ํ™˜๊ฒฝ๋ณ€์ˆ˜: `SCIENCEON_MCP_TRANSPORT` ยท `SCIENCEON_MCP_HOST` ยท `SCIENCEON_MCP_PORT`.

## MCP ๋„๊ตฌ

| ๋„๊ตฌ | ํ•˜๋Š” ์ผ |
|---|---|
| `scienceON_status` | ์—ฐ๊ฒฐ/ํ† ํฐ ์ ๊ฒ€ (+๊ณต์ธ IP โ€” E4006 ์ง„๋‹จ์šฉ) |
| `scienceON_search` | ๋ฌธํ—Œ ๊ฒ€์ƒ‰ โ€” ๋‹ค์ค‘์ฟผ๋ฆฌ ยท ์™€์ผ๋“œ์นด๋“œ ยท ์—ฐ๋„๋ฒ”์œ„ ยท `contains` ยท `lang` |
| `scienceON_detail` | ์ œ์–ด๋ฒˆํ˜ธ(CN)๋กœ ์ดˆ๋กยท์„œ์ง€ ์ „์ฒด |
| `scienceON_export` | ๋Œ€๋Ÿ‰ ์ˆ˜์ง‘ โ†’ xlsx/csv/json/sqlite ์ €์žฅ |
| `scienceON_collect_groups` | ๋‹ค์ค‘ ๊ฒ€์ƒ‰๊ทธ๋ฃน์„ ํ•œ ์ฝ”ํผ์Šค๋กœ ํ•ฉ์ณ ์ˆ˜์ง‘ |

### ๋‹ค์ค‘๊ทธ๋ฃน ์ˆ˜์ง‘

๋‹จ์ผ ๊ฒ€์ƒ‰์–ด๋กœ๋Š” ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ์ฝ”ํผ์Šค๊ฐ€ ์žˆ๋‹ค. ๋ณ€๋ณ„๋ ฅ ์žˆ๋Š” ๋‹จ์–ด๋Š” ์ „์ฒด(BI)๋กœ ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ ,
์ƒ‰์ธ์ด ์•ˆ ๋˜๋Š” ํ† ํฐ์€ ์ œ๋ชฉ(TI) ์™€์ผ๋“œ์นด๋“œ + `contains` ํ›„์ฒ˜๋ฆฌ๋กœ ์ •๋ฐ€ํ™”ํ•˜๋Š” ์‹์œผ๋กœ ๊ทธ๋ฃน๋งˆ๋‹ค ๋‹ค๋ฅธ
์ „๋žต์„ ๊ฑธ์–ด ํ•ฉ์ง‘ํ•ฉ์„ ๋งŒ๋“ ๋‹ค.

```jsonc
[
  { "field": "BI", "terms": ["๊ฒฝ๊ณ„์„ ์ง€๋Šฅ", "๊ฒฝ๊ณ„์„  ์ง€๋Šฅ"] },
  { "field": "TI", "terms": ["๋А๋ฆฐ*"], "contains": ["๋А๋ฆฐํ•™์Šต์ž", "๋А๋ฆฐ ํ•™์Šต์ž"] }
]
```

๊ทธ๋ฃน ํ‚ค: `field`(BI/TI/AB/AU/KW) ยท `terms` ยท `contains` ยท `lang` ยท `max`.
`save: false` ๋กœ ๋ถ€๋ฅด๋ฉด ์ €์žฅ ์—†์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋‹ค(์‘๋‹ต์—๋Š” ์•ž 100๊ฑด๋งŒ).

## ์•Œ์•„๋‘˜ ์ œํ•œ

**์ˆ˜์ง‘๋Ÿ‰์ด `max_records` ์™€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋ฉด ๊ฑฐ์˜ ํ•ญ์ƒ ์ ˆ๋‹จ๋œ ๊ฒƒ์ด๋‹ค.** ์ˆ˜์ง‘ ๋„๊ตฌ๋Š” `total` ๊ณผ
ํ”Œ๋ž˜๊ทธ๋ฅผ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ ˆ๋‹จ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ ˆ๋‹จ๋œ ๊ฒฐ๊ณผ๋ฅผ ์™„์ „ํ•œ ์ฝ”ํผ์Šค๋กœ ์˜ค์ธํ•˜๋ฉด
ํ›„์† ๋ถ„์„์ด ํ†ต์งธ๋กœ ๋ฌดํšจ๊ฐ€ ๋œ๋‹ค.

**ScienceON ์ด ๋ณด๊ณ ํ•˜๋Š” `total` ์€ ์‹ค์ œ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฑด์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์žˆ๋‹ค.** ๊ทธ๋ž˜์„œ ๋‘ ์ƒํ™ฉ์„
๋‹ค๋ฅธ ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

| ํ”Œ๋ž˜๊ทธ | ๋œป | ๋Œ€์ฒ˜ |
|---|---|---|
| `truncated` | `max_records` ์ƒํ•œ์— ๊ฑธ๋ ธ๋‹ค | ์ƒํ•œ์„ ์˜ฌ๋ ค ์žฌ์ˆ˜์ง‘ํ•˜๋ฉด ๋Š˜์–ด๋‚œ๋‹ค |
| `total_mismatch` | ๋๊นŒ์ง€ ํŽ˜์ด์ง•ํ–ˆ๋Š”๋ฐ `total` ์— ๋ชป ๋ฏธ์ณค๋‹ค | ์ƒํ•œ์„ ์˜ฌ๋ ค๋„ ๋Š˜์ง€ ์•Š๋Š”๋‹ค. ํšŒ์ˆ˜๋Ÿ‰์„ ํ™•์ • ์ˆ˜์น˜๋กœ ์“ด๋‹ค |

`meta.union_upper_bound` ๋Š” ์‹คํ–‰ํ•œ ๊ฒ€์ƒ‰์ถ•๋“ค์˜ `total` ํ•ฉ, ์ฆ‰ ํ•ฉ์ง‘ํ•ฉ์˜ ์ƒํ•œ์ด๋‹ค(์ค‘๋ณต ๋ฏธ๋ณด์ •).

**๋‹ค์ค‘ ํŽ˜์ด์ง€ ์งˆ์˜๋Š” ํ˜ธ์ถœ๋งˆ๋‹ค ๊ฒฐ๊ณผ๊ฐ€ ๋ฏธ์„ธํ•˜๊ฒŒ ๋‹ฌ๋ผ์ง„๋‹ค.** ๋‹จ์ผ ํŽ˜์ด์ง€ ์งˆ์˜๋Š” ์•ˆ์ •์ ์ด๋‹ค.
`total` ์— ๋ชป ๋ฏธ์น˜๊ณ  ์ƒํ•œ๋„ ์•„๋‹ˆ๋ฉด ํ•œ ๋ฒˆ ๋” ํ›‘์–ด ํ•ฉ์ง‘ํ•ฉ์„ ์ทจํ•œ๋‹ค(`meta.sweeps` ๊ฐ€ 1๋ณด๋‹ค ํฌ๋ฉด
๋ณด์ •๋œ ๊ฒƒ).

๋ณด์ •์ด ๊ฑธ๋ฆฐ ์ถ•์€ ์ „์ฒด๋ฅผ ์žฌํŽ˜์ด์ง•ํ•˜๋ฏ€๋กœ ๊ทธ๋งŒํผ ์š”์ฒญ์ด ๋Š˜์–ด๋‚œ๋‹ค. ๋Œ€๊ทœ๋ชจ ์ˆ˜์ง‘์—์„œ ๋ถ€๋‹ด๋˜๋ฉด
`scienceON_search` ยท `scienceON_export` ยท `scienceON_collect_groups` ์˜ `retry_incomplete=0`
์œผ๋กœ ๋ˆ๋‹ค โ€” ๋Œ€์‹  ๊ฒฐ์†์ด ๋‚จ๊ณ  `total_mismatch` ๋กœ๋งŒ ํ‘œ์‹œ๋œ๋‹ค.

**์ถœ๋ ฅ ํŒŒ์ผ๋ช…์€ ์ •๊ทœํ™”๋œ๋‹ค.** `name` ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒ€์ƒ‰์–ด๊ฐ€ ๊ทธ๋Œ€๋กœ ํŒŒ์ผ๋ช…์ด ๋˜๋ฏ€๋กœ,
๊ฒฝ๋กœ ๊ตฌ๋ถ„์žยท`..`ยท์œˆ๋„ ๊ธˆ์ง€๋ฌธ์ž๋Š” ์ œ๊ฑฐ๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ `out_dir` ์•ˆ์—๋งŒ ์ €์žฅ๋œ๋‹ค.
ํ•œ๊ธ€ ํŒŒ์ผ๋ช…์€ ๊ทธ๋Œ€๋กœ ๋ณด์กด๋œ๋‹ค.

**์„œ๋ฒ„์ธก ํŒŒ์ดํ”„ OR(`|`)๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค.** ๊ณต๋ฐฑ์ด ๋“  ์šฉ์–ด์—์„œ ํ† ํฐ์ด ๋ถ„๋ฆฌ๋ผ ๊ณผ๋Œ€๋งค์นญ๋˜๋ฏ€๋กœ,
์šฉ์–ด๋ณ„ ๊ฐœ๋ณ„ ๊ฒ€์ƒ‰ ํ›„ CN ํ•ฉ์ง‘ํ•ฉ์„ ์ทจํ•œ๋‹ค.

**Claude ์•ฑ ์•ˆ์—์„œ ๊ฒ€์ƒ‰ํ•ด ์„ค์น˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค.** ๊ณต์‹ MCP ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋“ฑ์žฌ์™€ Claude Desktop ์ธ์•ฑ
์ปค๋„ฅํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋ณ„๊ฐœ์ด๊ณ  ์ž๋™ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š”๋‹ค.

**๋„๊ตฌ ์„ค๋ช…์ด ํ•œ๊ตญ์–ด๋‹ค.** ํ•œ๊ตญ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋ธ์ด์–ด์•ผ ๋„๊ตฌ ์„ ํƒ์ด ์ •ํ™•ํ•˜๋‹ค.

**`mcp` SDK ๋Š” 1.x ๋กœ ๊ณ ์ •๋œ๋‹ค**(`mcp>=1.2.0,<2`). 2.0 ์—์„œ `mcp.server.fastmcp` ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด
์ƒํ•œ์ด ์—†์œผ๋ฉด ๊ธฐ๋™์— ์‹คํŒจํ•œ๋‹ค.

## CLI

```bash
uv run scienceon status
uv run scienceon search --target ARTI --query "์ธ๊ณต์ง€๋Šฅ" --year 2015~2024 --rows 100
uv run scienceon collect --config config/search.example.yaml
```

๋กœ์ปฌ ๊ฐœ๋ฐœ์€ clone ํ›„ `uv sync`. ํด๋ผ์šฐ๋“œ ๋™๊ธฐํ™” ํด๋”(OneDrive ๋“ฑ)๋ผ๋ฉด venv ๋ฅผ ํด๋” ๋ฐ–์— ๋‘๊ธฐ๋ฅผ
๊ถŒํ•œ๋‹ค(`UV_PROJECT_ENVIRONMENT`).

## ๋ฌธ์„œ

- [docs/SCIENCEON_API_GUIDE.md](docs/SCIENCEON_API_GUIDE.md) โ€” API ํ˜ธ์ถœ ๊ทœ๊ฒฉ
- [docs/COLLECTION_WORKFLOW.md](docs/COLLECTION_WORKFLOW.md) โ€” ๋ฐ˜๋ณต ์ˆ˜์ง‘ SOP
- [docs/PROMPTS.md](docs/PROMPTS.md) โ€” Claude ๊ตฌ๋™์šฉ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ
- [docs/ROADMAP.md](docs/ROADMAP.md) โ€” ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ณ„ํš

## ๋ณด์•ˆ / ๋„คํŠธ์›Œํฌ

- ์ž๊ฒฉ์ฆ๋ช…์€ `.env` ๋˜๋Š” MCP `env` ๋ธ”๋ก์œผ๋กœ๋งŒ ์ „๋‹ฌํ•œ๋‹ค. `.env` ์™€ ํ† ํฐ ์บ์‹œ๋Š” gitignore ๋Œ€์ƒ์ด๋‹ค.
- ๊ต์œก๋งยท์‚ฌ๋‚ด๋ง **SSL ์ธํ„ฐ์…‰์…˜** ํ™˜๊ฒฝ์—์„œ๋Š” `truststore` ๋กœ OS ์‹ ๋ขฐ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ํ†ต๊ณผํ•œ๋‹ค
  (TLS ๊ฒ€์ฆ์„ ๋„์ง€ ์•Š๋Š”๋‹ค). ์ •์‹ ์˜์กด์„ฑ์ด๋ผ `.mcpb` ์„ค์น˜๋ณธ์—๋„ ์ ์šฉ๋œ๋‹ค. ๋น„ํ™œ์„ฑ์€ `SCIENCEON_OS_TRUST=0`.
- ์ž๊ฒฉ์ฆ๋ช… ์˜ค๋ฅ˜ยทํƒ€์ž„์•„์›ƒ ๋“ฑ ์–ด๋–ค ์˜ˆ์™ธ๋„ ๋„๊ตฌ ๋ฐ–์œผ๋กœ ์ƒˆ์ง€ ์•Š๋Š”๋‹ค(ํ•ญ์ƒ `{"error": โ€ฆ}` ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜).
- HTTP ์ „์†ก์—๋Š” ์ธ์ฆ์ด ์—†๋‹ค. ๊ธฐ๋ณธ ๋ฐ”์ธ๋“œ๋Š” ๋ฃจํ”„๋ฐฑ(`127.0.0.1`)์ด๋‹ค. `--host 0.0.0.0` ์œผ๋กœ ์™ธ๋ถ€์—
  ์—ด๋ฉด ์ž๊ฒฉ์ฆ๋ช…์„ ๊ฐ€์ง„ ์„œ๋ฒ„๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜๋ฏ€๋กœ ์‹ ๋ขฐ๋œ ๋ง์—์„œ๋งŒ ์“ด๋‹ค.
- ํ˜ธ์ถœ์€ throttle(๊ธฐ๋ณธ 0.5s)ยท์ง€์ˆ˜ ๋ฐฑ์˜คํ”„๋ฅผ ๊ฑด๋‹ค. 429 ๊ฐ€ ๋‚˜๋ฉด throttle ์„ ์˜ฌ๋ฆฐ๋‹ค.

## ๊ด€๋ จ ํ”„๋กœ์ ํŠธ

- [ansua79/scienceon-mcp](https://github.com/ansua79/scienceon-mcp) โ€” KISTI ๊ฐœ๋ฐœ์ž์˜ ScienceON MCP.
  ScienceON ์ „ API(๋…ผ๋ฌธยทํŠนํ—ˆยท๋ณด๊ณ ์„œยท๋™ํ–ฅยท์—ฐ๊ตฌ์žยท๊ธฐ๊ด€ยท๊ธฐ์ˆ ํŠธ๋ Œ๋“œยท๋‰ด์Šค ๋“ฑ 17๊ฐœ ๋„๊ตฌ)๋ฅผ ํญ๋„“๊ฒŒ
  ๋…ธ์ถœํ•˜๊ณ  GUI ์„ค์น˜๊ธฐ๋„ ์ œ๊ณตํ•œ๋‹ค. **ํญ๋„“์€ ํƒ์ƒ‰**์ด ๋ชฉ์ ์ด๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ถŒํ•œ๋‹ค.
- [rubatoyd/KCI_openAPI](https://github.com/rubatoyd/KCI_openAPI) โ€” ํ•œ๊ตญ์—ฐ๊ตฌ์žฌ๋‹จ KCI ์ˆ˜์ง‘๊ธฐ(์ž๋งค ํ”„๋กœ์ ํŠธ).

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” **์—ฐ๊ตฌ์šฉ ์ž๋ฃŒ์ˆ˜์ง‘ยท์ฝ”ํผ์Šค ๊ตฌ์ถ•**์— ํŠนํ™”๋˜์–ด ์žˆ๋‹ค โ€” ๋‹ค์ค‘์ฟผ๋ฆฌ ํ•ฉ์ง‘ํ•ฉ ยท ์™€์ผ๋“œ์นด๋“œ ยท
ํ›„์ฒ˜๋ฆฌ ํ•„ํ„ฐ ยท ๋‹ค์ค‘๊ทธ๋ฃน ์ˆ˜์ง‘ ยท ๋Œ€๋Ÿ‰ ๋‚ด๋ณด๋‚ด๊ธฐ ยท config ์žฌํ˜„ ์ˆ˜์ง‘.

## ๋ผ์ด์„ ์Šค

MIT ยฉ Yeondong Yang. ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” KISTI ์˜ ๋น„๊ณต์‹ ํด๋ผ์ด์–ธํŠธ์ด๋ฉฐ ์ œํœด ๊ด€๊ณ„๊ฐ€ ์—†๋‹ค.
ScienceON ๋ฐ์ดํ„ฐ ์ด์šฉ์€ KISTI ์•ฝ๊ด€ยทํŠธ๋ž˜ํ”ฝ ์ •์ฑ…์„ ๋”ฐ๋ฅธ๋‹ค.

More