项目简介

Markdownify Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于将各种类型的文件和网络内容转换为 Markdown 格式。它通过提供一系列工具,使得 LLM 应用能够方便地获取和处理结构化的 Markdown 文本内容,从而更好地理解和利用非结构化数据。

主要功能点

  • 多种文件格式转换: 支持将 PDF, 图片, 音频 (自动转录), DOCX, XLSX, PPTX 等多种文件格式转换为 Markdown。
  • 网页内容抓取与转换: 可以将 YouTube 视频的文字稿、Bing 搜索结果和普通网页内容转换为 Markdown。
  • 本地 Markdown 文件读取: 能够读取服务器本地已有的 Markdown 文件内容。
  • 工具化调用: 所有转换功能都以独立工具的形式提供,方便 MCP 客户端按需调用。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/elmozapanta/compound
    cd compound
  2. 安装依赖:
    pnpm install
    • 此命令将安装项目依赖,包括 'uv' 和相关的 Python 依赖。'uv' 是项目依赖的外部工具,用于执行文件格式转换。
  3. 构建项目:
    pnpm run build
  4. 启动服务器:
    pnpm start

服务器配置

为了让 MCP 客户端能够连接到 Markdownify Server,需要在客户端的服务器配置中添加以下信息。请注意,您需要将 '{ABSOLUTE PATH TO FILE HERE}' 替换为 'compound' 仓库 'dist/index.js' 文件的绝对路径。

{
  "mcpServers": {
    "markdownify": {
      "command": "node",
      "args": [
        "{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
      ],
      "env": {
        // 'UV_PATH' 环境变量用于指定 'uv' 工具的路径。
        // 默认情况下,服务器会尝试使用 'uv' 的默认安装位置。
        // 如果您的 'uv' 安装在非默认路径,请在此处指定正确的路径。
        "UV_PATH": "/path/to/uv"
      }
    }
  }
}

配置参数说明:

  • 'server name': 'markdownify' (服务器名称,客户端据此名称引用该服务器)
  • 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行 JavaScript 文件)
  • 'args': '["{ABSOLUTE PATH TO FILE HERE}/dist/index.js"]' (命令参数,指向服务器入口文件 'dist/index.js' 的绝对路径)
  • 'env': '{ "UV_PATH": "/path/to/uv" }' (环境变量配置,'UV_PATH' 用于指定 'uv' 工具的路径)

基本使用方法

  1. 启动 Markdownify Server: 按照上述安装步骤启动服务器。

  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,根据上述 “服务器配置” 部分的说明,配置 Markdownify Server 连接信息。

  3. 调用工具: 客户端成功连接服务器后,即可调用服务器提供的工具。可用的工具包括:

    • 'youtube-to-markdown': 转换 YouTube 视频为 Markdown
    • 'pdf-to-markdown': 转换 PDF 文件为 Markdown
    • 'bing-search-to-markdown': 转换 Bing 搜索结果为 Markdown
    • 'webpage-to-markdown': 转换网页为 Markdown
    • 'image-to-markdown': 转换图片为 Markdown (包含元数据)
    • 'audio-to-markdown': 转换音频文件为 Markdown (包含转录)
    • 'docx-to-markdown': 转换 DOCX 文件为 Markdown
    • 'xlsx-to-markdown': 转换 XLSX 文件为 Markdown
    • 'pptx-to-markdown': 转换 PPTX 文件为 Markdown
    • 'get-markdown-file': 获取本地 Markdown 文件

    调用工具时,请参考 'src/tools.ts' 文件中定义的工具参数,例如 'pdf-to-markdown' 工具需要提供 PDF 文件的绝对路径 'filepath'。

信息

分类

生产力应用