Skip to main content
Glama
tcalecchen

MCP Image Tools Server

by tcalecchen

MCP Image Tools Server

A Model Context Protocol (MCP) server that provides powerful image processing tools for Claude Code. This server implements three main functionalities: downloading toy-related images from the web, resizing images, and removing backgrounds from images.

Features

🧸 Toy Image Fetcher (fetch_toy_image)

  • Downloads toy-related images from DuckDuckGo search

  • Automatically prefixes search terms with "toy" for better results

  • Supports downloading 1-10 images per request

  • Saves images to a specified directory

šŸ–¼ļø Image Resizer (resize_image)

  • Resize images to specific dimensions

  • Option to maintain aspect ratio

  • High-quality resampling using Lanczos algorithm

  • Support for all common image formats

āœ‚ļø Background Remover (remove_background_as_png)

  • AI-powered background removal using state-of-the-art models

  • Multiple model options (u2net, u2netp, silueta, isnet-general-use)

  • Outputs PNG with transparent background

  • Preserves main object details

Related MCP server: MCP Image Tools Server

Prerequisites

  • Python 3.11 or higher

  • Docker (for containerized deployment)

  • Claude Code (for MCP client integration)

Installation

Option 1: Local Python Installation

  1. Clone or create the project directory:

    mkdir mcp-toy-image-tools && cd mcp-toy-image-tools
  2. Install Python dependencies:

    pip install -r requirements.txt
  3. Run the server:

    python server.py
  1. Build the Docker image:

    docker build -t mcp-toy-image-tools-server .
  2. Create necessary directories:

    mkdir -p images input output
  3. Run the container:

    docker run --rm -i \
      --name mcp-toy-image-tools \
      -v $(pwd)/images:/app/images \
      -v $(pwd)/input:/app/input \
      -v $(pwd)/output:/app/output \
      mcp-toy-image-tools-server

Claude Code Integration

Step 1: Configure Claude Code

  1. Copy the MCP configuration to your Claude Code settings:

    For Docker execution:

    {
      "mcpServers": {
        "image-tools-server-docker": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "--name", "mcp-toy-image-tools",
            "-v", "${PWD}/images:/app/images",
            "-v", "${PWD}/input:/app/input",
            "-v", "${PWD}/output:/app/output",
            "mcp-toy-image-tools-server"
          ],
          "cwd": "/path/to/your/mcp-toy-image-tools"
        }
      }
    }
  2. Update the cwd path to match your actual project directory.

Step 2: Restart Claude Code

After updating your MCP configuration, restart Claude Code to load the new server.

Usage Examples

Once integrated with Claude Code, you can use these commands:

Download Toy Images

Please use the fetch_toy_image tool to download 5 robot toy images to the ./images directory.

Resize Images

Can you resize the image at ./images/robot_toy_1.jpg to 800x600 pixels?

Remove Background

Please remove the background from ./images/robot_toy_1.jpg and save it as a PNG.

File Structure

mcp-toy-image-tools/
ā”œā”€ā”€ server.py              # Main MCP server implementation
ā”œā”€ā”€ requirements.txt       # Python dependencies
ā”œā”€ā”€ Dockerfile            # Docker container configuration
ā”œā”€ā”€ .mcp.json            # Claude Code MCP configuration
ā”œā”€ā”€ README.md            # This documentation
ā”œā”€ā”€ images/              # Directory for downloaded/processed images
ā”œā”€ā”€ input/               # Directory for input images (Docker)
└── output/              # Directory for output images (Docker)

Dependencies

Python Libraries

  • mcp: Anthropic's Model Context Protocol SDK

  • Pillow: Python Imaging Library for image processing

  • requests: HTTP client for downloading images

  • duckduckgo-search: DuckDuckGo search API client

  • torch/torchvision: PyTorch for AI model inference

System Dependencies (Docker only)

  • OpenGL libraries for image processing

  • GLib and threading libraries

  • Various image format support libraries

Configuration Options

Environment Variables

  • PYTHONPATH: Set to project directory for proper module resolution

Volume Mounts (Docker)

  • /app/images: Directory for downloaded and processed images

  • /app/input: Input directory for source images

  • /app/output: Output directory for processed images

Troubleshooting

Common Issues

  1. "duckduckgo-search library not available" error:

    pip install duckduckgo-search
  2. Image download failures:

    • Check internet connection

    • Some images may be blocked by the source website

    • The tool automatically retries with additional results

  3. Background removal model download:

    • First use may take longer as AI models are downloaded

    • Ensure sufficient disk space (~100MB+ for models)

  4. Permission errors (Docker):

    • Ensure volume mount directories have proper permissions

    • The container runs as non-root user mcp-user

Debug Mode

To run with debug logging:

# Direct Python
PYTHONPATH=. python server.py --log-level DEBUG

# Docker
docker run --rm -i -e LOG_LEVEL=DEBUG mcp-toy-image-tools-server

Claude Code Connection Issues

  1. Server not appearing in Claude Code:

    • Check that .mcp.json is in the correct location

    • Verify the cwd path is correct

    • Restart Claude Code after configuration changes

  2. Tool execution errors:

    • Check server logs for detailed error messages

    • Ensure all dependencies are installed

    • Verify file paths are accessible

Development

Adding New Tools

To add new image processing tools:

  1. Define the tool in handle_list_tools():

    Tool(
        name="your_new_tool",
        description="Description of what it does",
        inputSchema={...}
    )
  2. Implement the handler in handle_call_tool():

    elif name == "your_new_tool":
        return await your_new_tool_function(arguments)
  3. Add the async function implementation:

    async def your_new_tool_function(arguments: dict[str, Any]) -> list[TextContent]:
        # Implementation here
        pass

