Frenchie
What this MCP does
Processes uploaded documents, PDFs, images, audio, and video into Markdown through extraction, OCR, and transcription, and generates images from text prompts.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'file_path': {'type': 'string', 'minLength': 1, 'description': 'Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead.'}, 'uploaded_file_reference': {'type': 'string', 'minLength': 1, 'description': 'Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jobId': {'type': 'string', 'minLength': 1}, 'result': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'markdown'}, 'pages': {'type': 'integer', 'minimum': 0, 'description': 'Number of pages processed — OCR only'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path from output root to the saved result.md'}, 'markdown': {'type': 'string', 'description': 'HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)'}, 'wordCount': {'type': 'integer', 'minimum': 0, 'description': 'Approximate word count of the markdown'}, 'imageCount': {'type': 'integer', 'minimum': 0, 'description': 'Number of embedded images saved alongside result.md'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'format', 'mimeType'], 'properties': {'kind': {'type': 'string', 'const': 'image'}, 'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string'}, 'style': {'type': 'string'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path to the persisted image file'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'HTTP mode: presigned HTTPS link (~30 min expiry)'}, 'mimeType': {'type': 'string'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string'}}, 'additionalProperties': False}]}, 'status': {'enum': ['done', 'processing'], 'type': 'string'}, 'creditsUsed': {'type': 'number', 'minimum': 0}, 'resultExpiresAt': {'type': 'string', 'format': 'date-time'}, 'estimatedCompletion': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['object_key'], 'properties': {'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'object_key': {'type': 'string', 'minLength': 1, 'description': 'The object key parsed from a frenchie-result:<objectKey> reference in the result markdown.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['download_url', 'filename', 'expires_in'], 'properties': {'filename': {'type': 'string', 'description': 'Suggested filename derived from the original object key.'}, 'expires_in': {'type': 'integer', 'description': 'URL expiry in seconds (typically 900).', 'exclusiveMinimum': 0}, 'download_url': {'type': 'string', 'description': 'Temporary HTTPS download URL for the result file.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['prompt'], 'properties': {'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string', 'description': 'Optional output size. Defaults to automatic selection.'}, 'style': {'type': 'string', 'maxLength': 500, 'description': "Optional style direction (e.g. 'flat vector, neon palette'). Merged into the generation prompt by Frenchie."}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string', 'description': 'Optional output format. Defaults to png.'}, 'prompt': {'type': 'string', 'maxLength': 3500, 'minLength': 1, 'description': "Required. Plain-language description of the image to generate (e.g. 'poster of a ramen shop at night')."}, 'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'quality': {'enum': ['low', 'medium', 'high', 'auto'], 'type': 'string', 'description': 'Optional output quality.'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string', 'description': 'Optional background. transparent is rejected when format is jpeg.'}, 'output_dir': {'type': 'string', 'minLength': 1, 'description': "Stdio mode only: absolute directory under which .frenchie/<slug>/generated.<ext> is saved. Defaults to the MCP server's process cwd. Recommended: pass your workspace root so the image lands next to your work instead of $HOME."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jobId': {'type': 'string', 'minLength': 1}, 'result': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'markdown'}, 'pages': {'type': 'integer', 'minimum': 0, 'description': 'Number of pages processed — OCR only'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path from output root to the saved result.md'}, 'markdown': {'type': 'string', 'description': 'HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)'}, 'wordCount': {'type': 'integer', 'minimum': 0, 'description': 'Approximate word count of the markdown'}, 'imageCount': {'type': 'integer', 'minimum': 0, 'description': 'Number of embedded images saved alongside result.md'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'format', 'mimeType'], 'properties': {'kind': {'type': 'string', 'const': 'image'}, 'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string'}, 'style': {'type': 'string'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path to the persisted image file'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'HTTP mode: presigned HTTPS link (~30 min expiry)'}, 'mimeType': {'type': 'string'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string'}}, 'additionalProperties': False}]}, 'status': {'enum': ['done', 'processing'], 'type': 'string'}, 'creditsUsed': {'type': 'number', 'minimum': 0}, 'resultExpiresAt': {'type': 'string', 'format': 'date-time'}, 'estimatedCompletion': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'minLength': 1, 'description': "Job ID returned by ocr_to_markdown, transcribe_to_markdown, or generate_image when status was 'processing'."}, 'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jobId': {'type': 'string', 'minLength': 1}, 'result': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'markdown'}, 'pages': {'type': 'integer', 'minimum': 0, 'description': 'Number of pages processed — OCR only'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path from output root to the saved result.md'}, 'markdown': {'type': 'string', 'description': 'HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)'}, 'wordCount': {'type': 'integer', 'minimum': 0, 'description': 'Approximate word count of the markdown'}, 'imageCount': {'type': 'integer', 'minimum': 0, 'description': 'Number of embedded images saved alongside result.md'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'format', 'mimeType'], 'properties': {'kind': {'type': 'string', 'const': 'image'}, 'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string'}, 'style': {'type': 'string'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path to the persisted image file'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'HTTP mode: presigned HTTPS link (~30 min expiry)'}, 'mimeType': {'type': 'string'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string'}}, 'additionalProperties': False}]}, 'status': {'enum': ['done', 'processing'], 'type': 'string'}, 'creditsUsed': {'type': 'number', 'minimum': 0}, 'resultExpiresAt': {'type': 'string', 'format': 'date-time'}, 'estimatedCompletion': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'file_path': {'type': 'string', 'minLength': 1, 'description': 'Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead.'}, 'uploaded_file_reference': {'type': 'string', 'minLength': 1, 'description': 'Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jobId': {'type': 'string', 'minLength': 1}, 'result': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'markdown'}, 'pages': {'type': 'integer', 'minimum': 0, 'description': 'Number of pages processed — OCR only'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path from output root to the saved result.md'}, 'markdown': {'type': 'string', 'description': 'HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)'}, 'wordCount': {'type': 'integer', 'minimum': 0, 'description': 'Approximate word count of the markdown'}, 'imageCount': {'type': 'integer', 'minimum': 0, 'description': 'Number of embedded images saved alongside result.md'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'format', 'mimeType'], 'properties': {'kind': {'type': 'string', 'const': 'image'}, 'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string'}, 'style': {'type': 'string'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path to the persisted image file'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'HTTP mode: presigned HTTPS link (~30 min expiry)'}, 'mimeType': {'type': 'string'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string'}}, 'additionalProperties': False}]}, 'status': {'enum': ['done', 'processing'], 'type': 'string'}, 'creditsUsed': {'type': 'number', 'minimum': 0}, 'resultExpiresAt': {'type': 'string', 'format': 'date-time'}, 'estimatedCompletion': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'language': {'type': 'string', 'maxLength': 10, 'minLength': 2, 'description': "Optional ISO 639-1 language code (e.g. 'th', 'en', 'ja') for better accuracy; omit for auto-detection."}, 'file_path': {'type': 'string', 'minLength': 1, 'description': 'Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead.'}, 'uploaded_file_reference': {'type': 'string', 'minLength': 1, 'description': 'Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'jobId': {'type': 'string', 'minLength': 1}, 'result': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'markdown'}, 'pages': {'type': 'integer', 'minimum': 0, 'description': 'Number of pages processed — OCR only'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path from output root to the saved result.md'}, 'markdown': {'type': 'string', 'description': 'HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)'}, 'wordCount': {'type': 'integer', 'minimum': 0, 'description': 'Approximate word count of the markdown'}, 'imageCount': {'type': 'integer', 'minimum': 0, 'description': 'Number of embedded images saved alongside result.md'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'format', 'mimeType'], 'properties': {'kind': {'type': 'string', 'const': 'image'}, 'size': {'enum': ['1024x1024', '1536x1024', '1024x1536', 'auto'], 'type': 'string'}, 'style': {'type': 'string'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string'}, 'savedTo': {'type': 'string', 'description': 'Stdio mode: relative path to the persisted image file'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'HTTP mode: presigned HTTPS link (~30 min expiry)'}, 'mimeType': {'type': 'string'}, 'background': {'enum': ['transparent', 'opaque', 'auto'], 'type': 'string'}}, 'additionalProperties': False}]}, 'status': {'enum': ['done', 'processing'], 'type': 'string'}, 'creditsUsed': {'type': 'number', 'minimum': 0}, 'resultExpiresAt': {'type': 'string', 'format': 'date-time'}, 'estimatedCompletion': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['filename', 'file_size', 'mime_type'], 'properties': {'api_key': {'type': 'string', 'minLength': 1, 'description': 'Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.'}, 'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': "Original filename with extension (e.g. 'report.pdf')."}, 'file_size': {'type': 'integer', 'maximum': 2147483648, 'description': 'File size in bytes.', 'exclusiveMinimum': 0}, 'mime_type': {'type': 'string', 'minLength': 1, 'description': "MIME type (e.g. 'application/pdf', 'audio/mpeg')."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['upload_url', 'object_key', 'expires_in'], 'properties': {'expires_in': {'type': 'integer', 'description': 'URL expiry in seconds', 'exclusiveMinimum': 0}, 'object_key': {'type': 'string', 'minLength': 1, 'description': 'Pass this as uploaded_file_reference to ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown'}, 'upload_url': {'type': 'string', 'format': 'uri', 'description': 'Presigned URL — PUT the file here with the correct Content-Type header'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
framesail
Creates long-form YouTube videos through script generation, storyboarding, visual assets, voiceover, music, scene composition, an…
Magnific
Provides image enhancement and design tools, AI image and audio generation, text-to-speech, creation management, and reusable cre…
Uwear
Supports AI fashion photoshoot production with garments, outfits, avatars, locations, art direction, image generation, backdrops,…
Creative Claw
Generates and edits branded images, video, audio, speech, and 3D-related creative assets, with media processing and reusable them…