项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于集成 Naver OpenAPI。它将 Naver 提供的各种搜索 API (如博客搜索、新闻搜索、图书搜索等) 封装成 MCP 工具,使得支持 MCP 协议的 LLM 客户端能够通过标准的 JSON-RPC 协议调用这些工具,从而便捷地获取 Naver 平台上的信息。

主要功能点

  • 提供丰富的 Naver 搜索工具: 包括博客、新闻、图书、百科、 카페 文章、问答、本地信息、网站、图片、购物、文档等多种搜索功能。
  • 基于 FastMCP 框架: 使用 FastMCP 这一 Python MCP 框架简化了服务器的开发和部署。
  • 易于安装和运行: 提供了简单的安装和运行命令,方便用户快速启动服务。
  • 支持 OpenAPI 密钥配置: 通过环境变量 'NAVER_CLIENT_ID' 和 'NAVER_CLIENT_SECRET' 管理 Naver OpenAPI 的密钥,保证安全性。

安装步骤

  1. 克隆仓库

    git clone https://github.com/pfldy2850/py-mcp-naver.git
    cd py-mcp-naver
  2. 安装依赖 建议使用 'uv' (或者 'pip') 管理 Python 依赖。

    uv sync --dev --all-extras  # 推荐使用 uv,如果使用 pip,请替换为 pip install -r requirements.txt

    如果 'uv' 未安装,请先安装 'uv': 'pip install uv'

  3. 配置 Naver OpenAPI 密钥 你需要申请 Naver OpenAPI 的 Client ID 和 Client Secret。申请地址可以在 Naver Developer Center 找到。 获取密钥后,将其设置为环境变量:

    export NAVER_CLIENT_ID="YOUR_NAVER_CLIENT_ID"
    export NAVER_CLIENT_SECRET="YOUR_NAVER_CLIENT_SECRET"

    请将 'YOUR_NAVER_CLIENT_ID' 和 'YOUR_NAVER_CLIENT_SECRET' 替换为你实际的密钥。

服务器配置 (MCP 客户端配置)

以下 JSON 配置信息用于 MCP 客户端连接此 MCP 服务器。客户端需要配置 'command' 和 'args' 来启动服务器进程。

{
  "server name": "Naver MCP Server",
  "command": "python",
  "args": ["src/server.py"]
  // "command": "uv",  // 或者使用 uv 运行
  // "args": ["run", "python", "src/server.py"] // 使用 uv 运行时的参数
}

配置参数说明:

  • '"server name"': 服务器的名称,可以自定义,用于在客户端标识服务器。
  • '"command"': 启动服务器的命令。这里设置为 'python',表示使用 Python 解释器。你也可以根据你的环境设置为 'python3' 或指定 Python 解释器的完整路径。如果使用 'uv run' 启动,则设置为 '"uv"'。
  • '"args"': 传递给启动命令的参数,以列表形式提供。
    • '["src/server.py"]': 指定要运行的 Python 脚本为 'src/server.py'。如果使用 'uv run',则为 '["run", "python", "src/server.py"]'。

注意: MCP 客户端需要能够找到 'python' 命令以及项目依赖的环境。建议在与 MCP 客户端相同的环境中安装和运行此 MCP 服务器。

基本使用方法

  1. 启动 MCP 服务器: 根据上述 "服务器配置" 中的 'command' 和 'args',通过 MCP 客户端启动服务器。客户端会负责运行 'python src/server.py' (或 'uv run python src/server.py') 命令来启动 Naver MCP Server。

  2. 在 MCP 客户端中使用工具: 服务器成功启动后,MCP 客户端可以向服务器发送符合 MCP 协议的 JSON-RPC 请求,调用预定义的工具。

    例如,要使用 'search_blog' 工具搜索关键词 "맛집",客户端需要构造一个 JSON-RPC 请求,指定方法名为 'search_blog',并提供参数 'query: "맛집"'。服务器会将请求转发给 Naver Blog Search API,并将结果以 JSON-RPC 响应的形式返回给客户端。

    具体的工具名称和参数可以参考 'README.md' 或 'src/server.py' 文件中 '@mcp.tool' 装饰器定义的函数签名和描述。

  3. 查看日志: 服务器的运行日志 (例如错误信息) 通常会在启动服务器的终端或 MCP 客户端的日志中显示。

环境变量

  • 'NAVER_CLIENT_ID': Naver OpenAPI Client ID (必须配置)
  • 'NAVER_CLIENT_SECRET': Naver OpenAPI Client Secret (必须配置)

信息

分类

网页与API