项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过标准化的接口,为大型语言模型 (LLM) 客户端提供访问 Naver 搜索 API 的能力。它允许 LLM 调用工具执行搜索操作,并获取结构化的搜索结果作为上下文信息。

主要功能点

  • 多种搜索类别: 支持搜索 Naver 上的博客、新闻、书籍、图片、购物商品、百科、知识iN、本地信息等。
  • 分页支持: 大部分搜索工具支持通过指定页码 ('page') 和每页显示数量 ('display') 进行结果分页。
  • 结构化响应: 将 Naver API 返回的原始数据格式化为对 LLM 更友好的结构化文本格式。
  • 实用工具: 包含检查搜索词是否为成人内容 ('check_adult_query') 和校正键盘输入错误 ('correct_errata') 的工具。
  • 能力声明: 通过 MCP 协议声明可用的搜索类别资源和各项搜索工具。

安装步骤

  1. 前提条件:
    • Python 3.12 或更高版本。
    • Naver Developer API 凭据(Client ID 和 Client Secret)。请前往 Naver Developers 注册获取。
  2. 克隆仓库:
    git clone https://github.com/jikime/py-mcp-naver-search.git
    cd py-mcp-naver-search
  3. 安装 uv (推荐):
    curl -LsSf https://astral.sh/uv/install.sh | sh
    如果您不想使用 'uv',也可以直接使用 'python -m venv .venv' 和 'pip install -r requirements.txt'。
  4. 创建并激活虚拟环境:
    uv venv -p 3.12 # 或 python -m venv .venv
    source .venv/bin/activate
  5. 安装依赖:
    pip install -r requirements.txt
  6. 配置 Naver API 凭据:
    • 复制 '.env.example' 文件为 '.env'。
    cp env.example .env
    • 编辑 '.env' 文件,填入您的 Naver Client ID 和 Client Secret。
    NAVER_CLIENT_ID=您的Client ID
    NAVER_CLIENT_SECRET=您的Client Secret

服务器配置 (供 MCP 客户端使用)

MCP 服务器通常由 MCP 客户端(如支持 MCP 的 AI 应用或 IDE)启动和管理。您需要在您的 MCP 客户端的配置文件中添加以下配置,以告知客户端如何启动和连接到此服务器。

典型的 MCP 客户端配置文件(JSON 格式)会有一个 'mcpServers' 部分。请根据您的客户端类型(例如,Claude 桌面应用、Cursor IDE)将以下配置添加到 'mcpServers' 对象中。

{
  "mcpServers": {
    "Naver Search": {
      "command": "uv",  // 或您环境中 Python 解释器的路径,如 "/path/to/your/python3.12"
      "args": [
        "--directory",
        "/path/to/py-mcp-naver-search",  // 将此路径替换为您实际克隆仓库的目录路径
        "run",
        "server.py"
      ]
      // 如果使用 Docker:
      // "command": "docker",
      // "args": [
      //   "run",
      //   "-i",
      //   "--rm",
      //   "py-mcp-naver-search" // 您的 Docker 镜像名称
      // ]
    }
    // 其他 MCP 服务器配置...
  }
}
  • 将 '"command"' 设置为 'uv' 或您的 Python 解释器路径。
  • 将 '"/path/to/py-mcp-naver-search"' 替换为您克隆本项目的实际目录路径。
  • 'args' 参数告诉 'uv' 或 Python 解释器在指定目录下运行 'server.py' 文件。
  • 如果使用 Docker 部署,请使用 Docker 的 'command' 和 'args' 配置(需要先构建 Docker 镜像)。

配置完成后,您的 MCP 客户端即可识别并使用此 Naver 搜索 MCP 服务器提供的能力。

基本使用方法

一旦服务器被 MCP 客户端成功配置并启动,LLM 即可通过 MCP 协议调用服务器暴露的 Tools。例如,LLM 可以调用名为 'search_blog' 的 Tool 来搜索博客文章,调用 'search_news' 来搜索新闻等,并指定 'query'、'display'、'page' 等参数。

本项目也提供了一个简单的客户端脚本 ('client.py') 用于测试:

  1. 确保您已激活虚拟环境 ('source .venv/bin/activate')。

  2. 使用以下命令格式运行客户端:

    uv run client.py <category> <query> [param1=value1] [param2=value2] ...
    • '<category>': 搜索类别,如 'blog', 'news', 'shop', 'image', 'errata' 等。
    • '<query>': 搜索关键词。如果包含空格,请使用引号括起来。
    • '[param=value]': 可选参数,如 'display=10', 'page=1', 'sort=date', 'filter=large' 等,根据不同 Tool 支持的参数填写。

    示例:

    uv run client.py blog "Python MCP" display=5 page=1
    uv run client.py news AI sort=date
    uv run client.py errata "spdlqj"

    客户端将启动服务器(如果尚未运行),调用相应的 Tool,并打印返回的结构化文本结果。

信息

分类

网页与API