UFC-MCP
A local file conversion server supporting audio, video, image, document, and specialized formats via Model Context Protocol. It enables batch and single-file conversions without cloud dependencies.
README
UFC-MCP — Universal File Converter MCP
A full-featured Model Context Protocol server that lets Claude Desktop (or any MCP host) convert audio, video, image, document, and specialized scientific/business files — all running locally with no cloud dependencies.
Features
| Category | Formats | Engine |
|---|---|---|
| 🎵 Audio | MP3, WAV, FLAC, AAC, OGG, M4A, AIFF, OPUS, WMA | FFmpeg |
| 🎬 Video | MP4, WebM, AVI, MOV, MKV, FLV, WMV, GIF, 3GP | FFmpeg |
| 🖼️ Image | JPEG, PNG, WebP, AVIF, GIF, TIFF, ICO, BMP, SVG | Sharp |
| 📄 Document | Markdown, JSON, YAML, HTML, CSV, TXT | Node.js |
| 📊 Spreadsheet | CSV, TSV, XLSX, JSON, HTML, Markdown | Node.js |
| 🗜️ Archive | ZIP, GZIP, BZIP2, TAR, 7Z, RAR | Node.js + CLI |
| 🔤 Font | TTF, OTF, WOFF, WOFF2 | fonttools |
| 🎨 3D Models | OBJ, STL, PLY, GLTF, GLB | Node.js + assimp |
| EML, MBOX → JSON/HTML/TXT | Node.js | |
| 🎼 Music Notation | MIDI, ABC, MusicXML → JSON | Node.js |
| 🧬 Biotech | FASTA, FASTQ, VCF, GFF, PDB* → JSON/CSV | Node.js |
| 💰 Fintech | OFX, QFX, QIF, MT940 → JSON/CSV | Node.js |
| 📦 Logistics | EDI, EDIFACT, GPX → JSON/GeoJSON | Node.js |
| ⚙️ Dev Formats | TOML, INI, ENV, XML, Protobuf → JSON | Node.js |
| 📈 Statistics | R, MATLAB, SPSS, Stata → JSON/CSV | Node.js + Python* |
| 🧪 Chemistry | MOL, SDF, XYZ, SMILES → JSON/CSV; PDB* (via external RDKit/Open Babel tools) | Node.js + RDKit* |
| 🔭 Astronomy | FITS → JSON/CSV (header) | Node.js + astropy* |
| 🌍 Geoscience | KML, GeoJSON, NetCDF*, HDF5* → JSON | Node.js + Python* |
* Some advanced features require optional Python libraries. PDB* conversion currently relies on external RDKit/Open Babel tooling and is not handled by the built-in ChemistryProcessor.
MCP Tools
convert_audio— bitrate, sample rate, channel controlconvert_video— trim, resize, fps, bitrate, audio extractionconvert_image— resize, compress, rotate, grayscale, icon set generationconvert_document— bidirectional: MD ↔ JSON ↔ YAML ↔ HTML ↔ CSVconvert_spreadsheet— CSV, TSV, XLSX ↔ JSON, HTML, Markdownconvert_archive— compress/decompress archives with various formatsconvert_font— convert between font formatsconvert_3d— convert 3D model formatsconvert_email— parse email files to JSON/HTML/TXTconvert_music— music notation to structured JSONconvert_biotech— bioinformatics file conversionsconvert_fintech— financial data format conversionsconvert_logistics— supply chain & geospatial conversionsconvert_dev_format— config/schema format conversionsconvert_statistics— statistical data formats (R, MATLAB, SPSS, Stata)convert_chemistry— molecular file formats (MOL, SDF, XYZ, SMILES)convert_astronomy— astronomy data (FITS files)convert_geoscience— geoscience formats (KML, NetCDF, HDF5)batch_convert— parallel multi-file conversionget_supported_formats— list all formats by categoryget_conversion_history— session conversion log
Requirements
- Node.js ≥ 18
- FFmpeg on
PATH(required for audio/video)
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows
winget install Gyan.FFmpeg
Installation
npm install
npm run build
Claude Desktop Setup
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"file-converter": {
"command": "node",
"args": ["/path/to/UFC-MCP/dist/index.js"]
}
}
}
Restart Claude Desktop and start converting!
Example Prompts
"Convert /music/beat.mp3 to WAV at 48000Hz stereo"
"Batch convert all MP3s in /stems/ to FLAC"
"Convert broll.mov to WebM, trim to first 30 seconds"
"Extract audio from interview.mp4 as a WAV file"
"Convert logo.png to WebP at quality 90, 800px wide"
"Generate a full icon set from app-icon.png"
"Convert README.md to JSON for my API response"
"Transform data.csv to JSON, then to Markdown table"
"Convert molecule.mol to JSON with atom coordinates"
"Parse FITS astronomy file header to JSON"
"Convert protein.pdb to structured JSON"
"Transform financial_data.ofx to CSV"
"Convert research_data.mat MATLAB file to JSON"
"Parse KML map data to GeoJSON format"
Project Structure
src/
index.ts # MCP server entry point
state/
ConversionState.ts # Conversion history & status tracking
processors/
AudioProcessor.ts # FFmpeg-based audio conversion
VideoProcessor.ts # FFmpeg-based video conversion
ImageProcessor.ts # Sharp-based image conversion
DocProcessor.ts # Pure Node.js document conversion
SpreadsheetProcessor.ts # Spreadsheet/tabular data conversion
ArchiveProcessor.ts # Archive compression/decompression
FontProcessor.ts # Font format conversion
3DProcessor.ts # 3D model conversion
EmailProcessor.ts # Email file parsing
MusicProcessor.ts # Music notation conversion
BiotechProcessor.ts # Bioinformatics file conversion
FintechProcessor.ts # Financial data conversion
LogisticsProcessor.ts # Supply chain & geospatial conversion
DevFormatProcessor.ts # Developer config/schema conversion
StatisticsProcessor.ts # Statistical data format conversion
ChemistryProcessor.ts # Molecular/chemistry file conversion
AstronomyProcessor.ts # Astronomy data conversion
GeoscienceProcessor.ts # Geoscience data conversion
dashboard/
index.html # Visual overview dashboard
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。