photext-mcp
photext-mcp — PhoText MCP server
MCP server for PhoText, the AI web tool to edit, replace, remove and translate text inside images and screenshots while keeping the original font style.
It needs no API key or account. The tools return the right PhoText tool link plus steps, so assistants such as Claude Desktop, Cursor or VS Code can send users straight to https://photext.ai/.
Tools
Tool | Purpose | Opens |
| Free-text task, returns the matching PhoText tool | best match below |
| Edit or replace text (optional from/to text) | |
| Remove text from an image | |
| Identify the font used in an image | |
| Translate text in an image and keep the layout | |
| List every PhoText tool |
Other PhoText tools the server can point to: Fix text in image (typos or garbled text in AI-generated images), Add text to image and PDF text editor.
Related MCP server: MCP Screen Text
Example prompts
"What font is this?" (with a screenshot) → PhoText Font Finder
"Remove the text from this image" → Remove text from image
"Translate the text in this menu photo into English" → Image Translator
"Change the word Sale to New in this screenshot" → Edit text in image
Install
Run it straight from GitHub (needs Node 18+ and npm 10+):
{ "mcpServers": { "photext": { "command": "npx", "args": ["-y", "github:jaweii/photext-mcp"] } } }Develop
npm i && npm run build && npm test
Website: https://photext.ai/ · Contact: admin@photext.shop · License: MIT
Repository
Available Tools
6 toolsphotext_edit_text_in_imageC
Get the PhoText link to edit or replace text in an image while keeping the original font.
| Name | Required | Description | Default |
|---|---|---|---|
| to_text | No | ||
| from_text | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The phrase 'Get the PhoText link' hints that the tool returns a link rather than mutating the image directly, but the description never states permissions, whether the original is preserved, or what the returned link contains. For a no-annotation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the core action is front-loaded. It is efficient, though the 'Get the PhoText link' clause adds ambiguity rather than value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter coverage, the description is too thin for a two-parameter tool. It omits what the returned link is for, how to use it, and how the two text parameters relate, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither parameter is named or explained in the description. 'from_text' and 'to_text' are not self-evidently ordered or explained, and the description does not clarify what value belongs in each, so the description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('edit or replace text in an image while keeping the original font'), which distinguishes it from siblings like photext_remove_text and photext_translate_image by the nature of the operation. The opening 'Get the PhoText link' framing is slightly confusing, since it implies the tool returns a link rather than performing the edit, which muddies the purpose somewhat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no named alternatives among the siblings. An agent must infer from the name alone whether this tool supersedes or complements photext_remove_text and photext_translate_image.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photext_find_fontA
Get the PhoText Font Finder link to identify a font from an image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses that the return value is a link rather than a result, implying a read-only, no-side-effect operation, but says nothing about whether the link is external, whether the user must supply an image separately, or any auth/quota constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the outcome first and the purpose second. No filler, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, link-returning utility with no output schema, the description covers what the agent needs: the call returns a link for image-based font identification. It could say more about what to do with the link, but the core contract is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to clarify and the baseline of 4 applies. Nothing in the schema needs compensating for in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (the PhoText Font Finder link) with the intended end goal (identify a font from an image). It is clearly distinguishable in intent from the editing siblings, though it never explicitly names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to identify a font from an image' implies the triggering scenario, but there is no guidance on when-not to use it or what alternative exists (e.g., the listing sibling). Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photext_list_toolsA
List all PhoText tools with links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral burden. It indicates the tool returns a list with links, implying a read-only operation, but does not explicitly state safety, side effects, or auth requirements. Minimal but adequate for a zero-parameter listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the essential action and output. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the absence of an output schema, the description adequately conveys what is returned (tool list with links). It could explicitly note that it is read-only, but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the description correctly adds no parameter semantics. Baseline 4 for no params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (PhoText tools) plus output detail (with links). The purpose is clear, though it does not explicitly distinguish itself from the sibling tools, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives or what context it is appropriate for. The implied use is tool discovery, but this is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photext_recommend_toolB
Given a task about text in an image (edit, replace, remove, translate, fix typos, identify a font, PDF text), return the matching PhoText (photext.ai) tool link and steps.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What the user wants to do, e.g. 'change the price on this flyer' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a real behavioral trait: the tool only returns a link and steps rather than executing the operation, which meaningfully separates it from the executor siblings. However, it says nothing about permissions, supported/unsupported task scope, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the verb, output, and scope enumeration packed in without filler. Nothing extraneous and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states what is returned (a tool link and steps), and with only one required string parameter the surface area is small. Its one gap is the missing routing logic relative to the executor siblings, which matters for a recommender tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'task' parameter, so the schema already documents it and includes an example. The description's parenthetical task categories add mild framing but no syntax, format, or granularity guidance beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('return the matching PhoText tool link and steps') and resource (PhoText tool), and enumerates the task categories it covers (edit, replace, remove, translate, fix typos, font ID, PDF text). The 'recommend' framing distinguishes it from the executor siblings like photext_edit_text_in_image, though it never names them directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to route through this recommender versus calling the specific sibling tools directly — the central ambiguity for a dispatcher tool. The task-type enumeration implies coverage but never states the selection condition or any exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photext_remove_textB
Get the PhoText link to remove text from an image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, yet it only implies that a link is returned rather than the removal being performed. It does not disclose what the link is, whether auth or an API key is required, whether it expires, or what consuming it entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words and the action front-loaded. It is efficient, though so terse that it verges on underspecification rather than tight exposition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and no parameters, the description is the only source of context, and it leaves the tool's actual outcome ambiguous (is a link returned, or does calling it perform the removal?). Adequate but with clear gaps for an agent deciding how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter-level omissions exist to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieving a PhoText link for the text-removal operation on an image. It is distinguishable from siblings like photext_edit_text_in_image in that it removes rather than edits text, though the 'get a link' framing implies a URL hand-off rather than a direct operation, which is not clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no comparison to alternatives such as photext_edit_text_in_image or photext_translate_image. An agent has to infer the selection condition purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photext_translate_imageC
Get the PhoText link to translate text inside an image.
| Name | Required | Description | Default |
|---|---|---|---|
| target_language | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It hints that something link-like is returned but does not state whether the call mutates state, whether it is read-only, whether authentication is needed, or what the returned link represents or how long it is valid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, appropriately front-loaded with no filler. Its brevity is a virtue here, though the terse phrasing is partly what creates the ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% parameter documentation, the description should explain what is produced (a link to what? opened where?) and how the image is supplied. Almost all of that is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter (target_language) is never mentioned or explained in the description. The description does not compensate with accepted language formats, defaults, or which source/image input is used, so the agent gets no meaning beyond the bare property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description point at translating text inside an image, which is distinct enough from siblings like photext_edit_text_in_image or photext_remove_text. However, the phrasing 'Get the PhoText link' is ambiguous: it is unclear whether the tool performs translation or merely returns a link/URL to a translation service, leaving the actual action vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus photext_edit_text_in_image or photext_remove_text, nor any prerequisites (e.g., image must already be uploaded, link must be opened elsewhere). Usage must be entirely inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
photext_edit_text_in_image - First observed
photext_find_font - First observed
photext_list_tools - First observed
photext_recommend_tool - First observed
photext_remove_text - First observed
photext_translate_image
TDQS
Scored across 6 tools
The four action tools (edit_text_in_image, remove_text, find_font, translate_image) have clearly distinct targets, so an agent can tell them apart. However, photext_recommend_tool and photext_list_tools partially overlap as meta/routing tools, which could cause hesitation about which to call first.
All tools use a consistent snake_case verb_noun pattern with a uniform photext_ prefix (recommend_tool, edit_text_in_image, remove_text, find_font, translate_image, list_tools). No convention mixing is present.
Six tools is well-scoped for a lightweight link-routing server; each tool maps to a distinct PhoText capability or listing/recommendation function. No filler or extreme over/under-provision.
Core text-in-image operations (edit, remove, translate, font ID) are covered, and recommend_tool/list_tools act as catch-alls for adjacent cases like PDF text. Minor gaps such as a direct OCR/extract-text tool remain, but the routing tool mitigates dead ends.
Maintenance
Related MCP Connectors
- MochifyOAuthapp.mochify
Image and PDF toolkit: convert to AVIF/WebP/JXL, resize, crop, remove backgrounds, optimize PDFs.
Image toolkit: resize, convert, compress, crop, metadata, hashes, favicons, OCR, QR codes, barcodes.
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
Translate text inside images while preserving layout; OCR extraction. Free API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive image processing, stock image search from Pexels and Pixabay, and AI image generation using OpenAI DALL-E with support for resizing, format conversion, color extraction, and watermarking.105 npmMIT
- FlicenseBqualityDmaintenanceProvides screen capture and optical character recognition (OCR) capabilities for entire displays or specific application windows. It enables users to list running applications, take screenshots, and extract text from images using multi-language support.51-
- AlicenseAqualityDmaintenanceHelps non-vision models extract and understand images and screenshots via OpenRouter multimodal models.212 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables interactive selection of image regions from images and PDFs, with OCR support and automated export of selected regions as separate files.MIT