SkillAgentSearch skills...

mcpfabric

Control and observe a running Minecraft: Java Edition game from AI agents over MCP (Fabric and NeoForge, 1.21.1+)

Install / Use

claude mcp add denfry -- npx -y github:denfry/mcpfabric

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

81/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of mcpfabric

mcpfabric scores 81/100 on our quality scale, 725th of 960 AI & Machine Learning skills we index.

Its MCP Server is 16 KB long, well organised into 20 sections with 9 code examples: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
12/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 2 days ago, so mcpfabric is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-10-18. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

mcpfabric compared with similar skills

All 4 of these similar skills score higher than mcpfabric; compare them before choosing.

SkillScoreStarsUpdatedFormat
mcpfabric (this skill)by denfry81102d agoMCP Server
claude-memby thedotmack100101.5ktodayCLAUDE.md
Agent-Reachby Panniantong10098.9k3d agoCLAUDE.md
Understand-Anythingby Egonex-AI10086.9k6d agoCLAUDE.md
headroomby headroomlabs-ai10075.7ktodayCLAUDE.md

Frequently asked questions

How do I install mcpfabric?
Run claude mcp add denfry -- npx -y github:denfry/mcpfabric. The install tabs above show the steps for each supported agent.
Which AI agents does mcpfabric work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is mcpfabric safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is mcpfabric still maintained?
The repository was last updated 2 days ago, so mcpfabric is actively maintained.
<div align="center"> <img src="docs/assets/mcpfabric-icon-512.png" alt="MCP Fabric grass block, AI network, and bridge emblem" width="180" height="180">

MCP Fabric — AI control for Minecraft

Let Claude and other MCP clients see, understand, and play Minecraft through 50+ tools.

Build Modrinth downloads GitHub stars License: MIT Discord M8ven Score

Download on Modrinth · Installation · Tools · Security · Telemetry · Contributing

</div>

MCP Fabric is a local-first Minecraft mod and Model Context Protocol server that gives AI agents structured observation and controlled access to Minecraft. It works on both the client and dedicated servers across Minecraft 1.21.1–1.21.11 and 26.1–26.3, on Fabric and NeoForge.

  • Play through natural language: move, look, navigate, mine, build, fight, and use inventory.
  • See the game: inspect blocks, entities, players, status, chat, events, and screenshots.
  • Operate servers: run commands, edit worlds, manage entities, and administer players.
  • Bring your own AI: works with Claude Desktop, Claude Code, and other MCP-compatible hosts.
  • Stay local by default: loopback-only HTTP bridge, bearer authentication, and capability gates.
  • No hidden telemetry: the current Fabric release sends no usage analytics.

Quick start

  1. Install Fabric Loader and Fabric API, or NeoForge.
  2. Download the jar matching your Minecraft version and loader from Modrinth and place it in mods/.
  3. Launch Minecraft once, then copy token from config/mcpfabric.config.json.
  4. Build the MCP server with cd mcp-server && npm ci && npm run build.
  5. Add it to your MCP client using the ready-to-copy examples.

[!CAUTION] MCP Fabric can grant an AI operator-level control. Keep the bridge on 127.0.0.1, keep authentication enabled, and disable capability groups you do not need.

How it works

mcpfabric has two parts: a Fabric / NeoForge mod that embeds a local HTTP bridge in Minecraft, and a small TypeScript MCP server that exposes the bridge as discoverable tools.

Claude / any MCP client
        │  MCP (stdio or streamable HTTP)
   mcp-server  (Node / TypeScript)
        │  HTTP  POST /rpc (JSON-RPC) + GET /events (SSE),  bearer token, 127.0.0.1 only
   mod "mcpfabric" on Fabric or NeoForge  (HTTP server embedded in Minecraft)
        │  all game access goes through the main-thread executor (server.execute / Minecraft.execute)
   ┌── common (env *) ─────────────┐   ┌── client (env client) ─────────────────┐
   │ info  world  entities         │   │ player  control  interact               │
   │ players  command  chat events │   │ inventory  vision  navigation  chat     │
   └───────────────────────────────┘   └─────────────────────────────────────────┘

Reads use Minecraft's native API (structured data); writes (setblock / summon / give / tp / effects / weather / time) go through the command dispatcher with output capture. Player control uses KeyMapping (integrating with the vanilla input pipeline), screenshots use the vanilla Screenshot / NativeImage, and navigation is a custom A*.


Supported Minecraft versions

A single source tree targets many Minecraft versions using Stonecutter. Each version below ships its own jar:

| Line | Versions (one jar each) | Java | |----------|-----------------------------------------------------------------|------| | 1.21.x | 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11 | 21 | | 26.x | 26.1.2 (installs on 26.1–26.1.2), 26.2, 26.3 | 25 |

14 Fabric jars are produced, each named mcpfabric-<modVersion>+<mcVersion>.jar (e.g. mcpfabric-0.3.0+1.21.8.jar). The 26.1.2 jar declares compatibility with the whole 26.1 line. They require Fabric Loader ≥ 0.19.5 and the matching Fabric API build.

13 NeoForge jars cover the same versions except 1.21.2 (NeoForge only shipped two abandoned betas for it), each named mcpfabric-neoforge-<modVersion>+<mcVersion>.jar:

| Minecraft | Minimum NeoForge | |-----------|------------------| | 1.21.1 | 21.1.251 | | 1.21.3 | 21.3.97 | | 1.21.4 | 21.4.157 | | 1.21.5 | 21.5.98 | | 1.21.6 | 21.6.20-beta | | 1.21.7 | 21.7.25-beta | | 1.21.8 | 21.8.54 | | 1.21.9 | 21.9.16-beta | | 1.21.10 | 21.10.64 | | 1.21.11 | 21.11.45 | | 26.1.2 | 26.1.2.109 | | 26.2 | 26.2.0.88 | | 26.3 | 26.3.0.10-beta |

