Markdownify Server

Markdownify Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于将各种类型的文件和网络内容转换为 Markdown 格式。它旨在为大型语言模型(LLM)客户端提供便捷的内容转换能力,使得 LLM 可以轻松处理和理解非结构化数据。

主要功能点:

  • 多格式文件转换: 支持将 PDF、图片、音频、DOCX、XLSX 和 PPTX 文件转换为 Markdown 文本。音频文件转换还支持转录功能。
  • 网页内容抓取与转换: 能够抓取 YouTube 视频的文字稿、Bing 搜索结果以及普通网页内容,并将其转换为 Markdown 格式。
  • 本地 Markdown 文件读取: 允许客户端通过服务器读取已存在的 Markdown 文件。

安装步骤:

  1. 克隆仓库: 首先,将 GitHub 仓库 'elmozapanta/nine' 克隆到本地。
    git clone https://github.com/elmozapanta/nine
    cd nine
  2. 安装依赖: 使用 'pnpm' 包管理器安装项目依赖。这将同时安装 'uv' 和相关的 Python 依赖。
    pnpm install
  3. 构建项目: 构建 TypeScript 项目。
    pnpm run build
  4. 启动服务器: 启动 Markdownify MCP 服务器。
    pnpm start

服务器配置:

要将 Markdownify Server 集成到 MCP 客户端应用中,您需要在客户端的服务器配置中添加以下信息。这通常是一个 JSON 格式的配置文件,用于告知客户端如何启动和连接到 MCP 服务器。

{
  "mcpServers": {
    "markdownify": {
      "command": "node",
      "args": [
        "{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
      ],
      "env": {
        // UV_PATH 环境变量用于指定 uv 的安装路径,如果 uv 可执行文件在默认路径下,则无需配置。
        "UV_PATH": "/path/to/uv"
      }
    }
  }
}
  • '"markdownify"': 服务器的名称,可以自定义,用于在客户端中引用该服务器。
  • '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行时环境。
  • '"args": [...]"': 传递给启动命令的参数,'"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"' 需要替换为 'dist/index.js' 文件的绝对路径。请根据您的实际文件路径进行修改。
  • '"env": { ... }"': 可选的环境变量配置。'"UV_PATH"' 用于指定 'uv' 工具的路径。 'uv' 是项目依赖的 Python 环境和包管理器,如果您的 'uv' 可执行文件不在默认路径(例如 '/usr/local/bin' 或 '~/.local/bin')下,则需要在此处指定其绝对路径。 如果您已将 'uv' 添加到系统 'PATH' 环境变量中,或者 'uv' 安装在默认路径下,则可以省略 'UV_PATH' 的配置。

基本使用方法:

Markdownify Server 作为一个 MCP 服务器,需要通过 MCP 客户端进行交互。

  1. 列出工具: MCP 客户端可以发送 'ListToolsRequest' 请求到 Markdownify Server,以获取服务器支持的所有工具列表。服务器将返回包含工具名称、描述和参数定义的 JSON 响应。

  2. 调用工具: 客户端可以使用 'CallToolRequest' 请求来调用特定的工具,例如 'pdf-to-markdown' 或 'youtube-to-markdown'。在请求中,需要指定要调用的工具名称,并根据该工具的 'inputSchema' 提供相应的参数,例如文件路径 ('filepath') 或 URL ('url')。

  3. 获取结果: 服务器执行工具后,将返回 'CallToolResponse' 响应。响应内容 (content) 中包含了转换后的 Markdown 文本以及可能的其他信息,例如输出文件路径。如果工具执行过程中发生错误,响应会指示 'isError' 为 'true',并包含错误信息。

请参考仓库的 'README.md' 文件和 'src/tools.ts' 文件,了解每个工具的具体参数要求和使用方法。 您可以使用任何兼容 MCP 协议的客户端与 Markdownify Server 进行交互,以实现文件和网页内容的 Markdown 转换功能。

信息

分类

网页与API