NA

NAVER MCP Server for Blog, News, Books Search

Search Naver blogs, news, books and more with this MCP server offering easy tools and API access for fast, customizable queries.

Quick Install
npx -y @pfldy2850/py-mcp-naver

Overview

This MCP (Model Context Protocol) server wraps Naver Search APIs to provide programmatic access to blog posts, news articles, books and other Naver search resources as tools that can be invoked by LLMs or client applications. Instead of directly calling the raw Naver endpoints from application code, the server exposes a small set of well-documented HTTP endpoints and MCP-style tool definitions that make it easier to integrate live Korean search results into conversational agents, pipelines, or search microservices.

The server is useful when you need up-to-date web content (blogs, news, books) to enrich model context, implement retrieval-augmented generation (RAG), or build search-driven features in Korean language scenarios. It centralizes authentication, rate-limiting considerations, and response formatting so client code and LLM tool integrations remain simple and consistent.

Features

  • Easy-to-deploy HTTP server that proxies and formats Naver Search results
  • Tool-style endpoints tailored for MCP/LLM tool invocation
  • Support for common Naver search types: blogs, news, books (and extendable)
  • Query parameter passthrough (q, display, start, sort, etc.) with sane defaults
  • JSON responses formatted for use as model context or downstream processing
  • Example client snippets (curl / Python) for quick integration
  • Docker-friendly for containerized deployment

Installation / Configuration

Clone the repository and install dependencies:

git clone https://github.com/pfldy2850/py-mcp-naver.git
cd py-mcp-naver
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Set your Naver API credentials and optional server settings using environment variables:

export NAVER_CLIENT_ID="your_client_id"
export NAVER_CLIENT_SECRET="your_client_secret"
# optional
export MCP_SERVER_HOST="0.0.0.0"
export MCP_SERVER_PORT="8080"

Run the server (example using uvicorn):

uvicorn app:app --host ${MCP_SERVER_HOST:-0.0.0.0} --port ${MCP_SERVER_PORT:-8080}

Or build and run with Docker:

docker build -t py-mcp-naver .
docker run -e NAVER_CLIENT_ID -e NAVER_CLIENT_SECRET -p 8080:8080 py-mcp-naver

Important: obtain Naver Search API credentials from Naver Developers and keep credentials private (do not commit them to source control).

Available Tools / Resources

The server exposes HTTP endpoints that correspond to Naver search categories. Typical endpoints and accepted query parameters:

EndpointPurposeCommon Query Parameters
/search/blogSearch Naver blogsq, display, start, sort
/search/newsSearch news articlesq, display, start, sort
/search/bookSearch booksq, display, start, d_isbn (optional)
/mcp/toolsReturns tool metadata for MCP integration

Example: GET /search/blog?q={query}&display=10

Each endpoint returns JSON formatted search items plus metadata (total results, start index, display count). The /mcp/tools endpoint can be used by tool managers to register the available tools for LLM frameworks that support MCP.

API Examples

Curl: simple blog search

curl -G "http://localhost:8080/search/blog" \
  --data-urlencode "q=머신러닝 입문" \
  --data-urlencode "display=5"

Python: call a search endpoint

import requests

resp = requests.get(
    "http://localhost:8080/search/news",
    params={"q": "인공지능 정책", "display": 3}
)
resp.raise_for_status()
results = resp.json()
print(results)

Tool metadata (MCP) example (returned by /mcp/tools):

[
  {
    "name": "naver_blog_search",
    "description": "Search Naver blogs",
    "endpoint": "/search/blog",
    "method": "GET",
    "params": ["q", "display", "start", "sort"]
  }
]

Use Cases

  • Augment conversational agents: When an LLM needs current facts or local-language sources, use the news or blog tools to fetch citations and provide grounded answers.
  • Retrieval-augmented generation (RAG): Use the book and blog endpoints as retrievers to fetch candidate passages, then summarize or answer questions using an LLM with retrieved context.
  • Search-driven features for Korean apps: Expose a lightweight search API for product features (e.g., “latest industry news”, “related blog posts”, “book metadata”) without embedding Naver credentials in many services.
  • Tool orchestration for LLMs: Register the provided MCP tool metadata with an LLM orchestration layer so the model can call the appropriate search tool when it needs external information.

Tips and Notes

  • Parameter mapping: The server passes common Naver parameters (q, display, start, sort) through to the Naver API. Check Naver’s documentation for allowed values and limits.
  • Rate limits and quotas: Naver APIs enforce quotas. Add caching or result pagination handling in your application to avoid hitting limits.
  • Security: Always run the server behind appropriate network controls if you expose it publicly. Keep NAVER_CLIENT_ID and NAVER_CLIENT_SECRET out of source control.
  • Extensibility: The codebase is intended to be extended — add more Naver endpoints or custom formatting to suit your application’s needs.

For more details and examples, consult the repository on GitHub: https://github.com/pfldy2850/py-mcp-naver.

Tags:search

Common Issues & Solutions

The MCP server is listed on Glama but cannot be accessed by users due to the absence of a Dockerfile.

✓ Solution

I ran into this too! It’s frustrating when your server isn’t available for others because of a missing Dockerfile. Installing `@ChromeDevTools/chrome-devtools-mcp` really helped me resolve this issue by providing the necessary tools to create and manage the Dockerfile effectively. After installation, I was able to easily add the Dockerfile and ensure compliance with the required checks. Don't forget to run the following command to get started: npm install @ChromeDevTools/chrome-devtools-mcp

npm install @ChromeDevTools/chrome-devtools-mcp