mcpField
M
markitdown-skill

markitdown-skill

github.com/julianobarbosa文档处理14252 次安装2 天前更新
代码仓库

关于 markitdown-skill

MarkItDown 是 Microsoft 提供的 Python 工具,可将多种文档、媒体、网页和数据格式转换为保留结构的 Markdown,面向 LLM 和文本分析流程。它也支持插件,并提供用于 LLM 应用集成的 MCP 服务端。

主要功能

  1. 01转换多种文件与网页格式
  2. 02保留标题、列表、表格和链接
  3. 03提供 Python API 与命令行
  4. 04支持第三方插件
  5. 05可选 OCR、音频和视频转录

适用场景

  1. 01批量转换文档以供分析
  2. 02将文件整理为 LLM 上下文
  3. 03提取 YouTube 视频转录
  4. 04将 Jupyter Notebook 转为 Markdown

MCP 相关

MarkItDown 提供 MCP 服务端,供 Claude Desktop 等 LLM 应用集成。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill markitdown-skill

安装后在 Claude Code 中输入/markitdown-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-features.md
api-reference.md
cli-reference.md
examples.md
scripts/
batch-convert.py
batch-convert.sh
convert-jupyter.py

详细介绍

MarkItDown 技能

Microsoft 的 Python 工具,可将各种文件格式转换为 Markdown,适用于大模型和文本分析工作流。

概述

MarkItDown 转换文档时会保留其结构(标题、列表、表格、链接)。它针对大模型处理进行了优化,而非面向人类阅读的输出。

支持的格式
类别格式
文档PDF、Word(DOCX)、PowerPoint(PPTX)、Excel(XLSX、XLS)
媒体图像(EXIF + OCR)、音频(WAV、MP3 转录)
WebHTML、YouTube URL、Wikipedia、RSS/Atom 订阅源
数据CSV、JSON、XML、Jupyter 笔记本(.ipynb)
归档文件ZIP(遍历内容)、EPub
电子邮件Outlook MSG 文件

快速开始

安装
# Full installation (recommended)
pip install 'markitdown[all]'

# Minimal with specific formats
pip install 'markitdown[pdf,docx,pptx]'

# Using uv
uv pip install 'markitdown[all]'
可选依赖项
附加项说明
[all]所有可选依赖项
[pdf]PDF 文件支持
[docx]Word 文档
[pptx]PowerPoint 演示文稿
[xlsx]Excel 电子表格
[xls]旧版 Excel 文件
[outlook]Outlook MSG 文件
[az-doc-intel]Azure Document Intelligence
[audio-transcription]WAV/MP3 转录
[youtube-transcription]YouTube 视频转录文本
命令行用法
# Basic conversion
markitdown document.pdf > output.md

# Specify output file
markitdown document.pdf -o output.md

# Pipe input
cat document.pdf | markitdown > output.md

# With Azure Document Intelligence
markitdown document.pdf -o output.md -d -e "<endpoint>"
Python API
from markitdown import MarkItDown

# Basic conversion
md = MarkItDown()
result = md.convert("document.xlsx")
print(result.text_content)

# With LLM for image descriptions
from openai import OpenAI

client = OpenAI()
md = MarkItDown(
    llm_client=client,
    llm_model="gpt-4o",
    llm_prompt="Describe this image in detail"
)
result = md.convert("image.jpg")
print(result.text_content)

# With Azure Document Intelligence
md = MarkItDown(docintel_endpoint="<your-endpoint>")
result = md.convert("complex-document.pdf")
print(result.text_content)

常见用例

批量转换目录
from markitdown import MarkItDown
from pathlib import Path

md = MarkItDown()
input_dir = Path("./documents")
output_dir = Path("./markdown")
output_dir.mkdir(exist_ok=True)

for file in input_dir.glob("*"):
    if file.is_file():
        try:
            result = md.convert(str(file))
            output_file = output_dir / f"{file.stem}.md"
            output_file.write_text(result.text_content)
            print(f"Converted: {file.name}")
        except Exception as e:
            print(f"Failed: {file.name} - {e}")
处理内容以供大模型使用
from markitdown import MarkItDown

def prepare_for_llm(file_path: str) -> str:
    """Convert document to LLM-ready markdown."""
    md = MarkItDown()
    result = md.convert(file_path)

    # Add source reference
    content = f"# Source: {file_path}\n\n{result.text_content}"
    return content

# Use with your LLM
context = prepare_for_llm("report.pdf")
提取 YouTube 转录文本
# CLI
markitdown "https://www.youtube.com/watch?v=VIDEO_ID" > transcript.md
# Python
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("https://www.youtube.com/watch?v=VIDEO_ID")
print(result.text_content)
使用 AI 描述进行图像 OCR
from markitdown import MarkItDown
from openai import OpenAI

# Initialize with LLM support
client = OpenAI()
md = MarkItDown(
    llm_client=client,
    llm_model="gpt-4o"
)

# Convert image with AI description
result = md.convert("screenshot.png")
print(result.text_content)
转换 Jupyter 笔记本
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("analysis.ipynb")
print(result.text_content)  # Code cells, outputs, markdown
提取 Wikipedia 内容
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("https://en.wikipedia.org/wiki/Python")
print(result.text_content)  # Main article content only
解析 RSS 订阅源
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("https://example.com/feed.xml")
print(result.text_content)  # Feed entries as markdown

插件系统

MarkItDown 支持第三方插件以扩展功能。

# List installed plugins
markitdown --list-plugins

# Enable plugins during conversion
markitdown --use-plugins document.pdf
# Enable plugins in Python
md = MarkItDown(enable_plugins=True)
result = md.convert("document.pdf")

在 GitHub 上搜索 #markitdown-plugin,查找可用插件。

MCP 服务集成

MarkItDown 提供 MCP(Model Context Protocol)服务,可与 Claude Desktop 等大模型应用集成。

# Install MCP server
pip install markitdown-mcp

# Or from source
git clone https://github.com/microsoft/markitdown.git
cd markitdown/packages/markitdown-mcp
pip install -e .

配置详情请参阅 markitdown-mcp。

Docker 用法

# Build image
docker build -t markitdown:latest .

# Convert file
docker run --rm -i markitdown:latest < document.pdf > output.md

故障排除

问题解决方案
缺少依赖项使用 pip install 'markitdown[all]' 安装
PDF 提取失败对于复杂 PDF,请尝试 Azure Document Intelligence
未提取图像中的文本确保已安装 OCR 依赖项,或使用大模型模式
大文件超时分块处理或使用流式处理
找不到插件运行 markitdown --list-plugins 验证是否已安装
常见错误
# ModuleNotFoundError for specific format
pip install 'markitdown[pdf]'  # Install missing dependency

# Azure authentication
export AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT="<endpoint>"
export AZURE_DOCUMENT_INTELLIGENCE_KEY="<key>"

要求

  • Python >= 3.10
  • 建议使用虚拟环境
# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
.venv\Scripts\activate     # Windows

# Install
pip install 'markitdown[all]'

参考资料

评论

支持 Markdown