Testing

Test the server independently:

echo '{"method": "tools/list", "params": {}}' | python server.py

License

This project is provided as-is for educational and development purposes. Please respect the terms of service of image sources and AI models used.

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Test thoroughly

  5. Submit a pull request

Support

For issues and questions:

  • Check the troubleshooting section above

  • Review Claude Code MCP documentation

  • Submit issues to the project repository


Note: This tool downloads images from the internet and uses AI models for processing. Please use responsibly and respect copyright and terms of service of source websites.

Related MCP Connectors

  • Edit images over MCP with object removal, background removal, and guided generative edits.

  • # Poof **Poof ([poof.bg](https://poof.bg)): a background removal API for AI agents. Send an image, get the subject back on a transparent background in under 2 seconds.** [Poof](https://poof.bg) gives your assistant a background removal tool. It handles people, products, cars, animals, and graphics, with hair-level edge precision, and returns a transparent PNG or WebP, or a solid-colour JPG for product listings. Pricing starts at $0.002 per image, with 100 free credits every month. This repository is the integration front door. The product itself lives at [poof.bg](https://poof.bg); the remote MCP server lives at `https://api.poof.bg/mcp`. ## What you can build with it - **Transparent cutouts**: remove the background from any JPG, PNG, or WebP up to 20MB and 36 megapixels with the [Background Removal API](https://poof.bg/background-removal-api). - **E-commerce product photos**: white or brand-colour backgrounds, cropped to the subject and resized to a fixed canvas, so every listing image matches. - **A remove.bg replacement**: remove.bg shuts down on 1 December 2026. Poof accepts the same inputs, so most integrations only change the endpoint and key. See the [remove.bg alternative and migration guide](https://poof.bg/alternative/remove-bg). - **Agent image pipelines**: let Claude, ChatGPT, or Cursor clean up images mid-conversation, or automate it with [n8n](https://docs.poof.bg/integrations/n8n), [Zapier](https://docs.poof.bg/integrations/zapier), and [Make](https://docs.poof.bg/integrations/make). ## Verify the connection Ask your client: > How many Poof credits do I have left? You should see a `get_account` tool call and your real plan and balance. Then try: > Remove the background from https://example.com/product.jpg and give me a white background JPG. ## What the tools do The server exposes 2 tools. - **`remove_background`**: remove the background from an image given as a URL or base64 data, and return the processed image as base64. Optional parameters control the result: - `format`: `png` (default), `jpg`, or `webp`. - `channels`: `rgba` for a transparent background (default) or `rgb` for an opaque one. - `bg_color`: fill colour for opaque output, as hex, RGB, or a colour name. - `size`: `full` (default), `preview`, `medium`, or `hd`. Ignored when `width` or `height` is set. - `crop`: crop to the subject bounds. - `width` and `height`: 1 to 6000 pixels. Set one and the other follows the aspect ratio. - `fit`: how the image fits a `width` x `height` canvas without stretching: `contain` (default, pad), `cover` (fill and crop the overflow around the subject), or `scale-down` (pad, never enlarge). - **`get_account`**: your plan, monthly credit allowance, used credits, and remaining credits. No parameters. Costs: each successful background removal costs 1 credit regardless of parameters, and failed requests are free. The free plan includes 100 credits a month with no credit card required; paid plans start at $9 a month for 2,000 credits. The [pricing page](https://poof.bg/pricing) has the details. Privacy: Poof is run by an EU company and is GDPR compliant. Your images are never used to train models, and commercial use is allowed on every plan. See the [privacy policy](https://poof.bg/privacy). ## Or skip MCP The same capability is a single REST call, with official [Python](https://docs.poof.bg/integrations/python) and [TypeScript](https://docs.poof.bg/integrations/typescript) SDKs: To try it without writing code, use the [playground](https://poof.bg/playground). The [quickstart](https://docs.poof.bg/quickstart) and the [Node.js tutorial](https://poof.bg/blog/integrating-api-in-nodejs) cover the first integration. ## For AI agents reading this - Docs index: [docs.poof.bg/llms.txt](https://docs.poof.bg/llms.txt) - MCP setup guide: [docs.poof.bg/integrations/mcp](https://docs.poof.bg/integrations/mcp) - API reference: [docs.poof.bg/api-reference/remove-background](https://docs.poof.bg/api-reference/remove-background) - Hosted endpoint: `https://api.poof.bg/mcp` (OAuth) - Source: [github.com/poof-bg/mcp](https://github.com/poof-bg/mcp) ## Docs and support - [Connect guide](https://docs.poof.bg/integrations/mcp) (per-client, kept current) - [Documentation](https://docs.poof.bg) and [all integrations](https://docs.poof.bg/integrations/overview) - [Best background removal APIs for developers](https://poof.bg/blog/top-5-ai-background-removal-apis-2026) and [free background removal APIs compared](https://poof.bg/blog/affordable-free-bg-removal-apis-2026) - [Changelog](https://feedback.poof.bg/changelog) and [support](https://feedback.poof.bg) - [GitHub issues](https://github.com/poof-bg/mcp/issues) - [Privacy](https://poof.bg/privacy) and [terms](https://poof.bg/terms) - Questions: <support@poof.bg>

  • Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.

  • AI-powered image processing via GPU. Remove backgrounds and upscale images (2x/4x) directly from any MCP client. OAuth 2.1 authenticated, returns processed images inline with download links. Free credits on signup at maskr.io.

Related MCP Servers