MCP Image Extractor
The MCP Image Extractor server extracts and converts images to base64 for LLM analysis.
Extract images from various sources:
Local files (PNG, JPG, GIF, WebP) using
extract_image_from_filetoolURLs using
extract_image_from_urltoolProcess existing base64-encoded images using
extract_image_from_base64tool
Automatic optimization: Resizes images to maximum 512x512 pixels to optimize context window usage
Integration features: Compatible with Cursor for automated image extraction and supports Docker for containerized deployment
Backward compatibility: Supports legacy parameters for existing implementations
Supports containerized deployment of the MCP image extraction service through Docker, allowing for isolated and portable execution environments.
Provides installation directly from GitHub repository, with specific instructions for cloning and building from the GitHub source.
Enables installation and management through npm, with support for npm link to make the command globally available.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Image Extractorextract the image from https://example.com/screenshot.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Image Extractor
MCP server for extracting and converting images to base64 for LLM analysis.
This MCP server provides tools for AI assistants to:
Extract images from local files
Extract images from URLs
Process base64-encoded images
How it looks in Cursor:
Suitable cases:
analyze playwright test results: screenshots
Installation
Recommended: Using npx in mcp.json (Easiest)
The recommended way to install this MCP server is using npx directly in your .cursor/mcp.json file:
{
"mcpServers": {
"image-extractor": {
"command": "npx",
"args": [
"-y",
"mcp-image-extractor"
]
}
}
}This approach:
Automatically installs the latest version
Does not require global installation
Works reliably across different environments
Alternative: Local Path Installation
If you prefer to use a local installation of the package, you can clone the repository and point to the built files:
{
"mcpServers": {
"image-extractor": {
"command": "node",
"args": ["/full/path/to/mcp-image-extractor/dist/index.js"],
"disabled": false
}
}
}Manual Installation
# Clone and install
git clone https://github.com/ifmelate/mcp-image-extractor.git
cd mcp-image-extractor
npm install
npm run build
npm linkThis will make the mcp-image-extractor command available globally.
Then configure in .cursor/mcp.json:
{
"mcpServers": {
"image-extractor": {
"command": "mcp-image-extractor",
"disabled": false
}
}
}Troubleshooting for Cursor Users: If you see "Failed to create client" error, try the local path installation method above or ensure you're using the correct path to the executable.
Related MCP server: MCP URL Fetcher
Available Tools
extract_image_from_file
Extracts an image from a local file and converts it to base64.
Parameters:
file_path(required): Path to the local image file
Note: All images are automatically resized to optimal dimensions (max 512x512) for LLM analysis to limit the size of the base64 output and optimize context window usage.
extract_image_from_url
Extracts an image from a URL and converts it to base64.
Parameters:
url(required): URL of the image to extract
Note: All images are automatically resized to optimal dimensions (max 512x512) for LLM analysis to limit the size of the base64 output and optimize context window usage.
extract_image_from_base64
Processes a base64-encoded image for LLM analysis.
Parameters:
base64(required): Base64-encoded image datamime_type(optional, default: "image/png"): MIME type of the image
Note: All images are automatically resized to optimal dimensions (max 512x512) for LLM analysis to limit the size of the base64 output and optimize context window usage.
Example Usage
Here's an example of how to use the tools from Claude:
Please extract the image from this local file: images/photo.jpgClaude will automatically use the extract_image_from_file tool to load and analyze the image content.
Please extract the image from this URL: https://example.com/image.jpgClaude will automatically use the extract_image_from_url tool to fetch and analyze the image content.
Docker
Build and run with Docker:
docker build -t mcp-image-extractor .
docker run -p 8000:8000 mcp-image-extractorLicense
MIT
Available Tools
3 toolsextract_image_from_base64A
Extract and analyze images from base64-encoded data. Ideal for processing screenshots from clipboard, dynamically generated images, or images embedded in applications without requiring file system access.
| Name | Required | Description | Default |
|---|---|---|---|
| base64 | Yes | Base64-encoded image data to analyze (useful for screenshots, images from clipboard, or dynamically generated visuals) | |
| max_height | No | For backward compatibility only. Default maximum height is now 512px | |
| max_width | No | For backward compatibility only. Default maximum width is now 512px | |
| mime_type | No | MIME type of the image (e.g., image/png, image/jpeg) | image/png |
| resize | No | For backward compatibility only. Images are always automatically resized to optimal dimensions (max 512x512) for LLM analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool 'extract[s] and analyze[s]' images, implying both extraction and analysis functions, but doesn't detail what analysis entails, potential limitations, or error handling. The description adds some context about use cases but lacks behavioral specifics like performance characteristics or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the purpose, and the second provides usage context. Every sentence adds value without redundancy, making it appropriately sized and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 100% schema coverage and no output schema, the description is moderately complete. It covers purpose and usage context but lacks details on what 'analyze' means in terms of output, which is a gap since there's no output schema to compensate. For a tool with analysis functionality, more behavioral transparency would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, such as explaining the 'base64' parameter's format or the 'analyze' aspect mentioned in the purpose. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Extract and analyze images from base64-encoded data.' It specifies the verb (extract and analyze) and resource (images from base64 data). However, it doesn't explicitly differentiate from sibling tools like extract_image_from_file or extract_image_from_url, which handle different input sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'Ideal for processing screenshots from clipboard, dynamically generated images, or images embedded in applications without requiring file system access.' This gives practical scenarios, but it doesn't explicitly state when NOT to use it or directly compare it to the sibling tools that handle files or URLs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_image_from_fileA
Extract and analyze images from local file paths. Supports visual content understanding, OCR text extraction, and object recognition for screenshots, photos, diagrams, and documents.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the image file to analyze (supports screenshots, photos, diagrams, and documents in PNG, JPG, GIF, WebP formats) | |
| max_height | No | For backward compatibility only. Default maximum height is now 512px | |
| max_width | No | For backward compatibility only. Default maximum width is now 512px | |
| resize | No | For backward compatibility only. Images are always automatically resized to optimal dimensions (max 512x512) for LLM analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses analysis capabilities (visual understanding, OCR, object recognition) and supported file types, but doesn't mention performance characteristics, rate limits, authentication needs, error conditions, or output format. It provides basic behavioral context but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence states the core purpose and scope. The second sentence elaborates on capabilities and supported content types. Every word serves a purpose, and the description is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 100% schema coverage, but no annotations or output schema, the description provides good purpose and usage context. However, it lacks information about what the tool returns (output format), error handling, or operational constraints. Given the absence of output schema, more detail about return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing complete parameter documentation. The description adds value by mentioning supported file types (PNG, JPG, GIF, WebP) and analysis capabilities, which helps contextualize the file_path parameter. However, it doesn't provide additional semantic context beyond what the schema already documents well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('extract and analyze images'), the resource ('from local file paths'), and distinguishes from siblings by specifying 'local file paths' (vs. base64 or URL sources). It lists supported analysis types (visual content understanding, OCR, object recognition) and file types, providing comprehensive purpose differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates when to use this tool vs. alternatives by specifying 'from local file paths' and listing supported file types/formats. This clearly distinguishes it from sibling tools extract_image_from_base64 and extract_image_from_url, providing perfect contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_image_from_urlA
Extract and analyze images from web URLs. Perfect for analyzing web screenshots, online photos, diagrams, or any image accessible via HTTP/HTTPS for visual content analysis and text extraction.
| Name | Required | Description | Default |
|---|---|---|---|
| max_height | No | For backward compatibility only. Default maximum height is now 512px | |
| max_width | No | For backward compatibility only. Default maximum width is now 512px | |
| resize | No | For backward compatibility only. Images are always automatically resized to optimal dimensions (max 512x512) for LLM analysis | |
| url | Yes | URL of the image to analyze for visual content, text extraction, or object recognition (supports web screenshots, photos, diagrams) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions analysis purposes ('visual content analysis and text extraction') and that images are 'accessible via HTTP/HTTPS', but lacks details on permissions, rate limits, error handling, or output format. It adds some context but leaves significant behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by specific use cases. Every sentence earns its place by clarifying scope and applications without redundancy, making it efficiently structured and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with high schema coverage but no annotations and no output schema, the description is moderately complete. It covers the purpose and usage context well, but as a tool with potential behavioral complexities (e.g., network access, analysis output), it lacks details on permissions, errors, or result format, leaving gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by implying the 'url' parameter is for 'web screenshots, photos, diagrams', but does not provide additional syntax, format, or usage details for parameters. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('extract and analyze images'), resource ('from web URLs'), and scope ('for visual content analysis and text extraction'). It distinguishes from sibling tools by specifying 'from web URLs' versus 'from_base64' or 'from_file', making the purpose unambiguous and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('for analyzing web screenshots, online photos, diagrams, or any image accessible via HTTP/HTTPS'), but does not explicitly state when not to use it or name alternatives like the sibling tools. It implies usage scenarios without explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose based on the source of the image: base64-encoded data, local file paths, and web URLs. The descriptions reinforce this by specifying different use cases (e.g., clipboard screenshots, local files, online images), leaving no ambiguity for an agent to misselect.
All tool names follow a consistent verb_noun pattern with 'extract_image_from_' as a prefix, followed by the source type (base64, file, url). This predictable naming scheme makes it easy for agents to understand and navigate the tool set without confusion.
With 3 tools, the server is well-scoped for its purpose of extracting images from different sources. Each tool earns its place by covering a distinct input method (base64, file, URL), providing a complete set for the domain without being overly sparse or bloated.
The tool surface is complete for the domain of image extraction, covering all major input sources: base64 data, local files, and web URLs. There are no obvious gaps, as these three methods encompass the typical ways images are accessed in applications, ensuring agents can handle various scenarios without dead ends.
Maintenance
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
A Model Context Protocol server for Wix AI tools
OCR, transcription, file extraction, and image generation for AI agents via MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables fetching and processing images from URLs, local file paths, and numpy arrays, returning them as base64-encoded strings with proper MIME types.121MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to fetch and process web content in multiple formats (HTML, JSON, Markdown, text) with automatic format detection.56
- AlicenseAqualityDmaintenanceA Model Context Protocol server that converts diverse file types, including PDFs, images, audio, and Office documents, into Markdown format. It also transforms web content like YouTube transcripts and Bing search results into readable text for model consumption.13347MIT
- FlicenseNot gradedqualityDmaintenanceA powerful Model Context Protocol (MCP) server for image processing, designed to empower AI models with advanced image manipulation capabilities.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ifmelate/mcp-image-extractor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server