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.
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-4Bvia Hugging Facediffusers - Server: FastMCP over HTTP (
streamable-httptransport) - 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.
- Install Tailscale on both machines, sign in to the same account
- Note the Windows PC's Tailscale IP (
100.x.y.z) - 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.