
Fabricator Panel Mcp
io.github.philderksPublished by GitHub account philderksv0.1.0Updated Oct 24, 2026
Manage and diagnose Minecraft servers through the self-hosted Fabricator panel.
Overview
Lets an assistant inspect and, with a manage token, act on Minecraft servers through a self-hosted Fabricator panel.
- What you can do
- Connects to a Fabricator panel over its HTTP API and exposes tools for diagnosing modpack servers: listing servers and status, reading console output and crash logs, listing installed mods, auditing compatible updates, checking Modrinth projects and versions, and viewing CPU, memory, runtime and backup metadata. With a manage-scope token it can also start, stop or restart servers, retry installation, install or update one mod by Modrinth project id, and delete installed mod jars. The panel enforces what the token may reach; the package is a narrower curation layer.
- When to use it
- Use it when you run a self-hosted Fabricator panel and want an assistant to help work out why a modpack server is crashing, or to carry out routine mod and restart actions. A read token covers diagnostics; a manage token is only needed when the assistant should change things.
- Requirements
- A local process started by the MCP client, requiring uv on PATH (the one hard prerequisite; without it the server fails to launch). The Fabricator panel must be reachable from the machine with MCP access enabled. Set FABRICATOR_URL (default and the required secret FABRICATOR_TOKEN, an API token created in the panel's Settings under Model Context Protocol.
Installation
In SourceWeft
- Open Fabricator Panel Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
fabricator-panel-mcp
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.
Connect your MCP client
Paste this into your MCP client configuration. Create the token in Fabricator's Settings → Model Context Protocol.
Requirements
- The panel, reachable from this machine, with MCP access enabled in Settings → Model Context Protocol.
- An API token.
readis the recommended default — it cannot change anything. Usemanageonly when you want the assistant to be able to act. uvinstalled and on yourPATH. This is the one hard prerequisite, and it is not bundled with any MCP client. Ifuvis 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. Installinguvfixes it.
What the assistant can do
The token's scope decides this, and the panel enforces it — not this package.
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.
Known limitation: mods in subfolders
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.
Security notes
- Server logs contain text written by mods and by players. Anything that can print to the
server console — a mod, a player's chat message, a nickname, the MOTD — ends up in what the
assistant reads. A
managetoken lets an assistant act on what it reads there. Prefer areadtoken unless you specifically want it to be able to change things. - The token sits in plain text in your MCP client's configuration file. Treat that file like a password: anyone who can read it can use the token.
- Tokens do not expire. Revoke any you no longer use, from the same Settings panel.
- Turning MCP access off in the panel makes existing tokens stop working immediately without deleting them.
Configuration
Two environment variables, set by your MCP client on the process it spawns:
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.
Development
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.
CI, and anyone who wants the exact recorded environment:
Changing a dependency is the only thing that moves the recipe, and both files are committed together:
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.
Isolation from the panel suite
Four independent mechanisms keep this suite and the panel's from touching each other:
- Separate resolution — this
pyproject.toml+uv.lock; the panel keepsrequirements.txt. Neither references the other. - Separate environment —
mcp/.venv. The panel's environment has nomcp/httpx; this one has no Flask. - Separate pytest rootdir — the
[tool.pytest.ini_options]table inpyproject.tomlstops pytest's upward search here, so a run inmcp/never loads the panel'sconftest.py; the panel'spytest.inisetstestpaths = testsandnorecursedirs = mcpso a run at the repo root never descends into this directory. - Separate test workflow —
.github/workflows/mcp-tests.ymlruns the locked and unlocked jobs frommcp/.
Do not add a [tool.uv.workspace] to the repository root. A workspace would merge the two
lockfiles and environments and destroy the island.
Testing rules
- No test may reach the network.
tests/conftest.pyinstalls an autouse guard that turns an un-mocked request into a failed test. Drive the client withhttpx.MockTransport. - The tool-to-route mapping is a data table, and a test asserts it is a subset of the routes the panel permits a token. If the panel's classification moves, that test goes red on purpose.
Licence
AGPL-3.0-only, inherited from the Fabricator repository.
Source: mcp/README.md at commit 416d7cd
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts