Skip to main content
Glama

@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.


Related MCP server: ScienceON-MCP

Quick start

Install

npx @vertical-mcp/ntis-mcp

Or install globally:

npm install -g @vertical-mcp/ntis-mcp
ntis-mcp

Configure your MCP client

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "ntis-mcp": {
      "command": "npx",
      "args": ["-y", "@vertical-mcp/ntis-mcp"]
    }
  }
}

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "ntis-mcp": {
      "command": "npx",
      "args": ["-y", "@vertical-mcp/ntis-mcp"]
    }
  }
}

Examples

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:


Development

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.1search_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.3search_rnd_performance (papers / patents / reports / facilities), get_researcher_profile

  • v0.4 — cross-linking with grant-mcp, dart-mcp, kolas-mcp


  • Data source: NTIS 국가과학기술지식정보서비스 — 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

Available Tools

3 tools
search_rnd_announcementsA

Search open / recent R&D funding calls (공고) across Korean ministries via NTIS. Returns announcement ID, title, ministry, application window, derived status (OPEN/CLOSED/UPCOMING), and deep-link URL. Data source: ntis.go.kr.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryYes
page_sizeNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions derived status and data source but does not cover pagination behavior, authentication needs, or how 'recent' is defined.

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 concise with two sentences, front-loaded with the verb and resource, and no unnecessary information. Every sentence adds value.

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

Completeness3/5

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

Without an output schema, the description explains return fields adequately. However, it lacks parameter descriptions and comparison with sibling tools, making it moderately complete given the tool's complexity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not elaborate on any parameters (query, page, page_size). It adds no meaning beyond the parameter names, leaving agents to guess semantics.

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

Purpose5/5

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

The description clearly states the tool searches R&D funding calls (announcements) across Korean ministries, specifies the data source (ntis.go.kr), and lists the returned fields. It distinguishes from sibling tools (programs and projects) by focusing on calls.

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

Usage Guidelines3/5

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

The description implies the tool is for finding open or recent announcements, but provides no explicit guidance on when to use this tool versus siblings (search_rnd_programs, search_rnd_projects), nor when not to use it.

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

search_rnd_programsA

Search Korean national R&D programs (사업) — the umbrella programs under which individual projects are funded. Returns program ID, name, year, managing agency (전문기관), ministry, and budget when listed. Data source: ntis.go.kr.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryYes
page_sizeNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It lists return fields and data source but does not disclose side effects, authentication needs, or rate limits. For a read-only search, safety is implied but not explicit.

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?

Two sentences with clear structure: first states purpose and resource, second lists return fields and data source. No unnecessary words.

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

Completeness3/5

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

Reasonably complete for a simple search tool, covering purpose, output fields, and data source. However, missing parameter explanations and explicit usage guidance reduce completeness.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any parameters. It omits explanation of 'query', 'page', or 'page_size' beyond their schema names, failing to compensate for the gap.

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

Purpose5/5

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

Clearly states it searches Korean national R&D programs, explains what a program is (umbrella for projects), lists return fields, and distinguishes from siblings by naming search_rnd_announcements and search_rnd_projects.

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

Usage Guidelines4/5

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

Implicitly guides usage by differentiating from siblings (projects vs announcements), but lacks explicit when-to-use or when-not-to-use instructions.

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

search_rnd_projectsA

Search South Korea's national R&D projects via NTIS (국가 R&D 과제 검색). Returns paginated project metadata: project ID, title, year, funding period, total/government budget, program name, principal investigator, institution, ministry, and a short research-content abstract when present. Data source: ntis.go.kr (no API key required).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryYes
page_sizeNo

TDQS

A3.5/5.0
Behavior3/5

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

Given no annotations, the description partially fulfills behavioral transparency by listing return fields and stating no API key required. However, it lacks disclosure of rate limits, data freshness, or any side effects.

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 concise, with front-loaded purpose and a list of returned fields. However, it could be more structured by separating input and output details.

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

Completeness3/5

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

Given no output schema, the description covers return fields acceptably. But absence of input parameter descriptions and usage guidelines makes it incomplete for an agent to use effectively.

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

Parameters2/5

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

Schema description coverage is 0%. The description does not clarify the input parameters (query, page, page_size) beyond their names and defaults. It does not explain query syntax, valid values, or how pagination works.

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

Purpose5/5

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

The description clearly states the tool searches South Korea's national R&D projects via NTIS, specifies the data source and fields returned, and distinguishes from sibling tools (announcements, programs) by focusing on projects.

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

Usage Guidelines3/5

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

The description implies usage for searching R&D projects but does not provide explicit guidance on when to use this tool vs alternatives or when not to use it. No exclusions or context for optimal use.

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

TDQS

A3.9/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/vertical-mcp/ntis-mcp'

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