Skip to main content
Glama
jaweii
by jaweii

EraseText API

Official docs, OpenAPI spec, Python SDK, and agent tools for EraseText — a specialised AI text remover for photos and graphics. It erases lettering and the glow, stroke, and shadow that came with it, then rebuilds the plate underneath.

This repository is the public developer surface. The product itself lives at erasetext.com. Canonical HTTP docs: erasetext.com/docs/api.

Try it

  • Editor (free to erase; full-res download uses credits): erasetext.com/upload

  • HTTP API: https://api.erasetext.com/v1

  • MCP: https://api.erasetext.com/mcp

  • First API key includes a 50-credit trial, no card.

Create a key under Account → Developer.

curl -X POST \
  -H "X-Api-Key: et_…" \
  -F "image_file=@photo.jpg" \
  "https://api.erasetext.com/v1/erase" \
  -o out.webp

Omit the mask to detect and erase all text. White pixels (channel >127) in a mask mark what to erase.

Related MCP server: Poof Background Removal MCP Server

Python SDK

pip install erasetext
# optional agent extras
pip install 'erasetext[langchain]'
pip install 'erasetext[llamaindex]'
from erasetext import EraseText

client = EraseText()  # reads ERASETEXT_API_KEY
image = client.erase(image_path="photo.jpg")
Path("out.webp").write_bytes(image)

erase() spends 1 credit on success. Failures and account() are free. Do not send size or engine — both are retired and return 400.

MCP

Remote Streamable HTTP. Same key, same billing as the HTTP API.

{
  "mcpServers": {
    "erasetext": {
      "url": "https://api.erasetext.com/mcp",
      "headers": { "X-Api-Key": "et_…" }
    }
  }
}

Tools: erase_text (1 credit on success), get_account (free).

LangChain

from erasetext.langchain import EraseTextToolkit

tools = EraseTextToolkit().get_tools()
# tools: erase_text, get_erasetext_account

Requires pip install 'erasetext[langchain]'.

LlamaIndex

from erasetext.llamaindex import EraseTextToolSpec

tools = EraseTextToolSpec().to_tool_list()

Requires pip install 'erasetext[llamaindex]'.

Specs

File

What

openapi.json

HTTP OpenAPI 3.1

server.json

MCP Registry record (remote Streamable HTTP)

https://erasetext.com/llms.txt

Machine-readable product + API summary

https://erasetext.com/openapi.json

Same spec, hosted next to the product

Operated by Morling, LLC. The SDK and specs in this repository are MIT; the hosted erase service is a commercial product.

Available Tools

2 tools
erase_textA

Erase lettering from a photo or graphic and rebuild the background. Omit the mask to detect all text. White in a mask (channel >127) marks what to erase. Spends 1 EraseText credit only on success. Failures (including 402/504) are not charged. Create a key at https://erasetext.com/account/#developer. Buy prepaid API credits at https://erasetext.com/docs/api/#prepaid.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format. Default webp.
mask_urlNoOptional mask URL. Same aspect as the image. White = erase.
image_urlNoPublic HTTP(S) URL of the source image.
paste_backNoKeep original pixels outside the erased area. Default true.
resolutionNoShort-edge target for the model. Default 512.
return_boxesNoWhen no mask, include OCR quads. Ignored if a mask is sent.
mask_file_b64NoOptional mask as base64.
image_file_b64NoSource image as base64 (raw or data URL). Use when you have bytes, not a URL.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals important behavioral details: failures (including HTTP 402/504) are not charged, the mask's white areas indicate erase regions, and the paste_back flag controls pixel retention outside the erased area. This goes beyond a simple action statement and sets clear expectations for the tool's runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and information-dense. Every sentence provides value—purpose, mask semantics, billing, and input modes—without redundancy or unnecessary filler, making it appropriately sized for the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, multiple options, and billing nuances), the description covers all necessary aspects: how masking works, input formats, resolution, output options, and cost implications. No external documentation is needed for a basic understanding, and the absence of an output schema is mitigated by the clear parameter explanations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 8 parameters have meaningful descriptions in both the schema and the tool description. The description adds contextual guidance (e.g., 'Use when you have bytes, not a URL' for image_file_b64, and 'Ignore if a mask is sent' for return_boxes), which enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Erase lettering from a photo or graphic and rebuild the background.' It also explains the optional mask behavior and how to use base64 versus URL inputs, making it distinct from the sibling account tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use each input mode (URL vs. base64), how the mask works, the effect of paste_back, and the return_boxes option. It also covers billing behavior (only charged on success) and provides links for key creation and credit purchase, leaving no ambiguity about usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_accountA

Return API and web credit balances, plan, and this UTC month's usage. Never spends a credit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a critical behavioral trait: it never spends a credit. It also makes clear that it returns data, implying a read-only operation. While it does not discuss authentication, errors, or rate limits, the absence of annotations makes this a reasonable level of transparency for the described functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences that directly state the purpose and the key side-effect. There is no redundant or extraneous content, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides sufficient context for a simple, parameterless tool. It explains what data is returned and confirms that no credit is consumed. Given the simplicity and lack of output schema, nothing important is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema is empty. The description does not need to explain any parameters, and the coverage is technically 100%. The description adds no unnecessary parameter-related information, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns API and web credit balances, plan, and usage for the current UTC month. It also explicitly notes it never spends a credit, which distinguishes its read-only nature. This is specific and unambiguous, and it differentiates from the unrelated sibling erase_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates when to use the tool (when needing balance, plan, or usage information) and explicitly states that it does not spend credits, which is a key when-not. However, it does not mention any alternative tools or provide explicit comparison to siblings, so it falls short of full explicit guidance.

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. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observederase_text
    • First observedget_account

TDQS

A4.6/5.0
Disambiguation5/5

get_account and erase_text have completely distinct purposes: one for account/credit status, one for image text removal. No overlap or ambiguity.

Naming Consistency5/5

Both tool names use the same verb_noun snake_case pattern (get_account, erase_text), making the API predictable.

Tool Count3/5

With only two tools, the server feels minimal, though it covers the essential operations of the EraseText API. It sits at the thin end of the acceptable range.

Completeness4/5

The server provides the core account check and erase operations. Minor gaps such as history or preview functionality are absent, but no critical workflow is blocked.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaweii/erasetext-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server