ntis-mcp
# @vertical-mcp/ntis-mcp
MCP server for Korea's **NTIS** (National Science & Technology Information Service, 국가과학기술지식정보서비스) — the KISTI-operated portal that aggregates every national R&D project, funding call, and program in South Korea.
한국과학기술정보연구원(KISTI)이 운영하는 NTIS 공개 검색 포털(ntis.go.kr)을 MCP 서버로 래핑한 패키지. 국가 R&D 과제 · 공고 · 사업 검색을 Claude · Cursor 등 MCP 호환 클라이언트에서 바로 사용할 수 있다. **API 키 불필요.**
---
## Tools
| Tool | Description |
|------|-------------|
| `search_rnd_projects` | Search national R&D projects (과제). Returns ID, title, year, funding period, total/gov budget, program, PI, institution, ministry, and short research-content abstract. |
| `search_rnd_announcements` | Search open / recent funding calls (공고). Returns ID, title, ministry, application window, derived status (OPEN/CLOSED). |
| `search_rnd_programs` | Search R&D programs (사업) — the umbrella programs under which projects are funded. Returns ID, title, year, managing agency, ministry, budget. |
All three tools scrape the public ntis.go.kr search pages — **no registration or API key required**.
---
## Quick start
### Install
```bash
npx @vertical-mcp/ntis-mcp
```
Or install globally:
```bash
npm install -g @vertical-mcp/ntis-mcp
ntis-mcp
```
### Configure your MCP client
#### Claude Desktop (`claude_desktop_config.json`)
```json
{
"mcpServers": {
"ntis-mcp": {
"command": "npx",
"args": ["-y", "@vertical-mcp/ntis-mcp"]
}
}
}
```
#### Cursor (`.cursor/mcp.json`)
```json
{
"mcpServers": {
"ntis-mcp": {
"command": "npx",
"args": ["-y", "@vertical-mcp/ntis-mcp"]
}
}
}
```
---
## Examples
### Find AI-related national R&D projects
```
search_rnd_projects({
query: "AI",
page: 1,
page_size: 10
})
```
### Search open funding calls for semiconductor R&D
```
search_rnd_announcements({
query: "반도체",
page: 1,
page_size: 10
})
```
### Look up R&D programs on quantum technology
```
search_rnd_programs({
query: "양자",
page: 1,
page_size: 10
})
```
---
## Companion packages
`ntis-mcp` is part of the `@vertical-mcp/*` family of Korean & international research-infrastructure MCP servers:
- [`@vertical-mcp/grant-mcp`](https://github.com/vertical-mcp/grant-mcp) — NSF (US) + ERC (EU) + NRF (Korea) research grants
- [`@vertical-mcp/dart-mcp`](https://github.com/vertical-mcp/dart-mcp) — Korean corporate disclosures (금감원 DART)
- [`@vertical-mcp/kolas-mcp`](https://github.com/vertical-mcp/kolas-mcp) — KOLAS accredited calibration / testing labs
- **`@vertical-mcp/ntis-mcp`** — Korean national R&D (this package)
---
## Development
```bash
git clone https://github.com/vertical-mcp/ntis-mcp.git
cd ntis-mcp
npm install
npm run build
npm start
```
### Scripts
- `npm run dev` — watch mode via `tsx`
- `npm run build` — compile to `dist/`
- `npm run typecheck` — no-emit type check
- `npm run clean` — remove `dist/`
---
## Data source caveats
`ntis-mcp` parses HTML from <https://www.ntis.go.kr>. If NTIS redesigns the search portal, selectors may break — open an issue and tag it `scrape-drift`.
A future v0.2+ release will layer the **official NTIS OpenAPI** (https://www.ntis.go.kr/rndopen/api/mng/apiMain.do) under the same tool interface. Eight public-access endpoints are available on the KISTI OpenAPI portal; each requires individual `활용신청` approval, so the current zero-key HTML path is the quickest on-ramp for new users.
---
## Roadmap
- **v0.1** — `search_rnd_projects`, `search_rnd_announcements`, `search_rnd_programs` (HTML scraping, this release)
- **v0.2** — KISTI OpenAPI integration when user-supplied `NTIS_OPENAPI_KEY` is configured; fallback to scraping otherwise
- **v0.3** — `search_rnd_performance` (papers / patents / reports / facilities), `get_researcher_profile`
- **v0.4** — cross-linking with `grant-mcp`, `dart-mcp`, `kolas-mcp`
---
## Legal / attribution
- Data source: [NTIS 국가과학기술지식정보서비스](https://www.ntis.go.kr) — Korea Institute of Science and Technology Information (KISTI).
- This package is an unofficial community wrapper. It is not affiliated with or endorsed by KISTI or the Ministry of Science and ICT.
- Please respect the source portal's rate limits — scraping is courteous and sparse by default.
---
## License
MIT © 2026 Yongbum Kim
TDQS
Scored across 3 tools
Each tool targets a distinct entity type in the R&D domain: announcements (funding calls), programs (umbrella programs), and projects (individual projects). No overlap in purpose, and the descriptions clearly differentiate them.
All tools follow the exact pattern 'search_rnd_<entity>', using snake_case consistently. The prefix 'search_rnd_' is uniform, and the entity names ('announcements', 'programs', 'projects') are clear and parallel.
Three tools is slightly low but appropriate given the focused domain of Korean national R&D data. Each tool covers a core entity, and no unnecessary tools exist. A few more detail-oriented tools could be added, but the current count is reasonable.
The tools cover the primary searchable entities in the R&D funding lifecycle: announcements (calls), programs, and projects. Missing are detail retrieval tools for specific entities, but the search tools return rich metadata, so agents can work within this surface.