Change the words in a screenshot or photo and keep the original font and layout.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <your key>. Create a key at https://makeitsay.com/account/api
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.
Credits available on this MakeItSay account. One credit edits one image.
This tool takes no arguments.
Credits available on this MakeItSay account. One credit edits one image.
No arguments.
{
"type": "object",
"properties": {}
}Status of an edit. When ready, result_url downloads the edited PNG for one hour. Free.
| Argument | Type | Description |
|---|---|---|
| edit_id* | string | The id returned by replace_text. |
| wait_seconds | integer | How long to wait for the result before returning, 0 to 50 seconds. |
{
"type": "object",
"required": [
"edit_id"
],
"properties": {
"edit_id": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The id returned by replace_text."
},
"wait_seconds": {
"type": "integer",
"maximum": 50,
"minimum": 0,
"description": "How long to wait for the result before returning, 0 to 50 seconds."
}
}
}Change or remove text in a photo or screenshot and keep the same font, colour and background. Give each line to change as { from, to }: "from" is the text as it appears in the image, "to" the new text (empty to remove it). Up to 20 lines per image; 1 credit per image. The image is scanned first; if a "from" is not found, nothing is charged and the error lists the lines that were read. IDs, certificates, receipts, invoices and bank documents are refused. Waits up to 50 seconds; if still editing, call get_edit.
| Argument | Type | Description |
|---|---|---|
| hint | string | Optional: where the text is when it appears more than once, e.g. "the line at the bottom". |
| locale | string | Language of the person asking (for our statistics only). Default en. |
| image_url | string | Public https URL of the image (PNG or JPG). |
| image_base64 | string | The image as base64, with or without a data: prefix. Use when there is no URL. |
| replacements* | array | |
| wait_seconds | integer | How long to wait for the result before returning, 0 to 50 seconds. |
{
"type": "object",
"required": [
"replacements"
],
"properties": {
"hint": {
"type": "string",
"maxLength": 200,
"description": "Optional: where the text is when it appears more than once, e.g. \"the line at the bottom\"."
},
"locale": {
"enum": [
"en",
"es",
"ja",
"zh-Hans",
"zh-Hant",
"ko",
"ar"
],
"type": "string",
"description": "Language of the person asking (for our statistics only). Default en."
},
"image_url": {
"type": "string",
"format": "uri",
"description": "Public https URL of the image (PNG or JPG)."
},
"image_base64": {
"type": "string",
"description": "The image as base64, with or without a data: prefix. Use when there is no URL."
},
"replacements": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 200,
"description": "New text. Empty removes the line."
},
"from": {
"type": "string",
"maxLength": 200,
"description": "Text as it appears in the image."
}
}
},
"maxItems": 20,
"minItems": 1
},
"wait_seconds": {
"type": "integer",
"maximum": 50,
"minimum": 0,
"description": "How long to wait for the result before returning, 0 to 50 seconds."
}
}
}Read every line of text in an image with its position (0 to 1000 from the top left). Free, but counts toward the scan limit. Use it to find the exact "from" text for replace_text.
| Argument | Type | Description |
|---|---|---|
| image_url | string | Public https URL of the image (PNG or JPG). |
| image_base64 | string | The image as base64, with or without a data: prefix. Use when there is no URL. |
{
"type": "object",
"properties": {
"image_url": {
"type": "string",
"format": "uri",
"description": "Public https URL of the image (PNG or JPG)."
},
"image_base64": {
"type": "string",
"description": "The image as base64, with or without a data: prefix. Use when there is no URL."
}
}
}