项目简介

Markdownify MCP服务器是一个基于Model Context Protocol (MCP) 的后端应用,它提供了一系列工具,用于将各种文件类型和网页内容转换为Markdown格式。用户可以通过MCP客户端调用这些工具,方便地将PDF、图片、音频、Office文档以及网页内容转换为易于阅读和分享的Markdown文本。

主要功能点

  • 多种文件格式转换: 支持将 PDF, 图片, 音频 (支持转录), DOCX, XLSX, PPTX 等文件转换为 Markdown。
  • 网页内容转换: 支持将 YouTube 视频 transcripts, Bing 搜索结果, 普通网页等内容转换为 Markdown。
  • Markdown 文件检索: 支持通过文件路径检索并获取已有的 Markdown 文件内容。
  • 标准 MCP 协议: 遵循 Model Context Protocol 协议,易于集成到各种 MCP 客户端应用中。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/zcaceres/markdownify-mcp
    cd markdownify-mcp
  2. 安装依赖:

    pnpm install

    此命令还会安装 'uv' 和相关的 Python 依赖。

  3. 构建项目:

    pnpm run build
  4. 启动服务器:

    pnpm start

服务器配置

要将此服务器集成到 MCP 客户端应用中,您需要在客户端的服务器配置中添加以下JSON配置。请将 '{ABSOLUTE PATH TO FILE HERE}' 替换为 'markdownify-mcp' 仓库在您本地文件系统中的绝对路径。

{
  "mcpServers": {
    "markdownify": {
      "command": "node",
      "args": [
        "{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
      ],
      "env": {
        "UV_PATH": "/path/to/uv" // 可选: uv 执行文件的路径,默认使用 uv 的默认安装位置。如果您的 uv 不在默认位置,请修改此项。
      }
    }
  }
}
  • 'server name': 'markdownify' - 服务器名称,客户端用此名称引用该服务器。
  • 'command': 'node' - 启动服务器的命令,这里使用 Node.js 运行时。
  • 'args': '["{ABSOLUTE PATH TO FILE HERE}/dist/index.js"]' - 传递给 'node' 命令的参数,指向编译后的服务器入口文件 'index.js' 的绝对路径。请务必替换为实际路径
  • 'env': '{ "UV_PATH": "/path/to/uv" }' - 可选的环境变量配置。 'UV_PATH' 用于指定 'uv' 执行文件的路径。如果您的 'uv' 可执行文件不在默认路径下,您需要在此处指定正确的路径。

基本使用方法

服务器启动后,MCP客户端可以通过JSON-RPC协议与其通信,调用预定义的工具。

可用工具包括:

  • '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 文件内容。

客户端需要根据工具的 'inputSchema' 构造请求参数,并通过MCP协议发送 'CallToolRequest' 调用相应的工具。 服务器会将转换后的 Markdown 文本返回给客户端。

例如,要使用 'pdf-to-markdown' 工具,客户端需要提供 PDF 文件的绝对路径作为参数。

信息

分类

开发者工具