Skip to main content
Glama

space-ocr-mcp

MCP (Model Context Protocol) server for space-ocr — 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.

Related MCP server: Vision-OCR-MCP

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

npx -y space-ocr-mcp

Set SPACE_OCR_API_KEY (issue one at 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):

{
  "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

Available Tools

2 tools
list_templatesA

List all built-in document templates supported by space-ocr. Use the returned id as template_id in ocr_extract.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so description carries burden. Clearly indicates read-only list operation. No contradictory or missing behavioral info for such a simple tool.

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?

Two sentences, front-loaded purpose, no waste. Efficient and clear.

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?

Completeness is high: no parameters, simple output, sibling tool context given. Covers everything needed for selection and basic usage.

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

Parameters4/5

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

No parameters; schema coverage 100%. Description adds value by explaining purpose and linking to sibling, meeting the baseline for zero-parameter tools.

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?

Describes listing all built-in document templates, a specific verb+resource. Distinguishes from sibling ocr_extract by mentioning the returned id is used as template_id.

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?

States to use returned id as template_id in ocr_extract, providing clear context. No explicit when-not-to-use, but sufficient given sibling context.

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

ocr_extractA

Extract structured data from a document image (receipt, invoice, ID, etc.) using space-ocr. Returns JSON with extracted fields plus verified per-character bounding boxes (re-anchored to Vision API symbols, not LLM-hallucinated). Provide either template_id for built-in document types, or fields for custom schemas.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage as a public URL, a local file path, base64 string, or data URI. Local file paths are auto-encoded to base64.
fieldsNoCustom field schema. Each item has { name, type: 'string'|'array', description, children? }. Required when template_id is not provided.
promptNoOptional natural-language hint for the AI (overrides template prompt).
template_idNoBuilt-in template id. Use this for common documents — fields and prompt are auto-resolved. Call list_templates() to see all options.
language_hintsNoBCP-47 language codes prioritised by the OCR engine (e.g. ['ko','ja']). English is always auto-included.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description discloses internal method (space-ocr), output structure (JSON with bounding boxes), and ensures non-hallucinated data. Does not discuss auth or rate limits, but sufficient for a read tool.

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?

Two concise sentences front-load the purpose, then detail two usage paths. Every sentence adds value with no redundancy.

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?

Despite no output schema, description explains return format (JSON with extracted fields and bounding boxes) and quality guarantee. Covers all key behavioral aspects for a complex extraction tool.

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

Parameters4/5

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

With 100% schema description coverage, baseline is 3. Description adds value by clarifying that template_id auto-resolves fields/prompt, fields are for custom schemas, and prompt overrides. Adds context beyond enum values.

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 extracts structured data from document images, listing example types (receipt, invoice, ID) and distinguishes from sibling list_templates by specifying extraction behavior.

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?

Provides guidance on using template_id for built-in types and fields for custom schemas, plus a hint to call list_templates(). Lacks explicit when-not-to-use, but context is clear.

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.3
    • First observedlist_templates
    • First observedocr_extract

TDQS

A4.4/5.0
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.

Maintenance

ActivityInactive
ResponsivenessSyncing

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/hwang-yh-cto/space-ocr-mcp'

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