HiggsHole
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., "@HiggsHolegenerate an image of a cat wearing a top hat"
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.
HiggsHole
A self-hosted AI image and video generation console with a browsable media library, backed by the OpenRouter API and exposed to local AI agents over MCP.
Status: implemented. Web UI, REST API, MCP server and systemd unit are in place and covered by an offline test suite. See the design specification.
What it does
Text-to-image, text-to-video, image-to-image and image-to-video generation through a single OpenRouter API key
Model picker built from OpenRouter's live capability catalogue — no hardcoded model list, so new models appear without a code change
Generated media stored on local disk with metadata embedded in the files themselves, browsable and playable in the web UI
Any result can be fed back in as a reference for an edit or improvement pass, with the lineage recorded
An MCP server (stdio) exposing the same functionality to locally running AI agents
Spend controls: provider-enforced key limits, a local ledger of actual costs, and a daily cap
Related MCP server: mcp-media-engine
What it deliberately does not do
No prompt rewriting — prompts are passed to the provider verbatim
No authentication — intended for a trusted LAN
No multi-user support
No batch generation —
nis fixed at 1 so every generation has its own cost record
Quick start
uv sync
uv run pytest -q # the whole suite, offline and free
uv run higgshole # serves http://127.0.0.1:8077The suite makes no network requests and costs nothing: a socket-blocking
fixture enforces that rather than trusting convention. The single billable test
is opt-in behind HIGGSHOLE_LIVE_TESTS and skipped by default.
MCP tools
Eleven tools, each a thin translation of one REST call — see docs/mcp.md for client registration:
Tool | Behaviour |
| Image and video models with capability constraints |
| Synchronous; returns the finished asset |
| Returns a job ID immediately — does not block |
| Status, with optional bounded long-polling |
| Ingests a local file, returning a reusable asset ID |
| Browse with filters |
| Full metadata for one item, including lineage |
| Removes a generation, its files and its thumbnails |
| Enumerate projects |
| Create a project |
| Provider-authoritative credit plus local cap status |
Every asset-returning tool provides both the local filesystem path and the HTTP
URL, since agents run on the same host. Costs are strings or null — never 0
to represent an unknown cost.
Design notes
The specification records several verified corrections to OpenRouter's published documentation, including the true job-status enumeration, the unreliability of client-side video cost estimation, and the ephemerality of result URLs. These were established against the live API and its OpenAPI specification rather than the prose docs, which contradict it in places.
Requirements
Python 3.12+
ffmpeg/ffprobeAn OpenRouter API key
Runs anywhere Python and ffmpeg run. A systemd unit is provided for boot-time startup on Linux — see docs/deployment.md — but nothing in the architecture depends on it.
Configuration
Everything is configured through environment variables, readable from a .env
file — see .env.example for the full list with defaults. By
default the app writes under ${XDG_DATA_HOME:-~/.local/share}/higgshole and
${XDG_STATE_HOME:-~/.local/state}/higgshole and binds to 127.0.0.1, so a
fresh clone runs unprivileged with no setup.
Exposing it to your local network is a deliberate act: change
HIGGSHOLE_BIND_HOST. There is no authentication, by design.
If you set a daily spend cap, also set a credit limit on the OpenRouter key itself. That limit is enforced provider-side and is the only guard that cannot be defeated by a bug in this application.
Licence
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/szk1234/higgshole'
If you have feedback or need assistance with the MCP directory API, please join our Discord server