
Security News
Re-Enabled GitHub Actions Expose Thousands of Repositories to Mini Shai-Hulud
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.
fabricator-panel-mcp
Advanced tools
Beta. Young, and the way the client is configured may change between releases.
An MCP server for the Fabricator Minecraft panel. It runs on your machine, next to your MCP client, and talks to your panel over its HTTP API using an API token you mint in the panel's Settings, under Model Context Protocol.
It is built for one job: working out why a modpack server is crashing. Read the log, see what is installed, check a mod against Modrinth, remove or update it, restart.
This package is not a security boundary. What a token may do is decided and enforced by the panel, against the token, on the server side. The tool set here is a curation layer: it is narrower than what the token can reach, and it stays honest about the difference.
Paste this into your MCP client configuration. Create the token in Fabricator's Settings → Model Context Protocol.
{
"mcpServers": {
"fabricator": {
"command": "uvx",
"args": ["fabricator-panel-mcp"],
"env": {
"FABRICATOR_URL": "http://YOUR-PANEL:5000",
"FABRICATOR_TOKEN": "YOUR_API_TOKEN"
}
}
}
}
read is the recommended default — it cannot change anything. Use manage
only when you want the assistant to be able to act.uv installed and on your PATH. This is the one hard
prerequisite, and it is not bundled with any MCP client. If uv is missing, your client will
report the Fabricator server as failing to launch or disconnecting at startup — it looks
like a broken server, not like a panel or token problem, because the process never starts.
Installing uv fixes it.The token's scope decides this, and the panel enforces it — not this package.
| Scope | What it reaches |
|---|---|
read | List servers and their status · read console output and crash logs · list/identify installed mods and audit their compatible updates · batch-check Modrinth project compatibility · inspect exact Modrinth versions and search modpacks (catalog only) · CPU and memory use · server-specific Java/runtime and install diagnostics · loader and Minecraft-version discovery · backup coverage, schedules, and snapshot metadata · search Modrinth |
manage | Everything above, plus: start / stop / restart a server · start or retry server installation using its saved configuration · install or update one mod by Modrinth project id · delete installed mod jars |
read is the documented default. It answers every diagnostic question and cannot change
anything on your server.
Whatever the scope, a large part of the panel is refused to every token: the console, file reading and writing, server settings, creating or deleting servers, Java installation, the updater, backup creation and snapshot restore, world import, and all player administration including the player lists. The read-only backup and snapshot metadata tools do not expose archive paths or files. Those refusals happen in the panel, and this package surfaces them as they are rather than hiding the tools.
Only jars sitting directly in a server's mods folder are listed, and only those can be
removed. A jar inside a subfolder is invisible to the listing and cannot be deleted with
remove_mods — manage it through the panel UI instead. The tools say so rather than failing
opaquely.
manage token lets an assistant act on what it reads there. Prefer a read
token unless you specifically want it to be able to change things.Two environment variables, set by your MCP client on the process it spawns:
| Variable | Required | Default | Meaning |
|---|---|---|---|
FABRICATOR_URL | no | http://127.0.0.1:5000 | Base URL of the panel |
FABRICATOR_TOKEN | yes | — | The API token from the panel's Settings |
The token is never read from the command line. argv is visible to every process on the
machine and lands in shell history; a spawned process's environment is neither.
The package is a dependency island: its own pyproject.toml, its own lockfile, its own
interpreter pin, resolved and run entirely separately from the panel. The panel's
requirements.txt is not involved and does not change.
cd mcp
uv sync # create .venv from uv.lock, provisioning CPython 3.11
uv run pytest # run this package's suite
CI, and anyone who wants the exact recorded environment:
cd mcp
uv sync --frozen # fails if uv.lock has drifted from pyproject.toml
uv run pytest -q
Changing a dependency is the only thing that moves the recipe, and both files are committed together:
cd mcp
uv add "mcp>=1.28"
git add pyproject.toml uv.lock
The committed recipe is pyproject.toml + uv.lock + .python-version. A stand without a
committed recipe is a scratchpad ghost; do not regenerate the lock as a side effect of unrelated
work.
Four independent mechanisms keep this suite and the panel's from touching each other:
pyproject.toml + uv.lock; the panel keeps
requirements.txt. Neither references the other.mcp/.venv. The panel's environment has no mcp/httpx; this one
has no Flask.[tool.pytest.ini_options] table in pyproject.toml stops
pytest's upward search here, so a run in mcp/ never loads the panel's conftest.py; the
panel's pytest.ini sets testpaths = tests and norecursedirs = mcp so a run at the repo
root never descends into this directory..github/workflows/mcp-tests.yml runs the locked and unlocked jobs from mcp/.Do not add a [tool.uv.workspace] to the repository root. A workspace would merge the two
lockfiles and environments and destroy the island.
tests/conftest.py installs an autouse guard that turns an
un-mocked request into a failed test. Drive the client with httpx.MockTransport.AGPL-3.0-only, inherited from the Fabricator repository.
FAQs
MCP server for the Fabricator Minecraft panel
We found that fabricator-panel-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.

Research
/Security News
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.