项目简介

Marky是一个功能强大的Go语言库和命令行工具,专注于将各类文档格式(包括CSV、EPUB、HTML、Jupyter Notebook、Microsoft Word、Excel、PDF和PowerPoint)转换为简洁易读的Markdown格式。除了作为一个独立的转换工具和Go库之外,Marky还提供一个实现了Model Context Protocol (MCP) 的服务器组件。这个MCP服务器使得AI模型能够通过标准化的协议,便捷地调用Marky的文档转换功能,从而将非结构化文档内容整合到LLM(大型语言模型)的工作流中。

主要功能点

  • 多格式支持: 能够将常见的文件格式如CSV、EPUB、HTML、Jupyter Notebook (.ipynb)、Microsoft Word (.docx)、Microsoft Excel (.xlsx)、PDF和Microsoft PowerPoint (.pptx) 转换为Markdown。
  • 命令行工具: 提供了一个简单易用的命令行界面 'marky',方便用户进行快速文件转换。
  • Go语言库: 开发者可以将Marky作为Go语言库集成到自己的应用程序中,实现定制化的文档转换需求。
  • MCP服务器: 核心功能,通过标准Model Context Protocol,将文档转换能力暴露给AI客户端和LLM应用,实现AI集成。
  • MIME类型自动识别: 具备自动识别文件MIME类型的功能,确保不同格式的文件能够被正确的转换器处理。

安装步骤

Marky提供了两种主要的可执行组件:CLI工具和MCP服务器。您可以根据需求选择安装。

  • 安装CLI工具: 在您的终端中运行以下Go命令,即可安装Marky命令行工具:

    go install github.com/flaviodelgrosso/marky/cmd/marky@latest
  • 安装MCP服务器: 在您的终端中运行以下Go命令,即可安装Marky MCP服务器组件:

    go install github.com/flaviodelgrosso/marky/marky-mcp@latest
  • 作为Go库使用: 如果您希望在Go项目中集成Marky作为库,可以通过以下命令将其添加到您的项目依赖中:

    go get github.com/flaviodelgrosso/marky

服务器配置 (面向MCP客户端)

Marky MCP服务器旨在与LLM客户端(例如Claude Desktop、Visual Studio Code等)集成,作为其上下文服务。要启用此集成,您需要在AI客户端的MCP配置中添加相关信息。

通常,这些配置以JSON格式存储,包含以下关键信息:

  • 服务器名称: 您为Marky MCP服务器定义的唯一标识符,例如'marky-mcp'。这是客户端用来识别和连接该服务器的名称。
  • 命令: 启动Marky MCP服务器所需的可执行文件命令,即'marky-mcp'。请确保此命令在您的系统环境中是可执行的(例如,已通过'go install'安装并添加到系统PATH环境变量中)。
  • 参数 (args): Marky MCP服务器目前不需要额外的启动参数。
  • 传输类型 (type): 指定客户端与服务器之间的通信协议。Marky MCP服务器支持标准输入输出(Stdio)模式。

以下是一个典型的MCP客户端配置示例,您可以根据您的客户端软件的用户手册进行调整:

{
    "servers": {
        "marky-mcp": {
            "type": "stdio",
            "command": "marky-mcp"
        }
    }
}

此配置告诉您的AI客户端,有一个名为'marky-mcp'的服务器可以通过执行'marky-mcp'命令并通过标准输入输出进行通信。

基本使用方法 (作为MCP服务器)

一旦Marky MCP服务器在您的AI客户端中配置并成功运行,AI模型就可以通过调用服务器暴露的**'convert_to_markdown'**工具来执行文档转换。

'convert_to_markdown'工具接收以下参数:

  • 'input' (必需): 需要转换为Markdown的输入文件路径。例如,一个PDF文件或Word文档的完整路径。
  • 'output' (可选): 转换后Markdown文件的输出路径。如果省略此参数,Markdown内容将直接返回给调用该工具的AI客户端或输出到服务器的控制台。

AI模型在需要将文档内容集成到其处理流程时,可以智能地调用此工具。例如:

  • 如果AI模型需要分析一个PDF报告的内容,它可以调用: 'convert_to_markdown(input="C:/Users/User/Documents/report.pdf")'
  • 如果AI模型需要将一个Word文档转换为Markdown并保存到特定位置: 'convert_to_markdown(input="/home/user/notes/meeting.docx", output="/home/user/notes/meeting.md")'

转换完成后,Markdown格式的文档内容将通过MCP协议返回给AI模型,供其进一步的分析、摘要生成、问答或其他AI任务使用。

信息

分类

AI与计算