EraseText MCP Server
by jaweii
README.md
# EraseText API
Official docs, OpenAPI spec, Python SDK, and agent tools for
**[EraseText](https://erasetext.com)** — 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](https://erasetext.com). Canonical HTTP docs:
[erasetext.com/docs/api](https://erasetext.com/docs/api/).
## Try it
- **Editor** (free to erase; full-res download uses credits):
[erasetext.com/upload](https://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](https://erasetext.com/account/#developer).
```bash
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.
## Python SDK
```bash
pip install erasetext
# optional agent extras
pip install 'erasetext[langchain]'
pip install 'erasetext[llamaindex]'
```
```python
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.
```json
{
"mcpServers": {
"erasetext": {
"url": "https://api.erasetext.com/mcp",
"headers": { "X-Api-Key": "et_…" }
}
}
}
```
Tools: `erase_text` (1 credit on success), `get_account` (free).
- Manifest: https://api.erasetext.com/.well-known/mcp.json
- Docs: https://erasetext.com/docs/api/#mcp
- Registry file in this repo: [`server.json`](./server.json)
## LangChain
```python
from erasetext.langchain import EraseTextToolkit
tools = EraseTextToolkit().get_tools()
# tools: erase_text, get_erasetext_account
```
Requires `pip install 'erasetext[langchain]'`.
## LlamaIndex
```python
from erasetext.llamaindex import EraseTextToolSpec
tools = EraseTextToolSpec().to_tool_list()
```
Requires `pip install 'erasetext[llamaindex]'`.
## Specs
| File | What |
|------|------|
| [`openapi.json`](./openapi.json) | HTTP OpenAPI 3.1 |
| [`server.json`](./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 |
## Links
- Product: https://erasetext.com
- API docs: https://erasetext.com/docs/api/
- Developers / prepaid credits: https://erasetext.com/g/developers/
- Help: https://erasetext.com/help/
- Terms: https://erasetext.com/legal/terms/
Operated by [Morling, LLC](https://erasetext.com/about/). The SDK and specs in
this repository are MIT; the hosted erase service is a commercial product.
TDQS
A4.6/5.0
Scored across 2 tools
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
ActivitySlowing
ResponsivenessNo issues