金融量化AI研究--Claude, Python

这里用来记录一些本人运用Claude编程的心得或笔记

导航

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 .
image

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

image

生成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容器运行状态:
image

在 Claude Desktop 中接入(最常用)

  1. 找到 Claude 配置文件
    Windows:%APPDATA%\Claude\config.json
    Mac:~/Library/Application Support/Claude/config.json
    Linux:~/.config/Claude/config.json

  2. 添加 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)

posted on 2026-04-14 13:48  chengjon  阅读(29)  评论(0)    收藏  举报