Brainiall Image
Background removal, upscaling, face restore, document OCR, table extraction, visual understanding.
Should I use this
Quality & Safety
Findings (3)
- HIGH
- MEDIUMin document_extract
- LOWin document_query
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"image": {
"url": "https://api.brainiall.com/mcp/image/mcp"
}
}
}Remote endpoints
https://api.brainiall.com/mcp/image/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢remove_background(image_base64, output_format)
Remove the background from an image. Uses Brainiall Cutout engine segmentation to precisely separate foreground from background. Returns a base64-encoded image with transparent background (PNG) or white background (WebP). Sub-500ms latency on GPU. Args: image_base64: Base64-encoded image data (PNG, JPEG, or WebP). output_format: Output format -- 'png' (with transparency) or 'webp'. Returns: dict with keys: - image_base64 (str): Base64-encoded result image - format (str): Output image format - original_size (dict): Original width and height - processing_ms (int): Processing time in milliseconds
Input Schema
{
"type": "object",
"properties": {
"image_base64": {
"description": "Base64-encoded image data. Supports PNG, JPEG, and WebP formats.",
"maxLength": 20000000,
"type": "string"
},
"output_format": {
"default": "png",
"description": "Output image format: 'png' (default, with transparency) or 'webp'",
"type": "string"
}
},
"required": [
"image_base64"
]
}🟢upscale_image(image_base64, scale)
Upscale image resolution with the Brainiall image-upscaling engine. Enhances image resolution by 2x or 4x with the GPU-accelerated Brainiall image-upscaling engine super-resolution. Processes in tiles (256x256) to manage VRAM. Maximum output dimension: 8192x8192. Args: image_base64: Base64-encoded image data (PNG, JPEG, or WebP). scale: Upscale factor -- 2 or 4 (default: 4). Returns: dict with keys: - image (str): Base64-encoded upscaled image - format (str): Output image format - width (int): Output width - height (int): Output height - scale (int): Scale factor applied - processing_time_ms (float): Processing time in milliseconds
Input Schema
{
"type": "object",
"properties": {
"image_base64": {
"description": "Base64-encoded image data. Supports PNG, JPEG, and WebP formats.",
"maxLength": 20000000,
"type": "string"
},
"scale": {
"default": 4,
"description": "Upscale factor: 2 or 4 (default: 4)",
"type": "integer"
}
},
"required": [
"image_base64"
]
}🟢restore_face(image_base64, upscale, enhance_background)
Restore and enhance faces in an image with the Brainiall face-restoration engine. Detects all faces via RetinaFace, restores quality (fixes blur, noise, compression artifacts), and pastes them back. Optionally enhances the background with the Brainiall image-upscaling engine. GPU-accelerated, sub-3s latency. Args: image_base64: Base64-encoded image data containing faces (PNG, JPEG, WebP). upscale: Output upscale factor -- 1 to 4 (default: 2). enhance_background: Whether to enhance background with the Brainiall image-upscaling engine (default: true). Returns: dict with keys: - image (str): Base64-encoded restored image - format (str): Output image format - width (int): Output width - height (int): Output height - upscale (int): Scale factor applied - processing_time_ms (float): Processing time in milliseconds
Input Schema
{
"type": "object",
"properties": {
"image_base64": {
"description": "Base64-encoded image data containing one or more faces.",
"maxLength": 20000000,
"type": "string"
},
"upscale": {
"default": 2,
"description": "Output upscale factor: 1-4 (default: 2)",
"type": "integer"
},
"enhance_background": {
"default": true,
"description": "Enhance background with the Brainiall image-upscaling engine (default: true)",
"type": "boolean"
}
},
"required": [
"image_base64"
]
}🟢check_image_service
Check health status of Image API services and loaded models. Returns: dict with keys: - status (str): 'healthy' or error state - models (dict): Loaded model status per capability - version (str): API version
Input Schema
{
"type": "object",
"properties": {}
}🟢document_extract(image, doc_type)
Turn a document image into structured fields. doc_type picks the schema (receipt/invoice/id/contract/form/generic). A page with no readable text returns an error rather than a guess. Returns: dict with keys: doc_type (str), fields (dict — null for any value not present), text (str — the recognised plain text).
Input Schema
{
"type": "object",
"properties": {
"image": {
"description": "Base64-encoded PNG/JPEG of a single document page",
"type": "string"
},
"doc_type": {
"default": "generic",
"description": "The document kind — picks the field schema: receipt | invoice | id | contract | form | generic | business_card | w2 | health_card | mortgage | pay_stub",
"type": "string"
}
},
"required": [
"image"
]
}🟢document_query(image, question)
Ask a natural-language question about a document image; returns a grounded answer plus the supporting line. Returns found:false rather than guessing when the document doesn't contain the answer. Returns: dict with keys: answer (str|null), found (bool), supporting_text (str|null), text (str).
Input Schema
{
"type": "object",
"properties": {
"image": {
"description": "Base64-encoded PNG/JPEG of the document page",
"type": "string"
},
"question": {
"description": "The natural-language question about the document",
"maxLength": 1000,
"type": "string"
}
},
"required": [
"image",
"question"
]
}🟢document_tables(image)
Reconstruct every table in a document image into headers and rows. Returns: dict with keys: table_count (int), tables (list of {title, headers, rows, row_count, column_count}); [] if there are no tables.
Input Schema
{
"type": "object",
"properties": {
"image": {
"description": "Base64-encoded PNG/JPEG of the document page",
"type": "string"
}
},
"required": [
"image"
]
}🟢document_to_markdown(pdf, page_range)
Return the document as structured Markdown (headings, tables, lists, code blocks, math). Brainiall Doc Layout engine. The single API for converting documents to LLM-friendly format.
Input Schema
{
"type": "object",
"properties": {
"pdf": {
"description": "Base64-encoded PDF document",
"type": "string"
},
"page_range": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Page range like '1,2,5-10' or null for all pages"
}
},
"required": [
"pdf"
]
}🟢run_skillsets(image, text, skills)
Run a multi-skill enrichment pipeline over a document image or text in one call. Brainiall Skillsets engine. Returns per-skill outputs ready for indexing or RAG.
Input Schema
{
"type": "object",
"properties": {
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Base64 image (triggers OCR)"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pre-extracted text (skip OCR)"
},
"skills": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Enrichment skills: ocr | entities | language | keyphrases | sentiment"
}
}
}🟢understand_content(image, text, field_schema)
Multimodal extraction. Send an image, text, or both; define your schema of fields; get structured JSON. Brainiall Content Understanding engine. Unified multimodal field extraction over images and text.
Input Schema
{
"type": "object",
"properties": {
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional base64 image (will OCR first)"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional pre-extracted text"
},
"field_schema": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Map of field_name -> description, e.g. {\"invoice_id\":\"invoice number\",\"total\":\"amount due\"}"
}
}
}Community
Evidence