Skip to main content
Glama
Tech-curator

Korean Patent MCP

by Tech-curator
README.md
# ๐Ÿ‡ฐ๐Ÿ‡ท Korean Patent MCP

> **[ํ•œ๊ตญ์–ด ๋ฌธ์„œ๋Š” ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค](#-๊ธฐ๋Šฅ) / Korean documentation below**

MCP (Model Context Protocol) server for KIPRIS (Korean Intellectual Property Rights Information Service) API.

## English Documentation

### Overview

This MCP server enables AI assistants (Claude Desktop, Cursor, Windsurf, etc.) to search and analyze Korean patents through natural language queries. It connects to the official KIPRIS Plus Open API provided by the Korean Intellectual Property Office (KIPO).

### Features

| Tool | Description |
|------|-------------|
| `kipris_search_patents` | Search patents by applicant name |
| `kipris_get_patent_detail` | Get detailed patent information by application number |
| `kipris_get_citing_patents` | Find patents that cite a specific patent |

### Quick Start

```bash
# Install via Smithery (recommended)
npx -y @smithery/cli install korean-patent-mcp --client claude

# Or install via uv
uv pip install git+https://github.com/Tech-curator/korean-patent-mcp.git
```

### Requirements

- Python 3.10+
- KIPRIS Plus Open API Key ([Get your key here](https://plus.kipris.or.kr))

### Configuration

Set the `KIPRIS_API_KEY` environment variable:

```bash
export KIPRIS_API_KEY="your_api_key_here"
```

Or add to your MCP client configuration:

```json
{
  "mcpServers": {
    "korean-patent": {
      "command": "uv",
      "args": ["run", "korean-patent-mcp"],
      "env": {
        "KIPRIS_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Example Queries

- "Search for Samsung Electronics' registered patents"
- "Get details for patent application number 1020200123456"
- "Find patents that cite application 1020180056789"

---

## ํ•œ๊ตญ์–ด ๋ฌธ์„œ

ํ•œ๊ตญ ํŠนํ—ˆ์ •๋ณด ๊ฒ€์ƒ‰์„œ๋น„์Šค(KIPRIS) API๋ฅผ ์œ„ํ•œ MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

Claude Desktop, Cursor, Windsurf ๋˜๋Š” ๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๋™ํ•˜์—ฌ ์ž์—ฐ์–ด๋กœ ํ•œ๊ตญ ํŠนํ—ˆ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[![Smithery](https://smithery.ai/badge/korean-patent-mcp)](https://smithery.ai/server/korean-patent-mcp)

## โœจ ๊ธฐ๋Šฅ

### Core Tools

| Tool | ์„ค๋ช… |
|------|------|
| `kipris_search_patents` | ์ถœ์›์ธ๋ช…์œผ๋กœ ํŠนํ—ˆ ๊ฒ€์ƒ‰ |
| `kipris_get_patent_detail` | ์ถœ์›๋ฒˆํ˜ธ๋กœ ํŠนํ—ˆ ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ |
| `kipris_get_citing_patents` | ํŠน์ • ํŠนํ—ˆ๋ฅผ ์ธ์šฉํ•œ ํ›„ํ–‰ ํŠนํ—ˆ ์กฐํšŒ |

### Extended Tools (ํ–ฅํ›„ ๊ตฌํ˜„ ์˜ˆ์ •)

- [ ] `kipris_get_cpc_codes` - CPC ๋ถ„๋ฅ˜ ์ฝ”๋“œ ์กฐํšŒ
- [ ] `kipris_get_inventors` - ๋ฐœ๋ช…์ž ์ •๋ณด ์กฐํšŒ
- [ ] `kipris_check_rejection` - ๊ฑฐ์ ˆ ์—ฌ๋ถ€ ํ™•์ธ
- [ ] `kipris_analyze_rejection_reason` - ๊ฑฐ์ ˆ ์‚ฌ์œ  ๋ถ„์„

## ๐Ÿš€ ์„ค์น˜ ๋ฐฉ๋ฒ•

### ๋ฐฉ๋ฒ• 1: Smithery๋ฅผ ํ†ตํ•œ ์„ค์น˜ (๊ถŒ์žฅ)

```bash
# Smithery CLI ์„ค์น˜ (์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ)
npm install -g @smithery/cli

# Korean Patent MCP ์„œ๋ฒ„ ์„ค์น˜
smithery install korean-patent-mcp --client claude
```

### ๋ฐฉ๋ฒ• 2: uv๋ฅผ ์‚ฌ์šฉํ•œ ๋กœ์ปฌ ์„ค์น˜

```bash
# ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/khreat/korean-patent-mcp.git
cd korean-patent-mcp

# uv๋กœ ์„ค์น˜ (๊ถŒ์žฅ)
uv pip install -e .

# ๋˜๋Š” pip์œผ๋กœ ์„ค์น˜
pip install -e .
```

### ์š”๊ตฌ์‚ฌํ•ญ

- Python 3.10+
- KIPRIS Plus Open API ํ‚ค ([๋ฐœ๊ธ‰ ์‚ฌ์ดํŠธ](https://plus.kipris.or.kr))

## ๐Ÿ”ง ์„ค์ •

### API ํ‚ค ์„ค์ •

`.env` ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

```bash
echo "KIPRIS_API_KEY=your_api_key_here" > .env
```

๋˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์„ค์ •:

```bash
export KIPRIS_API_KEY="your_api_key_here"
```

## ๐Ÿ”Œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๋™

### Claude Desktop

`~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ๋˜๋Š” 
`%APPDATA%\Claude\claude_desktop_config.json` (Windows) ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค:

```json
{
  "mcpServers": {
    "korean-patent": {
      "command": "uv",
      "args": ["run", "korean-patent-mcp"],
      "env": {
        "KIPRIS_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Cursor / Windsurf

MCP ์„ค์ •์—์„œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

```json
{
  "korean-patent": {
    "command": "uv",
    "args": ["run", "korean-patent-mcp"],
    "env": {
      "KIPRIS_API_KEY": "your_api_key_here"
    }
  }
}
```

## ๐Ÿ“– ์‚ฌ์šฉ ์˜ˆ์‹œ

Claude Desktop์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

### ํŠนํ—ˆ ๊ฒ€์ƒ‰
```
์‚ผ์„ฑ์ „์ž๊ฐ€ ์ถœ์›ํ•œ ํŠนํ—ˆ ์ค‘ ๋“ฑ๋ก๋œ ๊ฒƒ๋“ค์„ ๋ณด์—ฌ์ค˜
```

```
์ถฉ๋ถ๋Œ€ํ•™๊ต ์‚ฐํ•™ํ˜‘๋ ฅ๋‹จ์˜ ์ตœ๊ทผ ํŠนํ—ˆ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์ค˜
```

### ํŠนํ—ˆ ์ƒ์„ธ ์ •๋ณด
```
์ถœ์›๋ฒˆํ˜ธ 1020200123456์˜ ํŠนํ—ˆ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ค˜
```

### ์ธ์šฉ ํŠนํ—ˆ ๋ถ„์„
```
์ถœ์›๋ฒˆํ˜ธ 1020180056789๋ฅผ ์ธ์šฉํ•œ ํŠนํ—ˆ๋“ค์„ ์ฐพ์•„์ค˜
```

## ๐Ÿงช ๊ฐœ๋ฐœ & ํ…Œ์ŠคํŠธ

### MCP Inspector๋กœ ํ…Œ์ŠคํŠธ

```bash
npx @modelcontextprotocol/inspector uv run korean-patent-mcp
```

### Smithery Dev ๋ชจ๋“œ

```bash
smithery dev
```

## ๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

```
korean-patent-mcp/
โ”œโ”€โ”€ pyproject.toml          # ํŒจํ‚ค์ง€ ์„ค์ • (uv/pip ํ˜ธํ™˜)
โ”œโ”€โ”€ smithery.yaml           # Smithery ๋ฐฐํฌ ์„ค์ •
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ .env.example
โ””โ”€โ”€ src/
    โ””โ”€โ”€ korean_patent_mcp/
        โ”œโ”€โ”€ __init__.py
        โ”œโ”€โ”€ server.py       # MCP ์„œ๋ฒ„ & Tool ์ •์˜
        โ””โ”€โ”€ kipris_api.py   # KIPRIS API ํด๋ผ์ด์–ธํŠธ
```

## ๐Ÿ” API ์‘๋‹ต ํ˜•์‹

๋ชจ๋“  Tool์€ `response_format` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

- `markdown` (๊ธฐ๋ณธ๊ฐ’): ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์ข‹์€ ํ˜•์‹
- `json`: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ๊ตฌ์กฐํ™”๋œ ํ˜•์‹

## โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

- KIPRIS API๋Š” ํ˜ธ์ถœ ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
- ๋Œ€๋Ÿ‰ ๊ฒ€์ƒ‰ ์‹œ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ํ™œ์šฉํ•˜์„ธ์š”
- API ํ‚ค๋Š” ์ ˆ๋Œ€ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•˜์ง€ ๋งˆ์„ธ์š”

## ๐Ÿ“ ๋ผ์ด์„ ์Šค

MIT License

## ๐Ÿค ๊ธฐ์—ฌ

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ, ๊ธฐ๋Šฅ ์ œ์•ˆ, PR ๋ชจ๋‘ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

## ๐Ÿ“ž Contact

- **Tech Curator**: [https://techcurator.kr](https://techcurator.kr)
- **DiME**: [https://www.dime.kr](https://www.dime.kr)
- **E-mail**: jkh25@techcurator.kr / ceo@techcurator.kr
---

Made with โค๏ธ for Korean patent research

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: one retrieves patents citing a specific patent, another gets detailed information for a single patent, and the third searches patents by applicant name. The descriptions clearly differentiate these functions, making tool selection unambiguous for an agent.

Naming Consistency5/5

All tool names follow a consistent 'kipris_verb_noun' pattern (kipris_get_citing_patents, kipris_get_patent_detail, kipris_search_patents). This uniform naming convention makes the tool set predictable and easy to understand, with no deviations in style or structure.

Tool Count3/5

With only 3 tools, the set feels thin for a patent domain that typically involves more operations like updating, deleting, or analyzing patents. While the tools cover basic retrieval and search, the count is borderline low for comprehensive patent management, limiting agent capabilities.

Completeness2/5

The tool surface has significant gaps for a patent server, lacking essential operations such as creating, updating, or deleting patents, as well as advanced features like patent analysis or filtering by other criteria. This incompleteness will likely cause agent failures in handling full patent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues