Skip to main content
Glama
pfldy2850

Naver MCP Server

by pfldy2850
README.md
# Naver MCP Server

A server implementation for Naver OpenAPI using the Model Context Protocol (MCP). This project provides tools to interact with various Naver services, such as searching blogs, news, books, and more.


## Pre-requisite
To use the Naver MCP server, you need to apply for access to the Naver Open API. 
You can apply for Open API access at the link below:

https://developers.naver.com/apps/#/register=datalab


## Installation

### from PyPi (Claude Desktop)

Install it to Claude Desktop with (uv):
```sh
uv pip install mcp-naver

uv run python -m mcp-naver.hosts.claude_desktop \
  -e NAVER_CLIENT_ID=<YOUR NAVER CLIENT ID> \
  -e NAVER_CLIENT_SECRET=<YOUR NAVER CLIENT SECRET>
```

Install it to Claude Desktop with:
```sh
pip install mcp-naver

python -m mcp-naver.hosts.claude_desktop \
  -e NAVER_CLIENT_ID=<YOUR NAVER CLIENT ID> \
  -e NAVER_CLIENT_SECRET=<YOUR NAVER CLIENT SECRET>
```


### from PyPi (Cursor)

Install it to Cursor with (uv):
```sh
uv pip install mcp-naver

uv run python -m mcp-naver.hosts.cursor \
  -e NAVER_CLIENT_ID=<YOUR NAVER CLIENT ID> \
  -e NAVER_CLIENT_SECRET=<YOUR NAVER CLIENT SECRET>
```


### from source

```sh
# Clone the repository
git clone https://github.com/pfldy2850/py-mcp-naver.git

# Navigate into the project directory
cd py-mcp-naver

# Synchronize dependencies
uv sync --dev --all-extras
```

Run it with:
```sh
# Start the server (Using FastMCP CLI)
fastmcp install mcp_naver/server.py -e NAVER_CLIENT_ID=<YOUR NAVER CLIENT ID> -e NAVER_CLIENT_SECRET=<YOUR NAVER CLIENT SECRET>
```

The tool sets up everything you need to create an MCP server integrated with Naver OpenAPI.

## Features

This server provides the following tools for interacting with Naver OpenAPI:

- **Blog Search**: Search blog posts on Naver.
- **News Search**: Search news articles on Naver.
- **Book Search**: Search books and advanced book information.
- **Adult Content Check**: Check if a search term is adult content.
- **Encyclopedia Search**: Search encyclopedia entries.
- **Cafe Article Search**: Search articles in Naver cafes.
- **Q&A Search**: Search questions and answers on Naver.
- **Local Search**: Search local information.
- **Spelling Correction**: Correct spelling errors in text.
- **Web Search**: Search web pages.
- **Image Search**: Search images with filters.
- **Shopping Search**: Search shopping items with filters.
- **Document Search**: Search documents.



## Naver MCP Tools

The following tools are implemented in the server:

### Blog Search
Search blog posts on Naver.
```python
search_blog(query: str, display: int = 10, start: int = 1, sort: str = "sim")
```

### News Search
Search news articles on Naver.
```python
search_news(query: str, display: int = 10, start: int = 1, sort: str = "sim")
```

### Book Search
Search books on Naver.
```python
search_book(query: str, display: int = 10, start: int = 1, sort: str = "sim")
```

### Advanced Book Search
Get detailed book information using title or ISBN.
```python
get_book_adv(query: str = None, d_titl: str = None, d_isbn: str = None, ...)
```

### Adult Content Check
Check if a search term is adult content.
```python
adult_check(query: str)
```

### Encyclopedia Search
Search encyclopedia entries on Naver.
```python
search_encyc(query: str, display: int = 10, start: int = 1)
```

### Cafe Article Search
Search articles in Naver cafes.
```python
search_cafe_article(query: str, display: int = 10, start: int = 1, sort: str = "sim")
```

### Q&A Search
Search questions and answers on Naver.
```python
search_kin(query: str, display: int = 10, start: int = 1, sort: str = "sim")
```

### Local Search
Search local information on Naver.
```python
search_local(query: str, display: int = 10, start: int = 1, sort: str = "random")
```

### Spelling Correction
Correct spelling errors in a given text.
```python
fix_spelling(query: str)
```

### Web Search
Search web pages on Naver.
```python
search_webkr(query: str, display: int = 10, start: int = 1)
```

### Image Search
Search images on Naver with filters.
```python
search_image(query: str, display: int = 10, start: int = 1, sort: str = "sim", filter: str = "all")
```

### Shopping Search
Search shopping items on Naver with filters.
```python
search_shop(query: str, display: int = 10, start: int = 1, sort: str = "sim", filter: str = None, exclude: str = None)
```

### Document Search
Search documents on Naver.
```python
search_doc(query: str, display: int = 10, start: int = 1)
```

## License

This project is open source software [licensed as MIT](https://opensource.org/licenses/MIT).

TDQS

C2.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools are clearly separated by search domain (blog, news, book, image, shop, etc.), so an agent can usually pick the right one. Minor ambiguity exists between search_book and get_book_adv, and search_doc vs search_webkr may require interpretation.

Naming Consistency4/5

The dominant pattern is search_<domain>, used consistently across most tools. A few utility/detail tools deviate (get_book_adv, adult_check, fix_spelling), but they remain readable and not chaotic.

Tool Count5/5

14 tools is well within a reasonable range for a search-oriented MCP server. Each tool maps to a distinct Naver search category or small utility, so the count feels well-scoped.

Completeness4/5

The surface covers a broad set of Naver search domains plus adult-content checking and spelling correction. There are minor gaps such as limited detail-fetching beyond books and no obvious movie/other Naver search categories, but core search workflows are covered.

Maintenance

ActivityInactive
ResponsivenessNo issues