Local Image Gen

Local Image Gen

MCP server for local image generation using FLUX.2 via Hugging Face diffusers, designed to run on a Windows GPU and be called remotely by Claude Cowork over Tailscale.

Category
Visit Server

README

Local Image Gen

MCP server for local image generation. Designed to run on a Windows GPU box (RTX 3060 12GB at your parents' house) and be called remotely by Claude Cowork on a MacBook over Tailscale.

  • Backend: black-forest-labs/FLUX.2-klein-4B via Hugging Face diffusers
  • Server: FastMCP over HTTP (streamable-http transport)
  • Tool: generate_image (one tool, that's it for the MVP)

Setup on the Windows GPU host

Prereqs: Windows 10/11, NVIDIA RTX 3060 (12GB) with up-to-date driver, Python 3.11+ available.

git clone <this-repo>
cd Local-Image-Gen
.\scripts\setup_windows.ps1
.venv\Scripts\Activate.ps1
huggingface-cli login   # needed if the model is gated
copy .env.example .env
uv run main.py

The first call to generate_image will download the model to ./models/ (~10 GB, one-time). Watch for [pipeline] ready in the server output before invoking tools from Cowork.

Adding to Claude Cowork (MacBook)

In Cowork's MCP config:

{
  "mcpServers": {
    "local-image-gen": {
      "url": "http://<windows-pc-tailscale-ip>:8765/mcp"
    }
  }
}

The Windows PC's Tailscale IP looks like 100.x.y.z — get it with tailscale ip -4 on the Windows box.

The generate_image tool

Param Type Default Notes
prompt string required What to draw
width int 1024 Multiple of 8
height int 1024 Multiple of 8
num_inference_steps int 4 Distilled models: 4. Non-distilled: 20-30
guidance_scale float 1.0 Distilled: 1.0 or 0.0. Non-distilled: ~3.5
seed int | null random Use the same seed across carousel slides for style consistency
save_to_disk bool true Saves PNG to IMG_OUTPUT_DIR

Returns:

{
  "image_b64": "<base64 PNG>",
  "path": "C:\\...\\generated\\1234567890_abc123.png",
  "seed_used": 1234567890,
  "width": 1024,
  "height": 1024,
  "elapsed_seconds": 3.42
}

On error:

{ "error": "CUDA out of memory...", "error_type": "OOM" }

Config (env vars, prefix IMG_)

Var Default
IMG_MODEL_ID black-forest-labs/FLUX.2-klein-4B HF repo id
IMG_DEVICE cuda
IMG_LOW_VRAM true VAE tiling + attention slicing. Leave on for 12GB cards
IMG_HOST 0.0.0.0
IMG_PORT 8765
IMG_OUTPUT_DIR ./generated Where PNGs land
IMG_CACHE_DIR ./models Where the model is downloaded

Networking: MacBook ↔ Windows PC

Use Tailscale — free for personal use, no port forwarding on the parents' router, encrypted.

  1. Install Tailscale on both machines, sign in to the same account
  2. Note the Windows PC's Tailscale IP (100.x.y.z)
  3. Use that IP in the Cowork MCP config above

For wake-on-LAN (so the PC doesn't have to run 24/7):

  • Enable "Wake on LAN" in BIOS and in the NIC's advanced power settings
  • Tailscale's tailscale wake <hostname> from the Mac will turn it on

Dev on the MacBook (no GPU)

You can iterate on the server code without a GPU by switching to a small model:

IMG_MODEL_ID=stable-diffusion-v1-5/stable-diffusion-v1-5 IMG_DEVICE=cpu uv run main.py

CPU generation is slow (~minutes per image) but the round-trip works.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured