Skip to main content
Glama
elimyliu

timeverse-omni-converter-mcp

by elimyliu

Format Converter MCP

License Version Node.js TypeScript MCP

通用格式转换 MCP Server

一个覆盖音频、视频、图片、Office、数据、电子书、PDF、字幕等全格式转换的 Model Context Protocol (MCP) 服务器,可被 TimeVerse Studio、Claude Desktop、Cursor、VS Code 等任意 MCP 客户端调用。

English


✨ 特性

特性

说明

🎯 格式覆盖广

9 大格式域、71 种去重格式,另含字幕、PDF 操作等特殊能力

🧩 14 个工具

10 个核心转换工具 + 4 个辅助工具,按格式域精准分类,LLM 易于选择

🧠 智能路由

自动选择最优转换路径(直转 / 多步链式),依赖不可用时自动降级

🔧 6 大引擎

FFmpeg / ImageMagick / LibreOffice / Pandoc / Python / PDF 统一封装

⚡ 零配置

启动时自检测系统依赖,缺失时提示或降级

🛡️ 生产可用

分级错误处理、资源上限防护、临时文件 TTL 清理


Related MCP server: ChangeThisFile MCP Server

📦 支持的格式

格式域

工具

引擎

格式数

示例

音频

convert_media

FFmpeg

12

MP3, WAV, FLAC, AAC, OGG, M4A, WMA, AIFF, OPUS, AC3, AMR, MKA

视频

convert_media

FFmpeg

14

MP4, AVI, MKV, MOV, WebM, FLV, WMV, M4V, MPEG, 3GP, TS, GIF, VOB, RMVB

图片

convert_image

ImageMagick / Pillow

16

JPEG, PNG, GIF, BMP, TIFF, WebP, SVG, HEIC, ICO, PSD, RAW, AVIF, EXR

文档

convert_document

LibreOffice / Pandoc / pdf2docx

10

DOCX, DOC, PDF, RTF, ODT, TXT, PAGES*, WPS*, HTML, MD

演示

convert_presentation

LibreOffice

6

PPTX, PPT, ODP, PDF, KEY*, HTML

表格

convert_spreadsheet

openpyxl / pandas / LibreOffice

8

XLSX, XLS, ODS, CSV, TSV, NUMBERS*, FODS, HTML

标记

convert_markup

Pandoc

12

Markdown, HTML, RST, AsciiDoc, LaTeX, Org, MediaWiki, EPUB, Typst, TXT, IPYNB

数据

convert_data

Python (PyYAML/tomlkit/pandas/lxml)

8

JSON, YAML, XML, TOML, CSV, TSV, Parquet, Protobuf

电子书

convert_ebook

Pandoc / Calibre

5

EPUB, MOBI, AZW3, FB2, PDF

字幕

convert_subtitle

pysubs2

3

SRT, ASS/SSA, VTT

PDF 操作

convert_pdf

PyMuPDF / pypdf

9 种操作

merge, split, compress, extract, watermark, rotate, to_images

* 标记为受限格式(PAGES / WPS / NUMBERS / KEY),需 macOS 原生应用或 iCloud 导出。

合计去重后约 71 种格式,覆盖行业 95%+ 的常见转换需求。


⚠️ 已知限制

  • 受限格式PAGES / WPS / NUMBERS / KEY 需 macOS 原生应用或 iCloud 导出,其它平台通常无法直接转换。

  • HEIC/HEIF 解码:依赖 ImageMagick 的 libheif 支持;缺失时无法解码 Apple 高效图片。

  • 引擎缺省降级:若未安装 LaTeX,Markdown→PDF 会降级为 weasyprint;若未安装 Calibre,MOBI/AZW3 电子书不可用;若未安装 ImageMagick,图片转换回退到 Python Pillow(能力更有限)。

  • Protocol Buffers:转换为 PB 需要额外的 .proto 定义文件。

  • Parquet / Protobuf:对应的 Python 依赖(pyarrowprotobuf)为可选,需手动安装。


🧰 工具列表

核心转换工具(10 个)

工具

说明

convert_media

音频/视频互转,提取音频、截取片段、嵌入字幕

convert_image

图片互转,缩放、优化、矢量↔栅格、DPI 控制

convert_document

Word/PDF/RTF/TXT/HTML/MD 高保真转换,OCR、表格提取

convert_presentation

PPT/ODP/PDF/HTML/PNG(幻灯片图片)转换

convert_spreadsheet

Excel/CSV/TSV/JSON/HTML 转换,保留公式与多工作表

convert_markup

Markdown/HTML/LaTeX/EPUB 等标记文本转换,目录/高亮/公式

convert_data

JSON/YAML/XML/TOML/CSV/Parquet/Protobuf 数据转换

convert_ebook

EPUB/MOBI/AZW3/FB2/PDF 电子书转换,封面/元数据

convert_pdf

PDF 合并/拆分/压缩/提取/水印/旋转/转图片

convert_subtitle

