OCR, transcription, file extraction, and image generation for AI agents via MCP.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer fr_... — your Frenchie API key
Optional ISO 639-1 language hint (e.g. 'th', 'en', 'ja') applied to transcribe_to_markdown when the tool input does not specify a language. Tool-level language always wins.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Extract structured documents (.docx, .xlsx, .csv, .tsv, .pptx) into Markdown through Frenchie. stdio mode auto-saves the result to .frenchie/<name>/result.md; HTTP mode returns inline Markdown.
Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted.
Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead.
Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Extract structured documents (.docx, .xlsx, .csv, .tsv, .pptx) into Markdown through Frenchie. stdio mode auto-saves the result to .frenchie/<name>/result.md; HTTP mode returns inline Markdown.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| file_path | string | Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead. |
| uploaded_file_reference | string | Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio. |
{
"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
}Get a temporary download URL for a result file from OCR/transcription output. Use this to download images referenced as frenchie-result: in the result markdown.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| object_key* | string | The object key parsed from a frenchie-result:<objectKey> reference in the result markdown. |
{
"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
}Generate a single image from a text prompt through Frenchie. Required: prompt. Optional: style (free-text style direction), size, quality, format, background. stdio mode auto-saves the image to .frenchie/<slug>/generated.<ext>; HTTP mode returns a presigned imageUrl that the agent should download for the user.
| Argument | Type | Description |
|---|---|---|
| size | string | Optional output size. Defaults to automatic selection. |
| style | string | Optional style direction (e.g. 'flat vector, neon palette'). Merged into the generation prompt by Frenchie. |
| format | string | Optional output format. Defaults to png. |
| prompt* | string | Required. Plain-language description of the image to generate (e.g. 'poster of a ramen shop at night'). |
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| quality | string | Optional output quality. |
| background | string | Optional background. transparent is rejected when format is jpeg. |
| output_dir | string | 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. |
Fetch the latest async Frenchie job result
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID returned by ocr_to_markdown, transcribe_to_markdown, or generate_image when status was 'processing'. |
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
{
"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
}Convert PDF/image files into Markdown through Frenchie
| Argument | Type | Description |
|---|---|---|
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| file_path | string | Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead. |
| uploaded_file_reference | string | Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio. |
{
"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
}Convert audio/video files into Markdown transcripts through Frenchie. Set language (ISO 639-1 code, e.g. 'th', 'en', 'ja') for better accuracy; omit for auto-detection.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| language | string | Optional ISO 639-1 language code (e.g. 'th', 'en', 'ja') for better accuracy; omit for auto-detection. |
| file_path | string | Absolute local file path. Stdio transport only — over HTTP, upload via upload_file first and pass uploaded_file_reference instead. |
| uploaded_file_reference | string | Object key returned by upload_file. Required for HTTP transport; ignored when file_path is provided in stdio. |
{
"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
}Get a presigned upload URL for use with ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown in HTTP mode. After calling this tool, PUT the file to upload_url (with the correct Content-Type header), then pass object_key as uploaded_file_reference to the processing tool.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted. |
| filename* | string | Original filename with extension (e.g. 'report.pdf'). |
| file_size* | integer | File size in bytes. |
| mime_type* | string | MIME type (e.g. 'application/pdf', 'audio/mpeg'). |
{
"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
}{
"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
}