项目简介
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与计算