Skip to main content
Glama

mc-mod-mcp

An MCP server that gives Claude grounded answers when you're writing Minecraft mods.

It targets the two eras of the modding scene that are actually still alive — 1.8.9 (Forge/MCP, Java 8, Hypixel-style client mods) and 1.21.10+ (NeoForge or Fabric, Java 21, Mojang-mapped, Data Components). For 1.21.x it can also do live mapping lookups against linkie and pull mappings straight from piston-meta when linkie hasn't ingested a fresh release yet.

Without this, Claude tends to mix the two eras, hallucinate new ResourceLocation(...) (gone since 1.20.5), forget that items use Data Components instead of NBT, and write ServerboundUseItemPacket without the new sequence/yaw/pitch fields. With it, the model has a fact to look up instead of a name to guess.

Install

git clone https://github.com/ratph6/mc-mod-mcp
cd mc-mod-mcp
npm install
npm run build

Then point Claude Code at the built binary:

claude mcp add mc-mod node "$PWD/dist/index.js"

(or hand-edit ~/.claude/config.json if you prefer).

Usage

Just ask in plain English. Claude picks the tool. Some examples that actually exercise it:

How do I send a useItem packet in 1.21.10 Fabric?

Translate this 1.8.9 snippet to 1.21+: Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("hi"))

Scaffold a NeoForge 1.21.10 mod main class for examplemod

Show me a @ModifyVariable mixin example

What's the Yarn name for LocalPlayer in 1.21.10?

Tools

name

what it does

mc_version_info

Loaders, Java, mappings, build system, doc links for an era

mc_lookup_class

Fully-qualified class name in 1.8.9 vs 1.21+ for a concept (Block, Level, BlockEntity, …)

mc_lookup_api

Canonical snippet for a task (send chat, open gui, register block, …)

mc_translate

Given a symbol from one era, suggest the equivalent in the other

mc_event

"What event fires when X?" — gives 1.8.9 + NeoForge + Fabric

mc_mixin

Mixin pattern catalog (@Inject, @ModifyArg, @WrapOperation, @Accessor, …) plus mixin config JSON

mc_gotchas

Era-specific pitfalls — Data Components, ResourceLocation factory, mod bus vs game bus, etc. Filterable.

mc_gradle

build.gradle / settings.gradle / gradle.properties for an era + loader

mc_mappings_translate

Yarn ↔ Mojang class name translation (curated)

mc_list_scaffolds

Enumerate scaffold templates

mc_scaffold

Emit boilerplate (mod main, item/block, command, key binding, mixin, network payload, …)

mc_docs

Doc links for an era

mc_list_versions

Live: every version linkie knows, per namespace

mc_mappings_search

Live: full-text search against linkie's mappings API

mc_lookup_field

