过冷mcp
MCP服务器,用于本地文件转换、分析和图像处理。图像、音频、视频、文档和结构化数据都在本地处理,没有上传到任何地方。
支持44种格式 横跨5个类别。 7工具 用于转换、分析、处理、合并和生成文件。
安装
npx overtooled-mcp或全局安装:
npm install -g overtooled-mcp需要 Node.js>=18.
配置
克劳德代码/克劳德桌面
添加到MCP设置中:
{
"mcpServers": {
"overtooled": {
"command": "npx",
"args": ["-y", "overtooled-mcp"]
}
}
}光标
添加 .cursor/mcp.json:
{
"mcpServers": {
"overtooled": {
"command": "npx",
"args": ["-y", "overtooled-mcp"]
}
}
}工具
convert_file
将文件从一种格式转换为另一种格式。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_path | string | 是 | 源文件的绝对路径 |
output_format | string | 是 | MIME类型的目标格式(image/png)或扩展(png) |
output_path | string | 否 | 输出文件路径。默认为具有新扩展名的输入位置 |
options | object | 否 | 格式特定选项(例如。 { quality: 80 }) |
input_path: "/photos/vacation.heic"
output_format: "jpg"
options: { quality: 90 }返回输出路径、输入/输出大小和特定格式的元数据(图像的维度、音频/视频的持续时间等)。
______________________________________________________________________
analyze_file
获取任何文件的详细元数据。对于图像:尺寸、颜色空间、DPI、EXIF。对于音频/视频:持续时间、编解码器、比特率、采样率。对于所有文件:大小、格式检测、熵。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_path | string | 是 | 要分析的文件的绝对路径 |
include_exif | boolean | 否 | 包含图像的完整EXIF数据(默认值: true) |
input_path: "/photos/sunset.jpg"输出示例:
{
"file": "sunset.jpg",
"size": 2457600,
"sizeHuman": "2.3 MB",
"format": "image/jpeg",
"category": "image",
"entropy": 7.45,
"width": 3840,
"height": 2160,
"colorSpace": "srgb",
"dpi": 72,
"exif": { "Make": "Canon", "Model": "EOS 5D", "FocalLength": 50 }
}对于音频/视频文件,返回持续时间、编解码器、比特率、采样率、频道和流详细信息。
______________________________________________________________________
process_image
应用一个或多个图像操作:调整大小、压缩、旋转、翻转、模糊、锐化、灰度、否定、剥离元数据或更改格式。操作是按顺序链接的。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_path | string | 是 | 源图像的绝对路径 |
output_path | string | 否 | 输出路径。默认为 input_processed.[ext] |
operations | array | Yes | 按顺序应用的操作数组(最少1个) |
操作:
| 类型 | 参数 | 描述 |
|---|---|---|
resize | width, height, fit | 缩放图像。 fit:覆盖、包含、填充、内部(默认)、外部 |
compress | quality (1-100,默认80) | 减小文件大小 |
rotate | angle (度) | 任意角度旋转 |
flip | -- | 垂直翻转 |
flop | -- | 水平翻转 |
blur | sigma (0.3-100,默认值3) | 高斯模糊 |
sharpen | sigma (默认值1) | 锐化边缘 |
grayscale | -- | 转换为灰度 |
negate | -- | 反转颜色 |
strip_metadata | -- | 删除EXIF和其他元数据 |
format | format, quality | 转换为jpeg、png、webp、tiff或avif |
input_path: "/photos/large.jpg"
operations: [
{ type: "resize", width: 1280 },
{ type: "compress", quality: 75 },
{ type: "format", format: "webp" }
]______________________________________________________________________
merge_files
将多个文件合并为一个。支持PDF合并、图像到PDF、文本拼接和CSV合并。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_paths | array | Yes | 绝对文件路径数组(最少2个) |
output_path | string | 是 | 合并输出的绝对路径 |
mode | string | 否 | auto (默认), pdf_merge, images_to_pdf, concatenate, csv_merge |
options.separator | string | 否 | 连接文件之间的分隔符(默认值:换行符) |
options.page_size | string | 否 | PDF页面大小: a4 (默认), letter, legal |
options.landscape | boolean | 否 | PDF的横向方向(默认值: false) |
自动检测:所有PDF-> pdf_merge,所有图像-> images_to_pdf,所有CSV-> csv_merge,否则-> concatenate.
input_paths: ["/docs/ch1.pdf", "/docs/ch2.pdf", "/docs/ch3.pdf"]
output_path: "/docs/combined.pdf"______________________________________________________________________
generate_file
从头开始生成占位符/测试文件。不需要输入文件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | text, image, audio, video,或 data |
output_path | string | 是 | 生成文件的绝对路径 |
文本选项 (洛伦兹):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
text_mode | 字符串 | paragraphs | paragraphs, sentences,或 words |
text_count | number | 3 | 要生成的单位数 |
图像选项 (带尺寸标签的占位符,需要尖锐):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
width | number | 800 | 宽度(像素)(最大4096) |
height | number | 600 | 高度(像素)(最大4096) |
bg_color | 字符串 | #cccccc | 背景颜色(十六进制) |
text_color | 字符串 | #666666 | 文本颜色(十六进制) |
label | 字符串 | WIDTHxHEIGHT | 自定义文本叠加 |
image_format | 字符串 | png | png, jpeg,或 webp |
quality | number | 92 | JPEG/WebP的质量(1-100) |
音频选项 (WAV,纯JS——不需要ffmpeg):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
audio_type | 字符串 | tone | tone, noise, chirp,或 silence |
frequency | 数字 | 440 | 音调频率(Hz) |
duration | number | 3 | 持续时间(秒)(最多30) |
sample_rate | 编号 | 44100 | 采样率 |
waveform | 字符串 | sine | sine, square, sawtooth,或 triangle |
视频选项 (具有测试模式的MP4/WebM需要ffmpeg):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
width | number | 640 | 宽度(像素)(最大1920) |
height | 数字 | 480 | 高度(像素)(最大1080) |
duration | number | 3 | 持续时间(秒)(最多30) |
fps | number | 30 | 每秒帧数(最多60帧) |
video_format | 字符串 | mp4 | mp4 或 webm |
video_pattern | 字符串 | solid | solid, counter, gradient,或 bars (SMPTE) |
bg_color | 字符串 | #336699 | 背景颜色(十六进制) |
text_color | 字符串 | #ffffff | 文本颜色(十六进制) |
数据选项 (模拟JSON/CSV):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
data_format | 字符串 | json | json 或 csv |
data_preset | 字符串 | user-profile | user-profile, address-book, employee-list,或 products |
row_count | number | 10 | 行数(最大1000) |
type: "image"
output_path: "/tmp/placeholder.png"
width: 1280
height: 720
label: "Hero Image"type: "audio"
output_path: "/tmp/test-tone.wav"
audio_type: "tone"
frequency: 1000
duration: 5
waveform: "square"______________________________________________________________________
list_formats
列出所有支持的格式,可选择按类别或给定输入格式可以转换为的格式进行筛选。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
category | string | 否 | 按类别筛选: image, audio, video, text, document |
input_format | string | 否 | 仅显示此输入可以转换为的格式(MIME或扩展名) |
category: "image"input_format: "csv" # shows what CSV can convert to______________________________________________________________________
get_conversion_options
获取特定输出格式的可用选项及其默认值。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
output_format | string | 是 | 目标格式为MIME类型或扩展名 |
output_format: "mp3"返回格式信息和可配置选项(质量、比特率、压缩级别等)。
支持格式
图像(9输入,4输出)
| 格式 | 输入 | 输出 | 选项 |
|---|---|---|---|
| PNG | 是 | 是 | -- |
| JPEG | 是 | 是 | 质量:1-100(默认值92) |
| WebP | 是 | 是 | 质量:1-100(默认80) |
| GIF | 是 | -- | -- |
| BMP | 是 | -- | -- |
| SVG | 是 | -- | -- |
| HEIC | 是 | -- | -- |
| HEIF | 是 | -- | -- |
| TIFF | 是 | 是 | -- |
音频(8路输入,7路输出)
| 格式 | 输入 | 输出 | 选项 |
|---|---|---|---|
| WAV | 是 | 是 | 位深度:16/24/32 |
| MP3 | 是 | 是 | 比特率:128/192/256/320 kbps |
| FLAC | 是 | 是 | 压缩级别:0-8 |
| OGG | 是 | -- | -- |
| AAC | 是 | 是 | 比特率:128/192/256/320 kbps |
| M4A | 是 | 是 | 比特率:128/192/256/320 kbps |
| Opus | 是 | 是 | 比特率:64/128/192/256 kbps |
| AIFF | 是 | 是 | 位深度:16/24/32 |
视频(6输入,6输出)
| 格式 | 输入 | 输出 | 选项 |
|---|---|---|---|
| MP4 | 是 | 是 | crf:0-51(默认28),预设,最大高度 |
| WebM | 是 | 是 | crf:0-63(默认值32),预设,最大高度 |
| MOV | 是 | 是 | crf:0-51(默认28),预设,最大高度 |
| AVI | 是 | -- | -- |
| MKV | yes | yes | crf:0-51(默认28),预设,最大高度 |
| MPEG-TS | 是 | 是 | crf:0-51(默认28),预设,最大高度 |
| GIF | -- | yes | fps:5-30(默认10),最大高度 |
视频选项: preset (超快/快/中/慢), maxHeight (4K/1440/1080/720/480/360), stripAudio (布尔值)。
数据(9输入,10输出)
| 格式 | 输入 | 输出 | 选项 |
|---|---|---|---|
| JSON | 是 | 是 | 缩进:0-8(默认2) |
| CSV | yes | yes | 分隔符:逗号/分号/管道 |
| TSV | 是 | 是 | -- |
| XML | 是 | 是 | 缩进:0-8(默认2) |
| YAML | 是 | 是 | -- |
| 汤姆 | 是的 | 是的 | -- |
| INI | 是 | 是 | -- |
| XLSX | 是 | 是 | -- |
| SQL | -- | yes | tableName,方言:插入/创建插入 |
标记
| 格式 | 输入 | 输出 |
|---|---|---|
| Markdown | 是 | 是 |
| HTML | 是 | 是 |
| 纯文本 | 是 | 是 |
文档(7个输入,1个输出)
| 格式 | 输入 | 输出 | 注释 |
|---|---|---|---|
| 是 | 是 | 也可转换为图像或纯文本 | |
| DOCX | yes | -- | 转换为PDF |
| PPTX | 是 | -- | 转换为PDF |
| ODT | yes | -- | 转换为PDF |
| ODP | 是 | -- | 转换为PDF |
| ODS | 是 | -- | 转换为PDF |
| RTF | 是 | -- | 转换为PDF |
跨类别: 所有图像、结构化数据和标记也可以转换为PDF。
转换规则
- 类别内: 任何输入->同一类别中的所有输出(不包括相同格式)
- PDF格式: 图像、结构化数据和标记都可以转换为PDF
- 来自PDF: PDF->图像(第一页渲染)或纯文本(提取)
- 文档->PDF: DOCX、PPTX、ODT、ODP、ODS、RTF都只能转换为PDF
- 无跨类别: 音频无法转换为图像,视频无法转换为数据等。
依赖项
必需(自动安装): 文本和数据转换开箱即用。
可选(安装以获得完整格式支持):
| 软件包 | 启用 | 安装 |
|---|---|---|
sharp | 图像转换和分析 | npm install sharp |
ffmpeg-static | 音频/视频转换 | npm install ffmpeg-static |
canvas | PDF转图像渲染 | npm install canvas |
如果 ffmpeg-static 未安装,服务器将查找 ffmpeg 在您的系统PATH中。
缺少可选依赖项会产生明确的错误消息,告诉您要安装什么。
建筑
搬运来的 过冷 --179工具浏览器实用程序套件。转换引擎从客户端(Canvas、Web Audio、WebCodecs)转换为Node.js(sharp、FFmpeg、PDFKit)。
src/
server.ts # MCP server + tool registration
tools/ # 7 tool handlers
convert-file.ts
analyze-file.ts
process-image.ts
merge-files.ts
generate-file.ts
list-formats.ts
get-options.ts
engines/ # Conversion engines by category
engine-image.ts # sharp
engine-audio.ts # FFmpeg CLI
engine-video.ts # FFmpeg CLI
engine-text.ts # Pure JS
engine-pdf.ts # PDFKit + pdfjs-dist + mammoth
registry/
format-registry.ts # Format definitions + conversion matrix
utils/
mime.ts # MIME detection from extension
ffmpeg.ts # FFmpeg binary resolution
ffprobe.ts # Media metadata extraction via ffprobe
magic-bytes.ts # File type detection by header bytes发动机
- 文本引擎: 纯JS。JSON、CSV、XML、YAML、TOML、INI、SQL、XLSX、Markdown、HTML。两阶段转换:解析输入->JS对象->序列化输出。
- 图像引擎: 用于解码/编码。本机处理HEIC、TIFF、SVG。
- 音频引擎: FFmpeg CLI,具有编解码器选择和比特率/质量映射功能。5分钟超时。
- 视频引擎: FFmpeg CLI具有CRF质量、分辨率缩放、GIF调色板生成功能。10分钟超时。
- PDF引擎: PDFKit用于生成,pdfjs-dist用于文本提取,猛犸象用于DOCX,pdf库用于合并。
发展
npm run build # Compile TypeScript
npm run dev # Watch mode
npm test # Run tests (vitest)
npm run test:watch # Watch mode tests
npm run lint # Type check许可证
麻省理工学院