SRT/ASS/VTT 字幕互转,时间偏移、编码转换

辅助工具(4 个)

工具

说明

get_supported_formats

查询支持的格式、转换路径与可用引擎

get_file_info

探测文件元信息(格式、编码、分辨率、时长、页数等)

batch_convert

批量转换,支持 Glob 匹配与并行执行

check_dependencies

检查所有引擎与系统依赖的可用性与版本

所有转换工具统一遵循 input_path + output_format + options 参数范式。


🏗️ 架构

┌─────────────────────────────────────────────────────┐
│              MCP Client (LLM)                        │
│        Claude / Cursor / VS Code / ...               │
└──────────────────────┬──────────────────────────────┘
                       │ JSON-RPC (stdio)
┌──────────────────────┴──────────────────────────────┐
│           MCP Protocol Layer                         │
│      tool list · tool call · notifications           │
├──────────────────────────────────────────────────────┤
│           Tool Router Layer                          │
│    请求解析 → 格式识别 → 路由分发 → 结果封装           │
├───────────┬───────────┬──────────┬───────────────────┤
│  Format   │ Conversion│  File    │  Dependency       │
│  Registry │  Planner  │ Manager  │  Checker          │
├───────────┴───────────┴──────────┴───────────────────┤
│           Conversion Engine Layer                    │
│  FFmpeg · ImageMagick · LibreOffice · Pandoc         │
│  Python · PDF                                         │
└──────────────────────────────────────────────────────┘

智能路径规划示例:

源 → 目标

路径

PDF → XLSX

PDF → CSV (pdfplumber) → XLSX (openpyxl)

PDF → DOCX

PDF → DOCX (pdf2docx)

XLSX → JSON

XLSX → DataFrame (pandas) → JSON

PPTX → MD

PPTX → HTML (LibreOffice) → MD (Pandoc)

DOCX → EPUB

DOCX → HTML (Pandoc) → EPUB (Pandoc)


⚙️ 技术栈

  • 主语言:TypeScript (Node.js ≥ 18)

  • 协议@modelcontextprotocol/sdk

  • 转换引擎:FFmpeg / ImageMagick / LibreOffice / Pandoc / Python (venv 隔离) / PyMuPDF

系统依赖

依赖

版本

用途

安装

Node.js

≥ 18

运行 MCP Server

nodejs.org

FFmpeg

≥ 6.0

音视频/字幕转换

winget install ffmpeg / brew install ffmpeg / apt install ffmpeg

ImageMagick

≥ 7.0

图片转换

winget install ImageMagick / brew install imagemagick / apt install imagemagick

LibreOffice

≥ 7.5

Office 文档保真转换

libreoffice.org

Pandoc

≥ 3.0

标记/文档/电子书转换

winget install pandoc / brew install pandoc / apt install pandoc

Python

≥ 3.10

数据/PDF/表格/字幕

python.org

LaTeX(可选,Markdown→PDF 高质量)与 Calibre(可选,MOBI/AZW3)可缺省,系统会自动降级。

Python 依赖

pip install -r python/requirements.txt

核心依赖:openpyxlpandasPyYAMLtomlkitxmltodictPyMuPDFpypdfpdf2docxpysubs2Pillowpyarrowprotobuf 为可选)。


🚀 安装

先安装系统依赖(FFmpeg / ImageMagick / LibreOffice / Pandoc):

  • Windowsnpm run prepare-deps(一键下载便携版)

  • macOSbrew install ffmpeg imagemagick pandoc && brew install --cask libreoffice

  • Linuxapt install ffmpeg imagemagick libreoffice pandoc

然后构建并安装 Python 依赖:

# 1. 安装 Node 依赖
npm install

# 2. 构建(生成 dist/)
npm run build

# 3. 安装 Python 依赖(建议使用虚拟环境)
python3 -m venv .venv        # macOS/Linux;Windows 使用 python
source .venv/bin/activate    # macOS/Linux;Windows 使用 .venv\Scripts\activate
pip install -r python/requirements.txt

🔌 MCP 配置

在 MCP 客户端的 mcpServers 配置中添加以下服务器即可。

TimeVerse Studio(推荐 · npm 托管)

TimeVerse Studio 使用标准 mcpServers JSON 接入。发布到 npm 后,直接通过 npx 一键运行,无需本地构建:

{
  "mcpServers": {
    "timeverse-omni-converter-mcp": {
      "command": "npx",
      "args": ["-y", "timeverse-omni-converter-mcp"],
      "env": {
        "FC_PYTHON_PATH": "python",
        "FC_TEMP_DIR": "C:/temp/format-converter",
        "FC_MAX_FILE_SIZE": "524288000",
        "FC_TIMEOUT": "300000"
      }
    }
  }
}

Claude Desktop / Cursor(本地构建)

本地构建后,通过 node 直接运行:

