Frenchie

OCR, transcription, file extraction, and image generation for AI agents via MCP.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
96%
命名の品質
91%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~4,018トークン数(ツール定義)
~6.1 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.14%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "frenchie-skill": {
      "url": "https://mcp.getfrenchie.dev"
    }
  }
}

リモートエンドポイント

https://mcp.getfrenchie.devstreamable-http

できること

ツール一覧

ツール(7)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
⚪ocr_to_markdown(file_path, uploaded_file_reference, api_key)

Convert PDF/image files into Markdown through Frenchie

入力スキーマ

{
  "type": "object",
  "properties": {
    "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."
    },
    "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,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "processing"
      ]
    },
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "creditsUsed": {
      "type": "number",
      "minimum": 0
    },
    "resultExpiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "estimatedCompletion": {
      "type": "string",
      "format": "date-time"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "markdown"
            },
            "markdown": {
              "type": "string",
              "description": "HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path from output root to the saved result.md"
            },
            "pages": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of pages processed — OCR only"
            },
            "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"
            }
          },
          "required": [
            "kind"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "image"
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "jpeg",
                "webp"
              ]
            },
            "mimeType": {
              "type": "string"
            },
            "size": {
              "type": "string",
              "enum": [
                "1024x1024",
                "1536x1024",
                "1024x1536",
                "auto"
              ]
            },
            "background": {
              "type": "string",
              "enum": [
                "transparent",
                "opaque",
                "auto"
              ]
            },
            "style": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri",
              "description": "HTTP mode: presigned HTTPS link (~30 min expiry)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path to the persisted image file"
            }
          },
          "required": [
            "kind",
            "format",
            "mimeType"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡transcribe_to_markdown(file_path, uploaded_file_reference, api_key, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "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."
    },
    "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",
      "minLength": 2,
      "maxLength": 10,
      "description": "Optional ISO 639-1 language code (e.g. 'th', 'en', 'ja') for better accuracy; omit for auto-detection."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "processing"
      ]
    },
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "creditsUsed": {
      "type": "number",
      "minimum": 0
    },
    "resultExpiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "estimatedCompletion": {
      "type": "string",
      "format": "date-time"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "markdown"
            },
            "markdown": {
              "type": "string",
              "description": "HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path from output root to the saved result.md"
            },
            "pages": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of pages processed — OCR only"
            },
            "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"
            }
          },
          "required": [
            "kind"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "image"
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "jpeg",
                "webp"
              ]
            },
            "mimeType": {
              "type": "string"
            },
            "size": {
              "type": "string",
              "enum": [
                "1024x1024",
                "1536x1024",
                "1024x1536",
                "auto"
              ]
            },
            "background": {
              "type": "string",
              "enum": [
                "transparent",
                "opaque",
                "auto"
              ]
            },
            "style": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri",
              "description": "HTTP mode: presigned HTTPS link (~30 min expiry)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path to the persisted image file"
            }
          },
          "required": [
            "kind",
            "format",
            "mimeType"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢generate_image(prompt, style, size, quality, format, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 3500,
      "description": "Required. Plain-language description of the image to generate (e.g. 'poster of a ramen shop at night')."
    },
    "style": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional style direction (e.g. 'flat vector, neon palette'). Merged into the generation prompt by Frenchie."
    },
    "size": {
      "type": "string",
      "enum": [
        "1024x1024",
        "1536x1024",
        "1024x1536",
        "auto"
      ],
      "description": "Optional output size. Defaults to automatic selection."
    },
    "quality": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "auto"
      ],
      "description": "Optional output quality."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "jpeg",
        "webp"
      ],
      "description": "Optional output format. Defaults to png."
    },
    "background": {
      "type": "string",
      "enum": [
        "transparent",
        "opaque",
        "auto"
      ],
      "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."
    },
    "api_key": {
      "type": "string",
      "minLength": 1,
      "description": "Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted."
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "processing"
      ]
    },
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "creditsUsed": {
      "type": "number",
      "minimum": 0
    },
    "resultExpiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "estimatedCompletion": {
      "type": "string",
      "format": "date-time"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "markdown"
            },
            "markdown": {
              "type": "string",
              "description": "HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path from output root to the saved result.md"
            },
            "pages": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of pages processed — OCR only"
            },
            "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"
            }
          },
          "required": [
            "kind"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "image"
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "jpeg",
                "webp"
              ]
            },
            "mimeType": {
              "type": "string"
            },
            "size": {
              "type": "string",
              "enum": [
                "1024x1024",
                "1536x1024",
                "1024x1536",
                "auto"
              ]
            },
            "background": {
              "type": "string",
              "enum": [
                "transparent",
                "opaque",
                "auto"
              ]
            },
            "style": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri",
              "description": "HTTP mode: presigned HTTPS link (~30 min expiry)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path to the persisted image file"
            }
          },
          "required": [
            "kind",
            "format",
            "mimeType"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢extract_to_markdown(file_path, uploaded_file_reference, api_key)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "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."
    },
    "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,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "processing"
      ]
    },
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "creditsUsed": {
      "type": "number",
      "minimum": 0
    },
    "resultExpiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "estimatedCompletion": {
      "type": "string",
      "format": "date-time"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "markdown"
            },
            "markdown": {
              "type": "string",
              "description": "HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path from output root to the saved result.md"
            },
            "pages": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of pages processed — OCR only"
            },
            "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"
            }
          },
          "required": [
            "kind"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "image"
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "jpeg",
                "webp"
              ]
            },
            "mimeType": {
              "type": "string"
            },
            "size": {
              "type": "string",
              "enum": [
                "1024x1024",
                "1536x1024",
                "1024x1536",
                "auto"
              ]
            },
            "background": {
              "type": "string",
              "enum": [
                "transparent",
                "opaque",
                "auto"
              ]
            },
            "style": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri",
              "description": "HTTP mode: presigned HTTPS link (~30 min expiry)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path to the persisted image file"
            }
          },
          "required": [
            "kind",
            "format",
            "mimeType"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_job_result(job_id, api_key)

Fetch the latest async Frenchie job result

入力スキーマ

{
  "type": "object",
  "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."
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "done",
        "processing"
      ]
    },
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "creditsUsed": {
      "type": "number",
      "minimum": 0
    },
    "resultExpiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "estimatedCompletion": {
      "type": "string",
      "format": "date-time"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "markdown"
            },
            "markdown": {
              "type": "string",
              "description": "HTTP mode: inline markdown. Stdio mode: omitted (read savedTo instead)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path from output root to the saved result.md"
            },
            "pages": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of pages processed — OCR only"
            },
            "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"
            }
          },
          "required": [
            "kind"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "image"
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "jpeg",
                "webp"
              ]
            },
            "mimeType": {
              "type": "string"
            },
            "size": {
              "type": "string",
              "enum": [
                "1024x1024",
                "1536x1024",
                "1024x1536",
                "auto"
              ]
            },
            "background": {
              "type": "string",
              "enum": [
                "transparent",
                "opaque",
                "auto"
              ]
            },
            "style": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string",
              "format": "uri",
              "description": "HTTP mode: presigned HTTPS link (~30 min expiry)"
            },
            "savedTo": {
              "type": "string",
              "description": "Stdio mode: relative path to the persisted image file"
            }
          },
          "required": [
            "kind",
            "format",
            "mimeType"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡upload_file(filename, file_size, mime_type, api_key)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Original filename with extension (e.g. 'report.pdf')."
    },
    "file_size": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483648,
      "description": "File size in bytes."
    },
    "mime_type": {
      "type": "string",
      "minLength": 1,
      "description": "MIME type (e.g. 'application/pdf', 'audio/mpeg')."
    },
    "api_key": {
      "type": "string",
      "minLength": 1,
      "description": "Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted."
    }
  },
  "required": [
    "filename",
    "file_size",
    "mime_type"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "upload_url": {
      "type": "string",
      "format": "uri",
      "description": "Presigned URL — PUT the file here with the correct Content-Type header"
    },
    "object_key": {
      "type": "string",
      "minLength": 1,
      "description": "Pass this as uploaded_file_reference to ocr_to_markdown, transcribe_to_markdown, or extract_to_markdown"
    },
    "expires_in": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "URL expiry in seconds"
    }
  },
  "required": [
    "upload_url",
    "object_key",
    "expires_in"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢fetch_result_file(object_key, api_key)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "object_key": {
      "type": "string",
      "minLength": 1,
      "description": "The object key parsed from a frenchie-result:<objectKey> reference in the result markdown."
    },
    "api_key": {
      "type": "string",
      "minLength": 1,
      "description": "Optional Frenchie API key (fr_...). Falls back to the FRENCHIE_API_KEY env var when omitted."
    }
  },
  "required": [
    "object_key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "download_url": {
      "type": "string",
      "description": "Temporary HTTPS download URL for the result file."
    },
    "filename": {
      "type": "string",
      "description": "Suggested filename derived from the original object key."
    },
    "expires_in": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "URL expiry in seconds (typically 900)."
    }
  },
  "required": [
    "download_url",
    "filename",
    "expires_in"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 7 件
検証済みバージョンは記録されていませんツール 7 件
検証済みバージョンは記録されていませんツール 7 件