MCP server for local file conversion - images, audio, video, documents, and data formats. Privacy-first, everything runs locally.
overtooled-mcp provides comprehensive tool definitions with descriptive text and visible parameter schemas. However, there are consistent gaps in output schema documentation, parameter type constraints, and error handling guidance. Naming is generally clear and action-oriented (convert_, list_, get_, analyze_, process_, merge_, generate_). Descriptions range from 60 - 180 characters, meeting baseline expectations (p10=34, p90=392). The server registers 7 tools with explicit schemas in TypeScript, but several critical patterns are underdeveloped: (1) Output schemas are not documented in tool descriptions, LLMs cannot plan downstream calls without knowing what fields to expect; (2) Parameters lack enum constraints where applicable (e.g., 'category' in list_formats should be an enum); (3) Error handling does not guide recovery or categorize failures; (4) No permission gates or scope declarations despite destructive operations (convert_file, process_image, merge_files, generate_file all modify the filesystem).
Analyze a file and return its metadata. For images: dimensions, color space, DPI, EXIF data. For audio/video: duration, codec, bitrate, sample rate. For all files: size, format detection, entropy.
Convert a file between any two supported formats. Specify input/output formats by MIME type or file extension. Returns the output path and conversion metadata.
Generate a new file from structured data or templates. Create PDFs from markdown/HTML/JSON/CSV, generate images from text descriptions (requires local model), or create structured data files from templates.
Get conversion options available for a specific format. Returns parameter names, types, defaults, and allowed values for fine-tuning conversions.
List all supported file formats, organized by category (image, audio, video, text/data, document). Shows which formats can be used as input vs. output, and available conversion options.
Merge multiple files of the same category into a single output file. For PDFs: concatenate pages. For audio: join into single track. For images: stack vertically or horizontally. For structured data: combine arrays/objects.
Output schemas are not documented. Tool descriptions do not specify what fields, types, or structures the LLM will receive in responses. This blocks multi-step planning and forces LLMs to guess at field names.
Parameters with constrained valid values are not declared as enums in the schema. For example, 'category' in list_formats should be enum: ['image', 'audio', 'video', 'text', 'document']; 'output_format' in multiple tools should enumerate supported MIME types or extensions. Free-form strings invite hallucinated values.
process_image 'operations' parameter is severely underdeveloped. The schema shows a generic array of objects with 'type' and 'params' fields, but does not enumerate valid operation types (resize, rotate, flip, brightness, contrast, saturation, blur, sharpen) or document the params structure for each. This forces LLMs to hallucinate operation definitions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Apply transformations to an image file without changing its format. Supports resize, rotate, flip, adjusts brightness/contrast/saturation, blur, sharpen, and format-specific operations.
No error handling or recovery guidance. Tools like convert_file, process_image, merge_files, and generate_file can fail due to file not found, unsupported format, disk full, or invalid options. Descriptions do not explain what errors can occur, how to categorize them (retryable, user-fixable, fatal), or what the LLM should do next.
Destructive operations (convert_file, process_image, merge_files, generate_file) lack permission gates, scope declarations, or confirmation patterns. There is no audit trail, no least-privilege verification, and no dry-run option. An agent could accidentally overwrite critical files without any safeguards.
Parameter constraints for numeric ranges, lengths, and formats are not documented. For example, options objects in convert_file and merge_files accept arbitrary key-value pairs; there is no specification of valid keys, expected value types, or ranges (e.g., quality 0 - 100, bitrate limits, compression level 0 - 9).
process_image lacks specificity in naming. 'process' is generic; the name does not convey that it applies transformations (resize, rotate, filter) without changing format. Consider 'transform_image' or 'edit_image' to better signal intent.