NeoForge for 1.21.6, 1.21.7, 1.21.9 and 26.3 only exists as beta builds.

The MCP server needs Node.js ≥ 22.16 (the agent runtime uses the built-in node:sqlite).


1. Build the mod

# Build a single version (the one currently active in stonecutter.gradle)
./gradlew build           # Windows: gradlew.bat build

# Build a specific version (Fabric nodes are named after the version, NeoForge nodes <mc>-neoforge)
./gradlew ":1.21.8:build"
./gradlew ":1.21.1-neoforge:build"

# Build every supported version at once
./gradlew chiseledBuild

Per-version jars land in versions/<node>/build/libs/.

JDK note. 1.21.x builds need JDK 21; the 26.x line needs JDK 25. Loom requires the Gradle daemon to run on a JDK at least as new as the Minecraft version, so to build 26.x (or chiseledBuild) run Gradle on JDK 25 with JDK 21 also installed. See CONTRIBUTING.md.

Network note. If the first build fails with Remote host terminated the handshake while downloading dependencies from maven.fabricmc.net (this happens behind TLS-inspecting antivirus/firewalls), gradle.properties already pins TLS 1.2 and sequential downloads. Just re-run the build — the download cache persists.

Install

Drop the jar for your Minecraft version and loader into your mods/ folder (on Fabric, together with Fabric API):

  • Client (AI plays as you): the mods/ folder of your Fabric / NeoForge instance.
  • Server (AI as admin): the mods/ folder of your dedicated Fabric / NeoForge server.
  • Both sides at once is fine.

On first launch the mod creates config/mcpfabric.config.json and logs where to find the token:

[mcpfabric] ready — bridge http://127.0.0.1:25599 (token: .../…[redacted])

Copy the token value from that file — the MCP server needs it. The token is intentionally not printed to logs.

Mod config (config/mcpfabric.config.json)

{
  "host": "127.0.0.1",
  "port": 25599,
  "token": "generated automatically",
  "requireAuth": true,
  "callTimeoutMs": 8000,
  "worldIdKey": "generated automatically",
  "enableWorldWrite": true,
  "enableCommands": true,
  "enablePlayerControl": true,
  "enableVision": true,
  "enableUiControl": false,
  "enableSupervisedControl": false,
  "supervisedWorlds": [],
  "supervisedCommands": ["time", "weather"]
}

The enable* flags let you switch off dangerous capability groups. enableUiControl is the one that starts off: it lets the model click buttons and type into text fields of game screens (get_ui, click_widget, set_text_field), which reaches settings and actions the other tools never expose. Vanilla screens are limited to the pause, title, death, options, advancements, statistics, confirmation and container screens, but screens added by other mods are not restricted, so turn it on only when you need it, for example to test a mod's UI. It also needs enablePlayerControl. requireAuth (default true) gates every request behind the bearer token — only set it to false if you understand that it removes the sole authentication on an operator-level bridge. Keep host on 127.0.0.1 unless you fully understand the consequences — the bridge grants operator-level power. worldIdKey turns a server address into the opaque world id that session.info reports; like the token, it is never sent over the bridge.

enableSupervisedControl (off by default) turns on the supervised mode: one narrow action per call under short-lived authority, with every outcome read back or reconciled. It is its own lock, so you can turn the other enable* flags off and leave the model only these actions. supervisedWorlds lists the save folders it may open, supervisedCommands the command roots it may run. See docs/SUPERVISED.md.


2. MCP server

cd mcp-server
npm install
npm run build      # compiles to dist/

Usually your MCP client launches it for you (see below). Manually:

MCPFABRIC_URL=http://127.0.0.1:25599 MCPFABRIC_TOKEN=<token> node dist/index.js

Environment variables

| Variable | Default | Description | |------------------------|--------------------------|---------------------------------------------------| | MCPFABRIC_URL | http://127.0.0.1:25599 | Address of the mod's HTTP bridge. | | MCPFABRIC_TOKEN | — | Bearer token from the mod config (required by default). | | MCPFABRIC_TIMEOUT_MS | 15000 | Per-call timeout to the bridge. | | MCPFABRIC_TRANSPORT | stdio | stdio or http. | | MCPFABRIC_HTTP_PORT | 25600 | Port for the http transport (/mcp). |


3. Connect to Claude

Claude Desktop

claude_desktop_config.json (see examples/claude_desktop_config.json):

{
  "mcpServers": {
    "mcpfabric": {
      "command": "node",
      "args": ["/absolute/path/to/mcpfabric/mcp-server/dist/index.js"],
      "env": {
        "MCPFABRIC_URL": "http://127.0.0.1:25599",
        "MCPFABRIC_TOKEN": "past…[redacted]"
      }
    }
  }
}

Claude Code

Use the .mcp.json in the project root (see examples/mcp.json) or:

claude mcp add mcpfabric -- node /absolute/path/to/mcpfabric/mcp-server/dist/index.js

Then set MCPFABRIC_TOKEN in the server's environment.


Tools (50+)

info — get_status, list_capabilities world (read) — get_block, get_blocks_region, find_blocks, get_time_and_weather, list_dimensions, raycast world (write) — set_block, fill_blocks, set_time, set_weather entities — query_entities, get_entity, summon_entity, remove_entity players (admin) — list_players, get_player, teleport_player, set_gamemode, give_item, apply_effect, message_player, kick_player command — run_command (any operator-level command, with output capture) chat — send_chat, get_recent_chat player (local, client) — get_self, get_inventory, get_equipment, get_status_effects control (client) — set_movement, stop_movement, look, look_at, jump, `s

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryAI
Updated2d ago
Forks0

Languages

Java

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info