Live: field-name lookup against linkie (the curated tables don't track fields)

mc_mojang_mappings

Pulls Mojang's client_mappings.txt directly via piston-meta. Used for 26.1.x and any version linkie chokes on.

The first twelve are curated — fast, deterministic, no network. The last four hit the network on demand.

Extending

Knowledge lives in src/knowledge.ts as flat data. Add an entry to CLASSES / METHODS / EVENTS / MIXIN_PATTERNS / GOTCHAS / YARN_TO_MOJANG / GRADLE_TEMPLATES, run npm test, done. Scaffolds are template functions in the same file, listed via SCAFFOLD_KINDS.

src/
  index.ts          MCP server, tool definitions, stdio transport
  knowledge.ts      Curated data + scaffold templates
  linkie.ts         Live calls to linkie's mappings API
  mojang.ts         Live piston-meta + proguard parser
  smoke.test.ts     node:test smoke tests

Caveats

It doesn't ship Mojang/Yarn/Parchment mapping files (multi-MB) — for raw obf names use the live tools or linkie. It won't tell you whether your specific code compiles, only that the API shape is right for the era. Translations target 1.8.9 and 1.21.10; intermediate versions usually still apply but treat them as approximate.

Available Tools

16 tools
mc_docsDocumentation links for an eraC

Returns the most relevant doc/wiki links to consult for a given era.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states the basic output. It does not disclose behavioral traits such as whether the links are external, if network access is required, or any ranking logic behind 'most relevant'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the main action. No redundant text. However, it is too brief and could be expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool with no output schema, the description gives a basic idea of the return (doc/wiki links) but leaves out details like format or number of results. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds no meaning to the 'era' parameter beyond what the enum values imply. It does not explain what each era means or how the returned links relate to the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns doc/wiki links for a given era, using a specific verb ('Returns') and resource ('doc/wiki links'). It distinguishes the tool's function from siblings like mc_lookup_api or mc_event, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. With many sibling tools (e.g., mc_lookup, mc_gotchas), the description should indicate typical use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_eventFind the event for a triggerA

Given a plain-English description of a trigger ('player joins', 'tick', 'right click block'), returns the event class name in 1.8.9, NeoForge 1.21+, and Fabric 1.21+. Also tells you whether the event lives on the mod bus or game bus (NeoForge distinction).

ParametersJSON Schema
NameRequiredDescriptionDefault
triggerYesPlain-English description of when the event fires

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses the output (class names for three platforms, bus info) but lacks details on error handling, rate limits, or what happens if trigger not recognized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded, no wasted words. Efficiently conveys core function and output specifics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input with examples and output details for key platforms. Lacks mention of error behavior or result format, but sufficient for a straightforward lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema describes the trigger parameter as plain-English description. The description adds concrete examples and clarifies output context (platform-specific class names, bus), enhancing understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool maps plain-English trigger descriptions to event class names for three platform versions, plus bus distinction. It distinguishes itself from sibling tools like mc_lookup_class via specific focus on event triggers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing event class names from trigger descriptions. It does not explicitly state when not to use it or mention alternatives (e.g., mc_lookup_class for general class lookup).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_gotchasEra-specific pitfalls and gotchasA

Returns a list of common mistakes, breaking changes, and surprising behaviors per era. Filter by topic ('mixin', 'nbt', 'packets', 'fabric', 'mappings', etc.). Use proactively when the user starts a non-trivial task in a specific area.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraNoFilter to one era. Omit for all.
topicNoFilter to a topic (substring match).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the tool returns a list and can filter, but does not disclose whether results are exhaustive, sorted, or if there are any side effects. Since it's a read operation, the absence of negative behaviors is acceptable, but more detail on output format would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no extraneous words, and front-loaded with the core purpose. Every sentence provides essential information: what it does, filtering capability, and when to use it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers the main functionality and usage context. It explains the return type conceptually (list of pitfalls) and filtering options. However, it could mention the output format (e.g., string list) for completeness, but currently it is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (era and topic) with clear descriptions and enum for era. The description adds value by listing example topic values, which helps the agent understand valid inputs. With 100% schema coverage, the baseline is 3, and the examples justify maintaining that score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns 'common mistakes, breaking changes, and surprising behaviors per era.' The verb 'returns' combined with resource 'list' and scope 'per era' makes the purpose explicit. It also lists example topics to clarify the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises proactive use 'when the user starts a non-trivial task in a specific area.' It also mentions filtering by topic, giving concrete examples. It does not specify when not to use it or compare with siblings, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_gradleGradle build files for a loaderB

Returns build.gradle, settings.gradle, and gradle.properties templates for a chosen era + loader combo. Pinned to current versions (NeoForge 21.10, Loom 1.10, Fabric API 0.131, Yarn 1.21.10+build.1, ForgeGradle 2.x for 1.8.9). Tell the user to bump to latest after copying.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraYes
loaderYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as authentication needs, rate limits, or side effects. It mentions version pinning as a behavioral detail but omits other important aspects like whether the tool is read-only or requires network access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loading the purpose and adding necessary version pinning detail and a usage instruction. Every sentence earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the tool's simplicity, the description should specify the return format (e.g., file contents as strings). It also does not address invalid era/loader combos or behavior on failure, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds some context beyond the input schema by noting specific version pins for certain combos (e.g., NeoForge 21.10). However, with 0% schema description coverage, it does not fully explain the enum values or the meaning of each era/loader combination.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns Gradle build file templates for a chosen era and loader combination. It uses a specific verb ('Returns') and resource ('build.gradle, settings.gradle, and gradle.properties templates'), and it differentiates from sibling tools like mc_scaffold which likely handle full project generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks guidance on when to use this tool versus alternatives like mc_scaffold or mc_version_info. It includes a note to bump versions after copying, but no explicit conditions, prerequisites, or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_list_scaffoldsList available scaffoldsA

Enumerate every scaffold template id and its description.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. It accurately describes a read-only listing operation. However, it does not specify the return format (e.g., array or object) or any edge cases, which would improve transparency for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the full functionality without wasted words. Every part of the description earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description adequately covers its purpose. However, adding details about the return structure (e.g., 'returns a list of objects with id and description fields') would make it more self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100% trivially. The description adds no parameter-specific info because none are needed. Per guidelines, baseline for 0 params is 4, and the description does not need to compensate further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Enumerate') and the specific resource ('every scaffold template id and its description'), distinguishing it from sibling tools like mc_scaffold which likely accesses a single scaffold.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates it is for listing all scaffolds, but provides no explicit guidance on when to use this vs siblings like mc_scaffold or mc_list_versions. The context of sibling tools suggests a pattern, but the description itself lacks direct comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_list_versionsList every Minecraft version + namespace linkie carriesA

Live call to https://linkieapi.shedaniel.me/api/namespaces. Returns every mappings namespace (yarn, mojang, mojang_raw, quilt-mappings, mcp, legacy-yarn, feather, ...) and which Minecraft versions each one currently has. Use to confirm a version exists before searching it. By default filters to stable releases — pass includeUnstable=true to see snapshots, pre-releases, RCs.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceNoFilter to one namespace. Omit to list all.
versionPrefixNoFilter to versions starting with this string (e.g. '1.21' or '26.1').
includeUnstableNoInclude snapshots/pre/rc. Default false.
limitNoMax versions per namespace. Default 30.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It discloses it's a live API call, the default stable filter, and the parameter to include unstable versions. It does not mention rate limits, authentication, or side effects, but for a read-only list operation this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose. Every sentence provides essential information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description covers the tool's purpose, default behavior, and key parameter usage. It doesn't detail the return format, but the core use case is well-addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by explaining the default behavior of includeUnstable ('By default filters to stable releases') and clarifying that omitting namespace lists all. This goes beyond the schema descriptions, which state defaults but not implications.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Minecraft versions per namespace from the Linkie API. It distinguishes itself from sibling tools like mc_version_info by focusing on namespaces and version availability, with a specific verb ('lists') and resource ('namespaces/versions').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use to confirm a version exists before searching it,' providing clear usage context. It also explains the default filtering (stable releases) and how to include unstable versions. However, it does not explicitly state when not to use this tool or mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_lookup_apiLook up a common modding operationA

Given a task description like 'send chat message', 'open gui', 'register block', 'render hud', 'send useitem packet', returns the canonical snippet for both 1.8.9 and modern 1.21+. Searches BOTH the method/API table and the class-name table so partial class queries still surface useful info. Use when the user asks 'how do I X in ?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhat you're trying to do, in plain English
loaderNoFilter snippets by loader (forge for 1.8.9; neoforge or fabric for 1.21+). Optional.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that it searches both tables and returns snippets for two versions, which is sufficient for a read-only lookup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with examples and purpose. Every phrase is informative with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without output schema, the description explains what is returned (canonical snippet), version scope, and search behavior. Fully adequate for a lookup tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds little beyond the schema (e.g., 'task' as plain English, loader as optional). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specifies verb+resource: 'returns the canonical snippet' for a given task description. Distinguishes from sibling tools by mentioning dual table search and version coverage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when the user asks how do I X in <version>?' and hints at partial class queries, but does not list when not to use or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_lookup_classLook up a Minecraft class across erasA

Given a class concept or partial name (e.g. 'Block', 'TileEntity', 'EntityPlayerMP', 'Level', 'BlockPos'), returns the fully-qualified name in 1.8.9 (Forge/MCP) and modern 1.21+ (Mojang) along with notes on path or rename differences. Always returns top approximate matches even when the query doesn't hit exactly.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesConcept name or partial class name

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It discloses that the tool always returns top approximate matches, even on non-exact queries, and covers two version eras. This is good transparency for a lookup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Each sentence serves a purpose: first states the function with examples, second clarifies approximate matching. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format (fully-qualified names and notes). It covers the main behavioral aspects. Could mention the output format explicitly (e.g., JSON), but completeness is high for a simple lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter described as 'Concept name or partial class name'. The description adds value by explaining the output structure (fully-qualified names in two versions) and approximate matching behavior, going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns fully-qualified class names across two Minecraft versions (1.8.9 and 1.21+), with examples like 'Block', 'TileEntity', etc. It distinguishes from sibling tools like mc_lookup_field by focusing on class lookups across eras.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use it (given a class concept or partial name) but does not explicitly state when not to use it or mention alternative tools. However, the context is clear enough for an agent to infer typical usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_lookup_fieldFind a field in Minecraft mappings (live)A

Convenience wrapper over mc_mappings_search filtered to fields. The curated knowledge tables don't track fields at all, so this is the only way to ask 'what's the field name for X in ?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesField name (or substring)
namespaceYesMappings namespace
versionYesMinecraft version id
limitNo

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states it is a 'convenience wrapper' without disclosing behavioral traits such as return format, pagination behavior, case sensitivity, or error handling. This is insufficient for an agent to predict tool execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only, no fluff, and the first sentence immediately conveys the purpose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details about the return structure, pagination (limit parameter exists but no mention of how results are returned), and error conditions. While the tool is a simple wrapper, more context would help, especially given the lack of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers 75%+ of parameters with descriptions (all four have descriptions). The description adds value by clarifying that the query refers to a field name and that the tool filters to fields. This enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a convenience wrapper over mc_mappings_search filtered to fields, and explicitly identifies it as the only way to query field names. This distinguishes it from siblings like mc_lookup_class and mc_mappings_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is the only way to ask 'what's the field name for X in <version>?' because curated knowledge tables don't track fields. This provides clear when-to-use guidance and implies alternatives (other lookup or search tools).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_mappings_translateYarn ↔ Mojang class name translationA

Given a class name from either Yarn (Fabric) or Mojang official (NeoForge / modern Fabric) mappings, returns the equivalent. Useful when porting between Fabric on Yarn and NeoForge on Mojang, or when reading a wiki snippet that uses the other naming.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesClass name (any case, partial OK)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states it returns equivalent, but doesn't disclose handling of invalid input, case sensitivity beyond schema, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with purpose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one param; description explains purpose and use case well. Lacks output format details, but for a translation tool the return type is intuitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers parameter 'name' with 100% coverage, adding 'any case, partial OK'. Description reinforces the mapping sources (Yarn/Mojang), adding marginal value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool translates class names between Yarn and Mojang mappings, with specific contexts (porting, reading wiki). It distinguishes from siblings like mc_mappings_search and mc_translate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear use cases (porting, reading wiki snippets) but doesn't explicitly exclude alternatives or state when not to use. Siblings cover different aspects, so distinction is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_mixinMixin pattern lookupA

Returns code examples for Mixin (Sponge/Fabric Mixin) patterns: @Inject HEAD/TAIL, @ModifyArg, @ModifyVariable, @Redirect, @WrapOperation, @Accessor, @Invoker, plus mixin config JSON skeletons for Fabric and NeoForge. Use when the user is wiring up a mixin and you need to remember the exact annotation shape.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoPattern to look up (e.g. 'inject head', 'modify variable', 'accessor', 'config fabric'). Omit to list all.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It accurately describes that the tool returns code examples and lists all patterns if query is omitted. For a read-only lookup, this is transparent and sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the key output and then providing usage context. Every sentence is informative and necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description covers all necessary aspects: what it returns, how to use it, and when to use it. No gaps are evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description already covers the parameter with examples and default behavior. The main description adds value by specifying that the output includes code examples and config skeletons, providing concrete expectations beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns code examples for specific Mixin patterns, listing common annotations and config skeletons. It distinguishes from sibling tools like mc_docs or mc_event by focusing exclusively on mixin pattern syntax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when the user is wiring up a mixin and you need to remember the exact annotation shape.' This provides clear context for when to invoke the tool. It does not mention when not to use or list alternatives, but the guidance is sufficient for typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_mojang_mappingsLook up Mojang official names directly from piston-metaA

Bypasses linkie and fetches Mojang's client_mappings.txt straight from piston-meta.mojang.com, parses the proguard format, and searches it. Use this for any version linkie can't load — most importantly the 26.1 lineage (26.1, 26.1.1, 26.1.2) which linkie advertises but 500s on. Also useful when you want to verify a name against Mojang directly. First call for a version downloads the mapping (multi-MB) and caches it in-process; subsequent calls are instant.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesMinecraft version id, e.g. '26.1.2', '1.21.11'
queryYesClass/method/field name (or substring) to search for
typeNoFilter. Default all.
limitNoMax hits. Default 25.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses key behaviors: first call downloads a multi-MB mapping file and caches it in-process, subsequent calls are instant. It also notes linkie's limitations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each adds value. Front-loaded with core function. Could be slightly more concise, but no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the complex multi-step process (download, parse, search) and caching. However, no output schema and description omits return format, which is a minor gap. Otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context about version-specific behavior (caching) but does not individually elaborate on each parameter. Adequate but not enhanced beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool bypasses linkie to fetch and parse Mojang's client_mappings.txt from piston-meta, then searches it. It uses specific verbs ('bypasses', 'fetches', 'parses', 'searches') and distinguishes itself from the linkie alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use the tool: for versions linkie can't load (especially 26.1 lineage) and for verifying names against Mojang directly. It provides clear context and implicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_scaffoldGenerate boilerplate for a modding scenarioA

Emits a code snippet (or config file body) for a given scenario, era, and loader. Run mc_list_scaffolds first to see valid kind values. Loader is forced to 'forge' for 1.8.9.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesScaffold id (e.g. 'mod_main', 'metadata', 'event_handler')
eraYes
loaderYesMod loader. Must be 'forge' for 1.8.9; pick neoforge or fabric for 1.21+.
modIdYesLowercase mod id, e.g. 'examplemod'
modNameNoHuman-friendly mod name; defaults to modId

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses loader forcing and output type (snippet/config), but does not mention side effects, permissions, or error scenarios. Adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences: first states purpose, second provides prerequisite and constraint. No fluff, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description covers main behavior and constraints. Could specify output format (string) more explicitly, but mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 5 parameters. Description adds value by explaining the prerequisite for 'kind' and the loader constraint, going beyond schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool emits a code snippet/config for a scenario, era, and loader. This distinguishes it from siblings like mc_list_scaffolds, which is mentioned as a prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to run mc_list_scaffolds first and notes loader constraint for 1.8.9, providing when and how to use. Could additionally state when not to use, but still clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_translateTranslate a Minecraft API symbol between erasA

Given a method or class name from one era, suggests the equivalent in the other era. Looks across both classes and method tasks. Useful when porting code between 1.8.9 and 1.21+.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesClass name, method call, or partial symbol
fromYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It discloses that the tool 'suggests' equivalents and 'looks across both classes and method tasks', indicating a search behavior rather than a deterministic mapping. Could mention what happens if no equivalent is found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff. First sentence immediately states the action, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or return format description. 'Suggests the equivalent' is vague on return type. Could benefit from mentioning output format (e.g., string or object) and behavior for not found cases. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 50% of parameters with descriptions. The description adds context about symbol being from one era and translating to another, but does not clarify that the 'from' parameter selects the source era and the output is the other era. With three era options, the mapping could be ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool translates Minecraft API symbols between eras, covering both classes and methods. It distinguishes from siblings like mc_mappings_translate by specifying cross-era translation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case: porting code between 1.8.9 and 1.21+. Does not explicitly exclude alternatives, but the context is clear enough for an agent to infer when to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mc_version_infoMinecraft modding era infoA

Returns version metadata (Java version, mappings flavor, loader options, build system, metadata file, doc links) for the chosen era. Use this when the user mentions a Minecraft version so you ground the rest of the answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraYesEither '1.8.9' or '1.21+'

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The description states it returns metadata but does not disclose any behavioral traits beyond that. It is adequate but lacks extra context like safety or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loaded with the purpose, and no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description lists the return fields (Java version, mappings flavor, loader options, build system, metadata file, doc links), providing solid completeness. The tool is simple with one parameter, and the description covers what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the parameter already fully described by the enum. The description adds no new meaning beyond 'for the chosen era,' which is redundant. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns version metadata for a chosen era, listing specific fields. It explicitly says to use this tool when the user mentions a Minecraft version to ground the answer, distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance: 'Use this when the user mentions a Minecraft version so you ground the rest of the answer.' It does not explicitly state when not to use it or mention alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv0.3.0
    • First observedmc_docs
    • First observedmc_event
    • First observedmc_gotchas
    • First observedmc_gradle
    • First observedmc_list_scaffolds
    • First observedmc_list_versions
    • First observedmc_lookup_api
    • First observedmc_lookup_class
    • First observedmc_lookup_field
    • First observedmc_mappings_search
    • First observedmc_mappings_translate
    • First observedmc_mixin
    • First observedmc_mojang_mappings
    • First observedmc_scaffold
    • First observedmc_translate
    • First observedmc_version_info

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct aspect of modding (docs, events, gotchas, build scripts, scaffolding, mappings, etc.). Although there are similar-looking tools like mc_translate and mc_mappings_translate, their descriptions clearly differentiate between era-based and namespace-based translation. Overlaps are minimal and well-justified.

Naming Consistency4/5

All tools use the 'mc_' prefix consistently. Most names follow a descriptive noun or verb pattern (e.g., mc_list_scaffolds, mc_lookup_api). However, the pattern is not perfectly uniform, mixing noun_verb (mc_mappings_search) with verb_noun (mc_list_versions), and some are just nouns (mc_mixin). Still, the naming is clear and predictable overall.

Tool Count5/5

With 16 tools, the server's scope is well-scoped for a modding knowledge assistant. Each tool covers a distinct functional area without unnecessary bloat. The count feels appropriate for the domain, allowing both depth and breadth without overwhelming the user.

Completeness4/5

The tool set covers major modding tasks: version info, documentation, event handling, build scripts, scaffolding, mappings, mixins, and common pitfalls. Minor gaps exist (e.g., no dedicated tool for registry names or mod metadata), but these are often accessible via lookup or scaffold tools. Overall, the surface is quite complete for the server's purpose.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ratph6/mc-mod-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server