Markdownify MCP Server 使用说明

项目简介

Markdownify MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供文档和网页内容到 Markdown 格式的转换服务。它通过注册一系列工具,允许 LLM 客户端调用这些工具,将 PDF、图片、音频、Office 文档以及网页内容(包括 YouTube 视频、Bing 搜索结果、普通网页)转换为 Markdown 文本。

主要功能点

  • 多格式文件转 Markdown: 支持 PDF, 图片, 音频 (带转录), DOCX, XLSX, PPTX 等多种文件格式转换为 Markdown。
  • 网页内容转 Markdown: 支持 YouTube 视频转录, Bing 搜索结果, 普通网页等网页内容转换为 Markdown。
  • 获取 Markdown 文件: 提供工具用于检索已存在的 Markdown 文件内容。
  • 标准 MCP 协议: 遵循 MCP 协议标准,易于集成到任何支持 MCP 协议的 LLM 客户端。

安装步骤

  1. 克隆仓库
    git clone https://github.com/briannaluna17/grew
    cd grew
  2. 安装依赖
    pnpm install
    这个命令会安装项目依赖,包括 'uv' 和相关的 Python 依赖。
  3. 构建项目
    pnpm run build
  4. 启动服务器
    pnpm start
    服务器默认通过 Stdio 传输协议运行。

服务器配置

要将 Markdownify MCP Server 集成到 MCP 客户端,您需要在客户端的服务器配置中添加以下 JSON 配置。这个配置告诉 MCP 客户端如何启动和连接到 Markdownify 服务器。

{
  "mcpServers": {
    "markdownify": {  // 服务器名称,客户端用此名称引用
      "command": "node", // 启动服务器的命令,这里使用 node.js 运行
      "args": [
        "{ABSOLUTE PATH TO FILE HERE}/dist/index.js" // 服务器入口文件 index.js 的绝对路径,**请替换为实际路径**
      ],
      "env": {
        "UV_PATH": "/path/to/uv" // uv 执行文件的路径,如果 uv 不在默认路径,需要指定,**请替换为实际 uv 路径**
      }
    }
  }
}

配置参数说明:

  • 'mcpServers': 定义 MCP 服务器的配置。
  • 'markdownify': 为该服务器定义的名称,客户端将使用 "markdownify" 来引用此服务器。
  • 'command': 启动服务器的命令,这里是 'node',表示使用 Node.js 运行时。
  • 'args': 传递给 'command' 的参数数组。
    • '{ABSOLUTE PATH TO FILE HERE}/dist/index.js': 必须替换为 'dist/index.js' 文件在您本地文件系统中的绝对路径。 这是 Markdownify 服务器的入口文件。
  • 'env': 设置环境变量。
    • 'UV_PATH': 可选配置,但如果 'uv' 不在系统的默认可执行路径中,则需要指定 'uv' 的绝对路径。 'uv' 是项目依赖的 Python 环境管理工具,用于执行 Markdown 转换。

重要提示:

  • 绝对路径: 配置文件中的 '{ABSOLUTE PATH TO FILE HERE}/dist/index.js' 和 '/path/to/uv' 必须替换为实际的绝对路径。您需要根据您的项目存放位置和 'uv' 的安装位置进行修改。
  • uv 路径: 如果您的 'uv' 可执行文件不在 '/usr/local/bin' 或 '/usr/bin' 等默认路径下,您需要通过 'UV_PATH' 环境变量显式指定其路径。通常 'pnpm install' 会自动安装 'uv' 到用户本地目录,例如 '~/.local/bin/uv',请根据实际情况配置。

基本使用方法

配置完成后,在 MCP 客户端中,您可以通过 "markdownify" 这个服务器名称来调用其提供的工具。例如,要将一个本地 PDF 文件转换为 Markdown,您可以调用 'pdf-to-markdown' 工具,并提供 PDF 文件的绝对路径作为参数。

可用工具列表 (Tool Names):

  • 'youtube-to-markdown': 将 YouTube 视频转换为 Markdown (包括转录,如果可用)。需要 'url' 参数 (YouTube 视频 URL)。
  • 'pdf-to-markdown': 将 PDF 文件转换为 Markdown。需要 'filepath' 参数 (PDF 文件绝对路径)。
  • 'bing-search-to-markdown': 将 Bing 搜索结果页面转换为 Markdown。需要 'url' 参数 (Bing 搜索结果页面 URL)。
  • 'webpage-to-markdown': 将网页转换为 Markdown。需要 'url' 参数 (网页 URL)。
  • 'image-to-markdown': 将图片转换为 Markdown (包括元数据和描述)。需要 'filepath' 参数 (图片文件绝对路径)。
  • 'audio-to-markdown': 将音频文件转换为 Markdown (包括转录,如果可能)。需要 'filepath' 参数 (音频文件绝对路径)。
  • 'docx-to-markdown': 将 DOCX 文件转换为 Markdown。需要 'filepath' 参数 (DOCX 文件绝对路径)。
  • 'xlsx-to-markdown': 将 XLSX 文件转换为 Markdown。需要 'filepath' 参数 (XLSX 文件绝对路径)。
  • 'pptx-to-markdown': 将 PPTX 文件转换为 Markdown。需要 'filepath' 参数 (PPTX 文件绝对路径)。
  • 'get-markdown-file': 获取指定路径的 Markdown 文件内容。需要 'filepath' 参数 (Markdown 文件绝对路径)。

示例:客户端调用 'pdf-to-markdown' 工具的请求 (JSON-RPC Request)

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "server_name": "markdownify",
    "tool_name": "pdf-to-markdown",
    "arguments": {
      "filepath": "/path/to/your/document.pdf"  // 替换为实际 PDF 文件路径
    }
  },
  "id": "123"
}

请根据您的 MCP 客户端的具体使用方式,构建相应的 JSON-RPC 请求来调用 Markdownify MCP Server 提供的工具。

信息

分类

生产力应用