NAS部署MarkItDown MCP
MarkItDown MCP 是一个给 AI(主要是 Claude)调用的「万能文件/网页转 Markdown 的工具」。
核心功能(你能用它做什么)
提供 1 个工具:
convert_to_markdown(uri)
支持 3 类输入:
网页:https://example.com/report.pdf
本地文件(容器内路径):file:///workdir/xxx.docx
Base64 数据:data:application/pdf;base64,...
支持 29+ 格式:
PDF / Word / Excel / PowerPoint / EPUB / Markdown / HTML / 图片(含 OCR)/ 音视频字幕 等。
本文介绍从GIT clone MarkItDown项目开始,自己构建镜像文件并在NAS中部署
先下载MarkItDown项目
git clone https://github.com/microsoft/markitdown.git
修改Dockerfile文件
用官方文件修改生成Dockerfile,保存在项目根目录下(优化为清华源)
FROM python:3.13-slim-bullseye
# 清华APT源加速
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
ENV DEBIAN_FRONTEND=noninteractive
ENV EXIFTOOL_PATH=/usr/bin/exiftool
ENV FFMPEG_PATH=/usr/bin/ffmpeg
ENV MARKITDOWN_ENABLE_PLUGINS=True
# 清华PIP源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
exiftool
# 清理
RUN rm -rf /var/lib/apt/lists/*
# 复制全部项目代码
COPY . /app
# 【修复关键】安装 markitdown 和 markitdown-mcp
RUN pip --no-cache-dir install /app/packages/markitdown
RUN pip --no-cache-dir install /app/packages/markitdown-mcp
WORKDIR /workdir
# 默认用户
ARG USERID=nobody
ARG GROUPID=nogroup
USER $USERID:$GROUPID
# 官方入口
ENTRYPOINT [ "markitdown-mcp" ]
然后build
使用命令:
docker build --no-cache --platform linux/amd64 -t markitdown:official .

build成功后,Save到tar
docker save -o markitdown-nas.tar markitdown:official
把Tar文件同步到NAS:
指定接收目录:/volume5/docker5/markitdown/
rsync -av --inplace --progress markitdown-nas.tar john@192.168.123.104:/volume5/docker5/markitdown/
登录NAS,将接收到的tar文件,保存到images
进入接收目录,运行:docker load -i markitdown-nas.tar

生成YAML文件,提起容器
version: '3.8'
services:
markitdown:
image: markitdown:official
container_name: markitdown-mcp
restart: always
ports:
- "8088:8000"
volumes:
- ./output:/workdir/output
environment:
- TZ=Asia=Shanghai
command: ["--http", "--host", "0.0.0.0", "--port", "8000"]
还有另一个方案:解析本地文件(关键:挂载files目录)
你现在的 docker-compose.yml 只挂载了 ./output,要允许访问本地文件必须改挂载files:
升级 docker-compose.yml(支持本地文件)
version: '3.8'
services:
markitdown:
image: markitdown:official
container_name: markitdown-mcp
restart: always
ports:
- "8088:8000"
volumes:
- ./files:/workdir/files # 👈 你的文件目录(已恢复)
- ./output:/workdir/output # 👈 输出目录
environment:
- TZ=Asia/Shanghai
- PYDANTIC_SKIP_ENV_FILES=1
command: ["--http", "--host", "0.0.0.0", "--port", "8000"]
user: "0:0" # 👈 解决权限错误
看一眼markitdown-mcp容器运行状态:

在 Claude Desktop 中接入(最常用)
-
找到 Claude 配置文件
Windows:%APPDATA%\Claude\config.json
Mac:~/Library/Application Support/Claude/config.json
Linux:~/.config/Claude/config.json -
添加 MCP 配置(HTTP 方式)
把你 NAS 的地址填进去:
{
"mcpServers": {
"markitdown-nas": {
"type": "streamable-http",
"url": "http://192.168.123.104:8088/mcp"
}
}
}
注意:末尾必须是 /mcp
IP 换成你 NAS 的实际 IP
3. 重启 Claude Desktop
完全退出 Claude(托盘图标右键退出)
重新打开
左下角会出现 ✅ 1 tool enabled(MarkItDown)
浙公网安备 33010602011771号