overtooled-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@overtooled-mcpconvert image.heic to jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
overtooled-mcp
MCP server for local file conversion, analysis, and image processing. Images, audio, video, documents, and structured data -- all processed locally, nothing uploaded anywhere.
44 supported formats across 5 categories. 7 tools for converting, analyzing, processing, merging, and generating files.
Install
npx overtooled-mcpOr install globally:
npm install -g overtooled-mcpRequires Node.js >= 18.
Related MCP server: media-mcp
Configure
Claude Code / Claude Desktop
Add to your MCP settings:
{
"mcpServers": {
"overtooled": {
"command": "npx",
"args": ["-y", "overtooled-mcp"]
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"overtooled": {
"command": "npx",
"args": ["-y", "overtooled-mcp"]
}
}
}Tools
convert_file
Convert a file from one format to another.
Parameter | Type | Required | Description |
| string | Yes | Absolute path to the source file |
| string | Yes | Target format as MIME type ( |
| string | No | Output file path. Defaults to input location with new extension |
| object | No | Format-specific options (e.g. |
input_path: "/photos/vacation.heic"
output_format: "jpg"
options: { quality: 90 }Returns the output path, input/output sizes, and format-specific metadata (dimensions for images, duration for audio/video, etc.).
analyze_file
Get detailed metadata about any file. For images: dimensions, color space, DPI, EXIF. For audio/video: duration, codec, bitrate, sample rate. For all files: size, format detection, entropy.
Parameter | Type | Required | Description |
| string | Yes | Absolute path to the file to analyze |
| boolean | No | Include full EXIF data for images (default: |
input_path: "/photos/sunset.jpg"Example output:
{
"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 }
}For audio/video files, returns duration, codec, bitrate, sample rate, channels, and stream details.
process_image
Apply one or more image operations: resize, compress, rotate, flip, blur, sharpen, grayscale, negate, strip metadata, or change format. Operations are chained in order.
Parameter | Type | Required | Description |
| string | Yes | Absolute path to the source image |
| string | No | Output path. Defaults to |
| array | Yes | Array of operations to apply in order (min 1) |
Operations:
Type | Parameters | Description |
|
| Scale image. |
|
| Reduce file size |
|
| Rotate by arbitrary angle |
| -- | Flip vertically |
| -- | Flip horizontally |
|
| Gaussian blur |
|
| Sharpen edges |
| -- | Convert to grayscale |
| -- | Invert colors |
| -- | Remove EXIF and other metadata |
|
| Convert to jpeg, png, webp, tiff, or avif |
input_path: "/photos/large.jpg"
operations: [
{ type: "resize", width: 1280 },
{ type: "compress", quality: 75 },
{ type: "format", format: "webp" }
]merge_files
Combine multiple files into one. Supports PDF merging, images-to-PDF, text concatenation, and CSV merging.
Parameter | Type | Required | Description |
| array | Yes | Array of absolute file paths (min 2) |
| string | Yes | Absolute path for the merged output |
| string | No |
|
| string | No | Separator between concatenated files (default: newline) |
| string | No | PDF page size: |
| boolean | No | Landscape orientation for PDF (default: |
Auto-detection: all PDFs -> pdf_merge, all images -> images_to_pdf, all CSVs -> csv_merge, otherwise -> concatenate.
input_paths: ["/docs/ch1.pdf", "/docs/ch2.pdf", "/docs/ch3.pdf"]
output_path: "/docs/combined.pdf"generate_file
Generate placeholder/test files from scratch. No input file needed.
Parameter | Type | Required | Description |
| string | Yes |
|
| string | Yes | Absolute path for the generated file |
Text options (lorem ipsum):
Parameter | Type | Default | Description |
| string |
|
|
| number | 3 | Number of units to generate |
Image options (placeholder with dimensions label, requires sharp):
Parameter | Type | Default | Description |
| number | 800 | Width in pixels (max 4096) |
| number | 600 | Height in pixels (max 4096) |
| string |
| Background color (hex) |
| string |
| Text color (hex) |
| string |
| Custom text overlay |
| string |
|
|
| number | 92 | Quality for JPEG/WebP (1-100) |
Audio options (WAV, pure JS -- no ffmpeg needed):
Parameter | Type | Default | Description |
| string |
|
|
| number | 440 | Tone frequency in Hz |
| number | 3 | Duration in seconds (max 30) |
| number | 44100 | Sample rate |
| string |
|
|
Video options (MP4/WebM with test patterns, requires ffmpeg):
Parameter | Type | Default | Description |
| number | 640 | Width in pixels (max 1920) |
| number | 480 | Height in pixels (max 1080) |
| number | 3 | Duration in seconds (max 30) |
| number | 30 | Frames per second (max 60) |
| string |
|
|
| string |
|
|
| string |
| Background color (hex) |
| string |
| Text color (hex) |
Data options (mock JSON/CSV):
Parameter | Type | Default | Description |
| string |
|
|
| string |
|
|
| number | 10 | Number of rows (max 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
List all supported formats, optionally filtered by category or by what a given input format can convert to.
Parameter | Type | Required | Description |
| string | No | Filter by category: |
| string | No | Show only formats this input can convert to (MIME or extension) |
category: "image"input_format: "csv" # shows what CSV can convert toget_conversion_options
Get available options and their defaults for a specific output format.
Parameter | Type | Required | Description |
| string | Yes | Target format as MIME type or extension |
output_format: "mp3"Returns format info plus configurable options (quality, bitrate, compression level, etc.).
Supported Formats
Images (9 input, 4 output)
Format | Input | Output | Options |
PNG | yes | yes | -- |
JPEG | yes | yes | quality: 1-100 (default 92) |
WebP | yes | yes | quality: 1-100 (default 80) |
GIF | yes | -- | -- |
BMP | yes | -- | -- |
SVG | yes | -- | -- |
HEIC | yes | -- | -- |
HEIF | yes | -- | -- |
TIFF | yes | yes | -- |
Audio (8 input, 7 output)
Format | Input | Output | Options |
WAV | yes | yes | bitDepth: 16/24/32 |
MP3 | yes | yes | bitrate: 128/192/256/320 kbps |
FLAC | yes | yes | compressionLevel: 0-8 |
OGG | yes | -- | -- |
AAC | yes | yes | bitrate: 128/192/256/320 kbps |
M4A | yes | yes | bitrate: 128/192/256/320 kbps |
Opus | yes | yes | bitrate: 64/128/192/256 kbps |
AIFF | yes | yes | bitDepth: 16/24/32 |
Video (6 input, 6 output)
Format | Input | Output | Options |
MP4 | yes | yes | crf: 0-51 (default 28), preset, maxHeight |
WebM | yes | yes | crf: 0-63 (default 32), preset, maxHeight |
MOV | yes | yes | crf: 0-51 (default 28), preset, maxHeight |
AVI | yes | -- | -- |
MKV | yes | yes | crf: 0-51 (default 28), preset, maxHeight |
MPEG-TS | yes | yes | crf: 0-51 (default 28), preset, maxHeight |
GIF | -- | yes | fps: 5-30 (default 10), maxHeight |
Video options: preset (ultrafast/fast/medium/slow), maxHeight (4K/1440/1080/720/480/360), stripAudio (boolean).
Data (9 input, 10 output)
Format | Input | Output | Options |
JSON | yes | yes | indent: 0-8 (default 2) |
CSV | yes | yes | delimiter: comma/semicolon/pipe |
TSV | yes | yes | -- |
XML | yes | yes | indent: 0-8 (default 2) |
YAML | yes | yes | -- |
TOML | yes | yes | -- |
INI | yes | yes | -- |
XLSX | yes | yes | -- |
SQL | -- | yes | tableName, dialect: insert/create-insert |
Markup
Format | Input | Output |
Markdown | yes | yes |
HTML | yes | yes |
Plain Text | yes | yes |
Documents (7 input, 1 output)
Format | Input | Output | Notes |
yes | yes | Also converts to images or plain text | |
DOCX | yes | -- | Converts to PDF |
PPTX | yes | -- | Converts to PDF |
ODT | yes | -- | Converts to PDF |
ODP | yes | -- | Converts to PDF |
ODS | yes | -- | Converts to PDF |
RTF | yes | -- | Converts to PDF |
Cross-category: All images, structured data, and markup can also convert to PDF.
Conversion Rules
Within category: Any input -> all outputs in the same category (excluding same format)
To PDF: Images, structured data, and markup can all convert to PDF
From PDF: PDF -> images (first page rendered) or plain text (extracted)
Documents -> PDF: DOCX, PPTX, ODT, ODP, ODS, RTF all convert to PDF only
No cross-category: Audio cannot convert to images, video cannot convert to data, etc.
Dependencies
Required (installed automatically): Text and data conversion works out of the box.
Optional (install for full format support):
Package | Enables | Install |
| Image conversion and analysis |
|
| Audio/video conversion |
|
| PDF-to-image rendering |
|
If ffmpeg-static is not installed, the server looks for ffmpeg in your system PATH.
Missing optional dependencies produce clear error messages telling you what to install.
Architecture
Ported from Overtooled -- a 179-tool browser utility suite. The conversion engines were adapted from client-side (Canvas, Web Audio, WebCodecs) to 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 bytesEngines
Text engine: Pure JS. JSON, CSV, XML, YAML, TOML, INI, SQL, XLSX, Markdown, HTML. Two-stage conversion: parse input -> JS objects -> serialize output.
Image engine: sharp for decode/encode. Handles HEIC, TIFF, SVG natively.
Audio engine: FFmpeg CLI with codec selection and bitrate/quality mapping. 5-minute timeout.
Video engine: FFmpeg CLI with CRF quality, resolution scaling, GIF palette generation. 10-minute timeout.
PDF engine: PDFKit for generation, pdfjs-dist for text extraction, mammoth for DOCX, pdf-lib for merging.
Development
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 checkLicense
MIT
This server cannot be installed
Maintenance
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
- Flicense-qualityDmaintenanceAn MCP server that provides comprehensive PDF processing capabilities including text extraction, image extraction, table detection, annotation extraction, metadata retrieval, page rendering, and document structure analysis.Last updated
- AlicenseAqualityCmaintenanceAn MCP server for image and video processing that allows AI assistants to resize, convert, compress, and analyze media files locally without API keys. It supports a wide range of formats and provides tools for tasks such as metadata removal, frame extraction, and video conversion.Last updated134MIT
- AlicenseAqualityDmaintenanceAn MCP server for local PDF manipulation including merging, splitting, rotating, watermarking, and text extraction. It works with various MCP-compatible clients and processes PDFs entirely on-device without cloud services.Last updated1120MIT
- Alicense-qualityBmaintenanceA full-featured secure MCP server for local file system operations, with built-in image processing, OCR and media tools.Last updatedApache 2.0
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Wan AI video generation
Normalize and convert 400+ file types via TweekIT's hosted MCP endpoint.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ChefJulio/overtooled-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server