{
  "mcpServers": {
    "timeverse-omni-converter-mcp": {
      "command": "node",
      "args": ["C:/path/to/timeverse-omni-converter-mcp/dist/index.js"],
      "env": {
        "FC_PYTHON_PATH": "python",
        "FC_TEMP_DIR": "C:/temp/format-converter",
        "FC_MAX_FILE_SIZE": "524288000",
        "FC_TIMEOUT": "300000"
      }
    }
  }
}

macOS:将 args 改为 /Users/<you>/timeverse-omni-converter-mcp/dist/index.js,并将 FC_PYTHON_PATH 改为 python3(或删除该项,让其自动检测 .venv/python3)。


🔧 环境变量

变量

默认值

说明

FC_PYTHON_PATH

python

Python 解释器路径

FC_FFMPEG_PATH

ffmpeg

FFmpeg 可执行文件路径

FC_FFPROBE_PATH

ffprobe

ffprobe 可执行文件路径

FC_IMAGEMAGICK_PATH

magick

ImageMagick 可执行文件路径

FC_LIBREOFFICE_PATH

soffice

LibreOffice 可执行文件路径

FC_PANDOC_PATH

pandoc

Pandoc 可执行文件路径

FC_CALIBRE_PATH

ebook-convert

Calibre 电子书转换器路径

FC_TEMP_DIR

系统临时目录

临时文件目录

FC_MAX_FILE_SIZE

524288000 (500MB)

最大输入文件大小

FC_MAX_EXTRACTED_SIZE

1073741824 (1GB)

解压后总大小上限(防 zip bomb)

FC_MAX_COMPRESSION_RATIO

100

最大压缩比

FC_MAX_PIXELS

100000000

图片解压像素上限(防解压炸弹)

FC_TIMEOUT

300000 (5min)

单次转换超时

FC_PARALLEL

1

默认并行数

FC_LOG_LEVEL

info

日志级别


💬 使用示例

向 MCP 客户端中的 LLM 发出自然语言指令,例如:

  • 「把 a.mov 转成 a.mp4,分辨率 1920x1080」→ convert_media

  • 「把 photo.heic 转成 photo.png」→ convert_image

  • 「把 report.docx 转成 report.pdf」→ convert_document

  • 「把 data.json 转成 data.csv」→ convert_data

  • 「把 slides.pptx 每一页导出成 PNG」→ convert_presentation

  • 「把 book.epub 转成 book.mobi」→ convert_ebook

  • 「合并 a.pdfb.pdf」→ convert_pdfoperation: "merge"

  • 「把 subs.ass 转成 subs.srt」→ convert_subtitle

工具调用示例:

{
  "name": "convert_media",
  "arguments": {
    "input_path": "C:/media/input.mov",
    "output_format": "mp4",
    "options": {
      "video_codec": "libx264",
      "video_resolution": "1920x1080",
      "crf": 23
    }
  }
}

返回结果:

{
  "success": true,
  "outputPath": "C:/media/input.mp4",
  "outputSize": 10485760,
  "duration": 3215,
  "warnings": []
}

❓ 常见问题

Q: 转换提示依赖缺失或失败怎么办? A: 调用 check_dependencies 工具查看各引擎(FFmpeg / ImageMagick / LibreOffice / Pandoc / Python)的可用状态与版本,安装缺失的依赖后重试。

Q: Python 相关转换(数据 / PDF / 表格 / 字幕)报错? A: 确认已通过 pip install -r python/requirements.txt 安装依赖,并通过 FC_PYTHON_PATH 指向正确的 Python 解释器(或已激活虚拟环境)。

Q: 目标文件已存在会发生什么? A: 默认自动重命名为 文件名_1.扩展名;批量转换时可通过 on_conflict 参数控制 overwrite / skip / rename

Q: 为什么某些格式(如 PAGES / NUMBERS)无法转换? A: 这些是 Apple 专有格式,需 macOS 原生应用或 iCloud 导出,属于受限格式,详见「已知限制」。

Q: 大文件转换超时怎么办? A: 调大 FC_TIMEOUT(默认 300000ms),并注意 FC_MAX_FILE_SIZE(默认 500MB)上限。


🛡️ 安全

Server 处理不可信文件内容,内置多项资源与安全防护:

  • 输入文件大小、解压后体积、压缩比、图片像素上限(防 zip bomb / 解压炸弹)

  • 单次转换超时与并发上限

  • 解析器禁用 XXE(外部实体注入)、PDF 嵌入脚本、外部资源加载

  • 外部进程统一使用参数数组调用(execFile),避免命令注入


📄 License

MIT

F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables document conversion and processing through an MCP server interface for AI assistants.
  • A
    license
    A
    quality
    C
    maintenance
    Enables file conversion between 690+ formats (image, video, audio, document, data, font, ebook, archive) using an MCP server, with no API key or signup required.
    2
    21
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that extracts clean text, tables, and structured data from documents, images, code, and audio files, supporting 97 formats with OCR, transcription, and code intelligence.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elimyliu/timeverse-omni-converter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server