PDF to PNG MCP Server

项目简介

这是一个基于Model Context Protocol (MCP) 的服务器,专门用于将PDF文档转换为PNG图片。通过注册为MCP服务器,它可以为支持MCP协议的LLM客户端(如 Claude Desktop)提供 PDF 转 PNG 的工具能力,使得LLM可以调用该工具处理PDF文件。

主要功能点

  • PDF to PNG 转换: 核心功能是将PDF文档的每一页转换为单独的PNG图片。
  • MCP 工具接口: 通过标准的MCP协议的工具调用接口 'pdf2png' 提供转换功能。
  • 文件路径参数: 工具接受 PDF 文件路径和 PNG 图片输出目录路径作为参数。
  • 简单的文本结果: 工具执行成功后返回转换成功的消息和 PNG 图片的输出目录。

安装步骤

  1. 克隆仓库: 从 GitHub 克隆 'mcp-Pdf2png' 仓库到本地:

    git clone https://github.com/truaxki/mcp-Pdf2png.git
    cd mcp-Pdf2png
  2. 安装 Poppler: 'pdf2image' 库依赖 'poppler',需要先安装它。根据你的操作系统选择安装方式:

    • Windows: 访问 poppler-windows 下载并安装。
    • macOS: 使用 Homebrew 安装:'brew install poppler'
    • Linux: 使用 apt-get 安装:'sudo apt-get install poppler-utils'
  3. 创建虚拟环境并安装依赖: 使用 'uv' 创建虚拟环境并安装项目依赖:

    uv venv
    # 激活虚拟环境
    # Windows
    .venv\Scripts\activate
    # Unix/macOS
    source .venv/bin/activate
    uv pip install -e .

服务器配置

要将此 MCP 服务器添加到 MCP 客户端(例如 Claude Desktop),你需要编辑客户端的配置文件 'claude_desktop_config.json',通常位于以下路径:

  • Windows: '%APPDATA%\Claude Desktop\config\claude_desktop_config.json'
  • macOS/Linux: '~/.config/Claude Desktop/config/claude_desktop_config.json'

在 'mcpServers' 字段下添加如下配置,将 'pdf2png' 服务器注册到客户端:

{
  "mcpServers": {
    "pdf2png": { # 服务器名称,客户端用此名称引用
      "command": "uv", # 启动服务器的命令,这里使用 uv
      "args": [ # 启动参数
        "--directory", # 指定工作目录
        "/absolute/path/to/mcp-Pdf2png", #  替换为 mcp-Pdf2png 仓库的绝对路径
        "run", # uv run 命令用于运行 Python 模块
        "pdf2png" #  运行 pdf2png 包,__init__.py 中定义了 main 入口
      ]
    }
  }
}

注意: 请将 '/absolute/path/to/mcp-Pdf2png' 替换为你本地 'mcp-Pdf2png' 仓库的实际绝对路径。

基本使用方法

配置完成后,MCP 客户端应该能够检测到名为 'pdf2png' 的服务器。你可以指示 LLM 客户端调用 'pdf2png' 工具来将 PDF 转换为 PNG 图片。

'pdf2png' 工具接受以下参数:

  • 'read_file_path': 要转换的 PDF 文件的绝对路径
  • 'write_folder_path': PNG 图片输出目录的绝对路径

工具执行后,PNG 图片将保存在指定的输出目录中,文件名为 'page_1.png', 'page_2.png' 等。服务器会返回一个包含成功消息的文本内容。

例如,在 Claude Desktop 中,你可以指示 Claude 调用该工具,例如:

请帮我把这个PDF文件转换为PNG图片,PDF文件路径是 /path/to/input.pdf,输出目录是 /path/to/output_folder。

LLM 客户端会解析你的指令,并调用 'pdf2png' 工具,并将 '/path/to/input.pdf' 作为 'read_file_path','/path/to/output_folder' 作为 'write_folder_path' 传递给服务器。服务器执行转换后,会将结果返回给 LLM 客户端。

信息

分类

开发者工具