Skip to main content
Glama
README.md
# space-ocr-mcp

MCP (Model Context Protocol) server for [space-ocr](https://api.space-ocr.com) — structured OCR with verified per-character bounding boxes.

## Why

Unlike calling Gemini/GPT-4V directly, space-ocr re-anchors LLM output to real Google Vision API symbols, so bounding boxes are not hallucinated. AI agents that act on the extracted data (auto-fill, verification UI, accounting reconciliation) can trust the coordinates.

## Tools

- `ocr_extract` — Extract structured fields from a document image. Pass `template_id` for built-in document types or `fields` for custom schemas.
- `list_templates` — List built-in document templates (`receipt`, `invoice`, `purchase_order`, `delivery`, `quote`, `bankbook`, `resident_card`, `driver_license`, `passport`).

## Install & run

```bash
npx -y space-ocr-mcp
```

Set `SPACE_OCR_API_KEY` (issue one at [space-ocr.com](https://space-ocr.com) → Settings → API Keys).

## Claude Desktop config

`~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "space-ocr": {
      "command": "npx",
      "args": ["-y", "space-ocr-mcp"],
      "env": { "SPACE_OCR_API_KEY": "YOUR_API_KEY" }
    }
  }
}
```

Restart Claude Desktop. You should see the `space-ocr` tools available.

## Cursor / Windsurf / other MCP clients

Use the same `command` / `args` / `env` pattern in their MCP configuration UI.

## Image inputs

`ocr_extract` accepts:
- A public URL (`https://...`)
- A local file path (`/path/to/file.jpg` — auto base64-encoded)
- A base64 string
- A `data:image/...;base64,...` URI

## Pricing

¥10 per call (flat), billed against the same Charge Amount balance as the REST API. Failed calls are auto-refunded. Out-of-balance returns an error with no charge.

## License

MIT

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one extracts data from images, the other lists available templates. There is no overlap or ambiguity between them.

Naming Consistency4/5

Both tools use snake_case and follow a verb_noun pattern (ocr_extract, list_templates). However, 'ocr_extract' is slightly redundant since the server name already includes OCR, but it's still clear.

Tool Count3/5

Only 2 tools for an OCR server is minimal but acceptable given the focused scope on extracting structured data using built-in templates. Could benefit from additional management tools.

Completeness4/5

The set covers listing templates and extracting data, which are the core operations. Missing functionality like template management or field validation is minor given the server's narrow purpose.