# fabricator-panel-mcp

Hooks your AI client up to the Fabricator panel over its HTTP API, so you can find out why a modpack server keeps crashing.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 57
- Author: philderks
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/philderks/Fabricator/tree/HEAD/mcp
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/fabricator-panel-mcp

## What it does

The server runs on your own machine beside the MCP client and reaches the Fabricator panel through its HTTP API. You mint the token in the panel under Settings, in the Model Context Protocol section. From there the assistant reads the log, checks which mods are installed, looks a mod up on Modrinth, removes or updates it, and restarts the server.

The token scope decides what is reachable, and the panel enforces it. With `read` you get the server list, console output and crash logs, installed mods with compatible updates, Modrinth compatibility checks, CPU and memory figures, Java and install diagnostics, backup coverage and snapshot metadata. A `manage` token adds start, stop and restart, installation from the saved configuration, installing or updating a single mod by Modrinth project id, and deleting mod jars. For pure diagnosis `read` is enough, since it cannot change anything.

\`uv` has to be installed and on your `PATH`. Without it the client reports the server as failing to launch or dropping at startup, which reads like a panel or token fault even though the process never starts. The token sits in plain text in the client config, never expires, and is read from environment variables rather than command-line arguments. Jars nested in subfolders of `mods` do not show up in the listing and cannot be removed with `remove_mods`.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `FABRICATOR_URL`, `FABRICATOR_TOKEN` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env FABRICATOR_URL=<FABRICATOR_URL> --env FABRICATOR_TOKEN=<FABRICATOR_TOKEN> --transport stdio mcp -- uvx fabricator-panel-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fabricator-panel-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add mcp --env FABRICATOR_URL=<FABRICATOR_URL> --env FABRICATOR_TOKEN=<FABRICATOR_TOKEN> -- uvx fabricator-panel-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fabricator-panel-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "command": "uvx",
            "args": [
                "fabricator-panel-mcp"
            ],
            "env": {
                "FABRICATOR_URL": "<FABRICATOR_URL>",
                "FABRICATOR_TOKEN": "<FABRICATOR_TOKEN>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fabricator-panel-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "fabricator-panel-mcp"
            ],
            "env": {
                "FABRICATOR_URL": "<FABRICATOR_URL>",
                "FABRICATOR_TOKEN": "<FABRICATOR_TOKEN>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fabricator-panel-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e FABRICATOR_URL=<FABRICATOR_URL> -e FABRICATOR_TOKEN=<FABRICATOR_TOKEN> mcp uvx fabricator-panel-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fabricator-panel-mcp <command>

## When to use it
- work out why a modpack server crashes
- read a crash log and console output
- check an installed mod against Modrinth
- update one mod by project id
- see CPU and memory use of a server

## Example prompts
- Read the last crash log and tell me which mod is taking the server down
- Check the installed mods for compatible updates on Modrinth
- Restart the server and show me what the console prints on boot

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
