MCP server for interacting with the Scryfall MTG API
MCP Fabric (Minecraft) is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
See and play Minecraft: Java Edition through the mcpfabric mod (Fabric and NeoForge).
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user mcp-fabric-minecraft '--' npx -y --package=mcpfabric-mcp-server mcpfabric
# 2 — ask your agent for something these tools do
# get_status, list_capabilities, get_block and 67 more
MCP Fabric (Minecraft) costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts MCP Fabric (Minecraft) as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user mcp-fabric-minecraft '--' npx -y --package=mcpfabric-mcp-server mcpfabricReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take MCPFABRIC_TOKEN (Bridge token; not needed while the game writes ~/.mcpfabric/bridge.json.), MCPFABRIC_TOOLSETS (Serve only some tools: profiles play, admin, build or tool groups.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
70 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Get the current state of the running game: mod & Minecraft version, which side this bridge runs on (client / dedicated_server), whether an integrated server is present, whether the player is in a world, current dimension, and the list of available capability groups. Call this first to learn what…
No parameter schema on file.
List every capability group and whether it is currently available on this side (e.g. control/interact/vision/nav are client-only; players/command admin need a server). Useful to decide which tools will work.
No parameter schema on file.
Read the block at an exact integer position: its block id, blockstate properties, whether it is air/fluid/solid, light levels, and hardness. Requires a loaded chunk.
No parameter schema on file.
Scan all blocks in the cuboid between two corners (inclusive) and return their ids. Regions above 16,777,216 positions (e.g. 256x256x256) are refused to protect the server: split larger areas. The answer is capped at maxBlocks (default 32768, truncated=true when hit); air is omitted unless…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | object | yes | One corner of the cuboid. |
| to | object | yes | Opposite corner of the cuboid. |
| includeAir | boolean | no | Include air blocks in the result. |
| maxBlocks | integer | no | Override the per-call block cap. |
Search a spherical radius around a center point for blocks matching any of the given ids (e.g. minecraft:diamond_ore). Searches outward from the center, so the nearest blocks are always covered; a scan budget of 250,000 positions may stop it early (truncated=true, searchedRadius tells how far it…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| center | object | yes | Center of the search sphere. |
| radius | integer | yes | Search radius in blocks. |
| blockIds | array | yes | Block ids to match, e.g. ["minecraft:diamond_ore","minecraft:ancient_debris"]. |
| maxResults | integer | no | Maximum matches to return. |
Get the current day-time (0-24000), total game-time, day count, and weather (raining/thundering) for a dimension.
No parameter schema on file.
List all dimensions present on the server and which one the player is currently in.
No parameter schema on file.
Cast a ray and report the first block and/or entity it hits. Blocks are hit by their outline shape, as the crosshair sees them (a ray above a bottom slab passes), and the ray stops at unloaded chunks. Provide either an explicit direction vector or yaw/pitch angles. Great for 'what am I looking at'…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| origin | object | yes | Ray start position (usually an eye position). |
| direction | object | no | Ray direction vector (need not be normalized). Use this OR yaw/pitch. |
| yaw | number | no | Yaw in degrees (Minecraft convention). Use with pitch instead of direction. |
| pitch | number | no | Pitch in degrees (-90 up .. 90 down). |
| maxDistance | number | no | Maximum ray length in blocks. |
| includeFluids | boolean | no | Treat fluids as hittable. |
| includeEntities | boolean | no | Also test entities along the ray. |
Place/replace the block at an exact position with the given block id (optionally with blockstate properties as a string like 'minecraft:oak_log[axis=y]'). Requires a server (integrated client or dedicated).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| blockId | string | yes | Block id, optionally with state, e.g. "minecraft:stone" or "minecraft:oak_stairs[facing=east]". |
Fill the cuboid between two corners with one block id. Volume is capped for safety. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | object | yes | — |
| to | object | yes | — |
| blockId | string | yes | Block id to fill with. |
Set the day-time (0-24000; 0=dawn, 6000=noon, 12000=dusk, 18000=midnight). Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| time | integer | yes | Day-time in ticks (0-24000). |
Set the weather. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| weather | string | yes | Target weather. |
| durationSeconds | integer | no | How long the weather should last. |
List entities, optionally filtered by a sphere (center+radius), entity type ids, living-only, and whether to include players. Returns position, type, name, health and key flags for each.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| center | object | no | Center of the search sphere; omit to use the position of the only player in that dimension (the world spawn when there is none or several; centerSource says which). |
| radius | number | no | Search radius in blocks. |
| types | array | no | Entity type ids to match, e.g. ["minecraft:zombie","minecraft:cow"]. |
| includePlayers | boolean | no | — |
| onlyLiving | boolean | no | — |
| maxResults | integer | no | — |
Get detailed info about a single entity by UUID: type, position, velocity, health, equipment, NBT-derived attributes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| uuid | string | yes | Entity UUID. |
Summon an entity of the given type at a position, optionally with SNBT data. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | yes | Entity type id, e.g. "minecraft:armor_stand". |
| nbt | string | no | Optional SNBT, e.g. '{NoGravity:1b}'. |
Discard (remove) a non-player entity by UUID. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| uuid | string | yes | Entity UUID to remove. |
List all online players with name, UUID, position, dimension, health, food, game mode and ping. Requires a server.
No parameter schema on file.
Get detailed state for one online player. Requires a server.
No parameter schema on file.
Teleport a player to coordinates (and optionally another dimension / facing). Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| yaw | number | no | — |
| pitch | number | no | — |
Set a player's game mode. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | yes | — |
Give an item stack to a player. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| itemId | string | yes | Item id, e.g. "minecraft:diamond". |
| count | integer | no | — |
| nbt | string | no | Optional SNBT components. |
Apply a potion/status effect to a player. Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| effectId | string | yes | Effect id, e.g. "minecraft:speed". |
| durationSeconds | integer | no | — |
| amplifier | integer | no | — |
| showParticles | boolean | no | — |
Send a system/chat message to a player ("@all" to broadcast). Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | — |
Kick a player from the server. Requires a dedicated server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reason | string | no | — |
Execute an arbitrary Minecraft command at operator permission level 4 (do NOT include the leading slash) and capture its feedback output. This is extremely powerful (/setblock, /summon, /give, /tp, /gamerule, /execute, datapacks, ...). Requires a server.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| command | string | yes | Command without the leading slash, e.g. "time set day". |
Send a chat message. On a client this is sent as the local player (a leading '/' runs a command as that player, and needs enableCommands); on a dedicated server it is broadcast.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| message | string | yes | — |
Client only. Show the local player a message from you, prefixed [AI], in their chat or on the action bar. Nothing is sent to the server or other players, so use it rather than send_chat to talk to the player. It works while the player has paused you (get_status reports aiPaused); formatting codes…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | The message. |
| actionBar | boolean | no | Show it briefly above the hotbar instead of in chat. |
Return recently observed chat & system messages (most recent last).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
Client-only. Full state of YOUR player: position, yaw/pitch, motion, health, food, saturation, air, XP, game mode, on-ground, in-fluid, selected hotbar slot, dimension.
No parameter schema on file.
Client-only. Full inventory: main slots, hotbar, armor, offhand, and the selected slot. Each item reports id, count and durability.
No parameter schema on file.
Client-only. Currently equipped items: main hand, off hand, helmet, chestplate, leggings, boots.
No parameter schema on file.
Client-only. Active status effects on your player with amplifier and remaining duration.
No parameter schema on file.
Client-only. Set held movement inputs as booleans; they persist until changed (like holding keys). Any omitted field is left unchanged. Combine with look/look_at to walk somewhere. Use stop_movement to release everything.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| forward | boolean | no | — |
| back | boolean | no | — |
| left | boolean | no | — |
| right | boolean | no | — |
| jump | boolean | no | — |
| sneak | boolean | no | — |
| sprint | boolean | no | — |
Client-only. Release all movement inputs (stop walking/jumping/sneaking/sprinting).
No parameter schema on file.
Client-only. Set absolute yaw/pitch, or apply relative deltas. Yaw: 0=south,-90=east,90=west,180=north. Pitch: -90=up, 90=down.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| yaw | number | no | Absolute yaw in degrees. |
| pitch | number | no | Absolute pitch in degrees (-90..90). |
| deltaYaw | number | no | Relative yaw change in degrees. |
| deltaPitch | number | no | Relative pitch change in degrees. |
Client-only. Rotate the player to face a world coordinate.
No parameter schema on file.
Client-only. Perform a single jump.
No parameter schema on file.
Client-only. Begin using/holding the right-click action of the held item (eat, draw bow, block with shield, etc.).
No parameter schema on file.
Client-only. Release the right-click use action.
No parameter schema on file.
Client-only. Break the block at a position. mode 'instant' breaks it at once: in creative through the normal break packet; in survival only on an integrated server with world writes enabled (the server breaks it). 'broke' is what the integrated server reports (null on a remote server). 'survival'…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | no | — |
Client-only. Place the currently held block against the given position/face. Out of reach, nothing is sent (result OUT_OF_REACH). 'result' is the client's prediction; 'placed' is what the integrated server did (null on a remote server). Equip the desired block first with select_hotbar_slot.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| face | string | no | — |
Client-only. Perform a right-click with the held item like the use key does: on the entity or block under the crosshair first, then the item on its own (e.g. eat, throw). 'target' says which one acted (entity, block or air).
No parameter schema on file.
Client-only. Attack (left-click) an entity by UUID. Out of reach, nothing is sent (result OUT_OF_REACH). With an integrated server, the answer reports what the server did: removed, and for living targets damaged and serverHealth.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| uuid | string | yes | — |
Client-only. Right-click/interact with an entity by UUID (e.g. trade with a villager, mount a horse). Out of reach, nothing is sent (result OUT_OF_REACH); otherwise 'result' is the client's prediction.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| uuid | string | yes | — |
Client-only. Drop the held item (one, or the whole stack).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wholeStack | boolean | no | — |
Client-only. Select a hotbar slot (0-8) as the held item.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slot | integer | yes | — |
Client-only. Drop the contents of a specific inventory slot.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slot | integer | yes | Inventory slot index (0-8 hotbar, 9-35 main, 36-39 armor, 40 offhand). |
| wholeStack | boolean | no | — |
Client-only. Swap the items in two inventory slots via container clicks (player inventory must be the active screen-less context).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slotA | integer | yes | — |
| slotB | integer | yes | — |
Client-only. Capture the current game framebuffer as a PNG image (at the game's current resolution) so a vision-capable model can literally see what the player sees. With marks: true, mobs and players in view get numbered labels (#1, #2, ...) on the image and a legend maps each number to its…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| marks | boolean | no | Label the mobs and players in view with numbers and list them. |
Client-only. Produce a structured, text description of what is visible: the block/entity directly under the crosshair, a grid of raycasts across the field of view, and nearby visible entities. A cheap alternative to a screenshot for non-vision models.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| maxDistance | number | no | — |
| rayColumns | integer | no | — |
| rayRows | integer | no | — |
Client-only. Asynchronously move the player to a target position using A* pathfinding: walks, jumps up 1 block, drops down (at most 3 blocks unless into water), swims at the surface, climbs ladders and vines, and opens wooden doors and fence gates. Unless turned off it also digs through blocks…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reachRadius | number | no | Stop when within this many blocks of the target. |
| sprint | boolean | no | — |
| timeoutSeconds | integer | no | — |
| allowDig | boolean | no | Break blocks in the way when that is shorter than going around. |
| allowPillar | boolean | no | Pillar up on throwaway blocks (cobblestone, dirt, netherrack...) from the hotbar. |
| allowSwim | boolean | no | Swim across deep water. |
Client-only. Report whether navigation is active, the target, remaining distance/steps, the current move (walk, jump, fall, swim, climb, door, dig, pillar), and whether the bot appears stuck. When it ended, state says why (reached, timeout, dig_failed, unsafe_dig, no_blocks, pillar_failed,…
No parameter schema on file.
Client-only. Cancel any active navigation and release movement.
No parameter schema on file.
Client-only. Report where the client is: inWorld, the open screen as a coarse kind (none, pause, chat, container, death, title, multiplayer, singleplayer, disconnected, connecting, loading, other), whether the game is paused, whether join_world can run now (canJoin), and the id of the world joined…
No parameter schema on file.
Client-only, in a world. Close the open screen: leaves the pause menu, chat or a container, and respawns the player on the death screen. Fails while a world is loading and outside a world (use join_world there).
No parameter schema on file.
Client-only. List what join_world can join: saved singleplayer worlds (worldId sp:<folder>, name, lastPlayed in ms, joinable), newest first, and the server list entries as opaque mp: ids (the same ids session/agent memory uses; addresses and entry names are never returned). Also returns…
No parameter schema on file.
Client-only, from the menus (title, multiplayer, disconnected, ... screens). Open a singleplayer world or connect to a server by worldId from list_worlds; without worldId, rejoin the world played last in this game run (after a kick, a server restart or a lost connection). Only servers in the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| worldId | string | no | World id from list_worlds or get_screen, e.g. "sp:New World" or "mp:3f2a...". Omit to rejoin the last world. |
Client-only, needs enableUiControl. List the widgets of the open screen in focus order: id, type (button, checkbox, cycle, slider, text_field, text, other), text, active, checked (checkboxes), value (text fields) and position in GUI coordinates. Works on the pause, title, death, options,…
No parameter schema on file.
Client-only, needs enableUiControl. Left-click a widget of the open screen, by id from get_ui or by its exact label (case-insensitive, must be unique). Returns the screen after the click. Refuses disabled widgets and the Quit Game, Realms and Reset Demo World buttons. For sliders, fraction picks…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| widget | yes | Widget id from get_ui, or its exact label. | |
| fraction | number | no | Where to click across the widget, 0..1 (default 0.5); sets a slider's value. |
Client-only, needs enableUiControl. Replace the text of a text field on the open screen (by id from get_ui or by label), for example a search box or an anvil's name field. Returns the value the field accepted (fields can cut or filter text).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| widget | yes | Widget id from get_ui, or its exact label. | |
| text | string | yes | — |
Needs enableSupervisedControl. Report the supervised mode: which operations can run on this side right now (with the reason when one cannot), open actions that must be reconciled before anything else, the latest actions and their outcomes, the approved saves, the allowed command roots, the keys…
No parameter schema on file.
STOP for the supervised mode; always available. No grant issued before this call admits anything any more, and any supervised input is released. It does not roll back effects that were already admitted.
No parameter schema on file.
Client-only, needs enableSupervisedControl. Hold one movement key (forward, back, left or right) for a few ticks (1-10, 20 ticks = 1 s), then release it. One call is one approved action: a new move needs a new call. Refused while the player holds that key, a screen is open, or movement/navigation…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| direction | string | yes | — |
| ticks | integer | no | How long to hold the key, in client ticks. |
Needs enableSupervisedControl and an integrated or dedicated server. Read one block at an exact position as one supervised action. Answers with outcome applied and the block, or not_applied with the reason (for example an unloaded chunk).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| x | integer | yes | — |
| y | integer | yes | — |
| z | integer | yes | — |
Needs enableSupervisedControl and an integrated or dedicated server. Replace one block at an exact position, only if the block there is expect right now. Block state is allowed (oak_stairs[facing=north]), block data ({...}) is not. Answers with outcome applied (read back), not_applied…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| x | integer | yes | — |
| y | integer | yes | — |
| z | integer | yes | — |
| block | string | yes | The new block, e.g. "minecraft:stone" or "oak_stairs[facing=north]". |
| expect | string | yes | The block id that must be there now, e.g. "minecraft:air". |
Needs enableSupervisedControl and an integrated or dedicated server. Run one server command whose first word is in supervisedCommands in mcpfabric.config.json (time and weather by default); see supervised_status for the list. Command data ({...}) is refused. Answers with outcome applied or…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| command | string | yes | The command without or with a leading slash, e.g. "time set day". |
Client-only, from the menus, needs enableSupervisedControl. Open a singleplayer save listed in supervisedWorlds in mcpfabric.config.json (worldId sp:<folder>, see supervised_status). Joining runs in the background: the outcome is pending, so call supervised_reconcile once get_screen shows inWorld…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| worldId | string | yes | An approved save, e.g. "sp:Test World". |
Client-only, needs enableSupervisedControl. Save and quit the singleplayer world the player is in, like the pause menu's Save and Quit; worldId must name that world. The outcome is pending until supervised_reconcile sees the title screen; that the save reached the disk is not verified.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| worldId | string | yes | The world the player is in, as get_screen reports it (lastWorldId). |
Needs enableSupervisedControl. Settle a supervised action whose outcome is pending or uncertain: reads the game again (the block, the world joined or left, the finished input sample) and reports the outcome. While any action is open, no other supervised action runs. If the outcome cannot be read…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| actionId | string | yes | The actionId of the open action, e.g. "a3". |
| acknowledge | boolean | no | Close the action as acknowledged when the readback cannot settle it. |
Return recently observed game events from the in-mod ring buffer (damage taken, entity spawn/death, block break/place, chat, dimension change, etc.). Filter by type and/or pass sinceId to get only events newer than one you've already seen.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
| types | array | no | Event type filter, e.g. ["chat","player_damage","entity_death"]. |
| sinceId | integer | no | Only return events with id greater than this. |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install MCP Fabric (Minecraft) or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.9.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish MCP Fabric (Minecraft) can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.