mc-mod-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mc-mod-mcpShow me a @ModifyVariable mixin example"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildThen 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
examplemodShow me a
@ModifyVariablemixin exampleWhat's the Yarn name for
LocalPlayerin 1.21.10?
Tools
name | what it does |
| Loaders, Java, mappings, build system, doc links for an era |
| Fully-qualified class name in 1.8.9 vs 1.21+ for a concept ( |
| Canonical snippet for a task ( |
| Given a symbol from one era, suggest the equivalent in the other |
| "What event fires when X?" — gives 1.8.9 + NeoForge + Fabric |
| Mixin pattern catalog ( |
| Era-specific pitfalls — Data Components, ResourceLocation factory, mod bus vs game bus, etc. Filterable. |
|
|
| Yarn ↔ Mojang class name translation (curated) |
| Enumerate scaffold templates |
| Emit boilerplate (mod main, item/block, command, key binding, mixin, network payload, …) |
| Doc links for an era |
| Live: every version linkie knows, per namespace |
| Live: full-text search against linkie's mappings API |
| Live: field-name lookup against linkie (the curated tables don't track fields) |
| Pulls Mojang's |
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 testsCaveats
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 toolsmc_docsDocumentation links for an eraC
Returns the most relevant doc/wiki links to consult for a given era.
| Name | Required | Description | Default |
|---|---|---|---|
| era | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| trigger | Yes | Plain-English description of when the event fires |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | Filter to one era. Omit for all. | |
| topic | No | Filter to a topic (substring match). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| era | Yes | ||
| loader | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No | Filter to one namespace. Omit to list all. | |
| versionPrefix | No | Filter to versions starting with this string (e.g. '1.21' or '26.1'). | |
| includeUnstable | No | Include snapshots/pre/rc. Default false. | |
| limit | No | Max versions per namespace. Default 30. |
TDQS
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.
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.
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.
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.
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.
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 ?'.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What you're trying to do, in plain English | |
| loader | No | Filter snippets by loader (forge for 1.8.9; neoforge or fabric for 1.21+). Optional. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Concept name or partial class name |
TDQS
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.
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.
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.
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.
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.
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 ?'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Field name (or substring) | |
| namespace | Yes | Mappings namespace | |
| version | Yes | Minecraft version id | |
| limit | No |
TDQS
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.
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.
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.
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.
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.
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_searchSearch Minecraft mappings (live, via linkie)A
Live full-text search against linkie's mappings database. Returns class/method/field results for ANY (namespace, version) combination linkie carries — no curation gap, no stale snapshot. Use this whenever the user asks 'what is X called in ?' or 'find all methods named foo in 1.21.11 yarn'. For 26.1.x, linkie currently 500s on the mojang_raw namespace — use mc_mojang_mappings instead for those versions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Class/method/field name (or substring) to search for | |
| namespace | Yes | Mappings namespace. yarn/quilt-mappings for Fabric, mojang for NeoForge, mojang_raw for Mojang's shipped names, mcp/legacy-yarn/feather for 1.8.x, etc. | |
| version | Yes | Minecraft version id, e.g. '1.21.11', '1.8.9', '26.1.2' | |
| type | No | Filter by entry type. Default all. | |
| limit | No | Max hits. Default 25. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description reveals it's a live search, always up-to-date, and flags a current 500 error for 26.1.x mojang_raw. Could be improved by mentioning return format or pagination, but adequately covers behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, usage, limitation. No redundancy, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Captures key aspects: search scope, namespace mapping, version specificity, and a known issue. Lacks description of response format or pagination, but sufficient for most use cases given tool purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all params (100%). Description adds contextual mapping for namespaces (e.g., 'yarn for Fabric') and provides examples for version and type, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it's a live full-text search against linkie's mappings database, returning class/method/field results. Distinguishes from siblings by emphasizing no curation gap and no stale snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (specific mapping queries) and when NOT to use (26.1.x mojang_raw, directing to mc_mojang_mappings). Provides concrete example queries for clarity.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Class name (any case, partial OK) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Pattern to look up (e.g. 'inject head', 'modify variable', 'accessor', 'config fabric'). Omit to list all. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | Minecraft version id, e.g. '26.1.2', '1.21.11' | |
| query | Yes | Class/method/field name (or substring) to search for | |
| type | No | Filter. Default all. | |
| limit | No | Max hits. Default 25. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Scaffold id (e.g. 'mod_main', 'metadata', 'event_handler') | |
| era | Yes | ||
| loader | Yes | Mod loader. Must be 'forge' for 1.8.9; pick neoforge or fabric for 1.21+. | |
| modId | Yes | Lowercase mod id, e.g. 'examplemod' | |
| modName | No | Human-friendly mod name; defaults to modId |
TDQS
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.
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.
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.
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.
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.
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+.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Class name, method call, or partial symbol | |
| from | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| era | Yes | Either '1.8.9' or '1.21+' |
TDQS
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.
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.
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.
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.
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.
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.
16 tool updates
v0.3.0- First observed
mc_docs - First observed
mc_event - First observed
mc_gotchas - First observed
mc_gradle - First observed
mc_list_scaffolds - First observed
mc_list_versions - First observed
mc_lookup_api - First observed
mc_lookup_class - First observed
mc_lookup_field - First observed
mc_mappings_search - First observed
mc_mappings_translate - First observed
mc_mixin - First observed
mc_mojang_mappings - First observed
mc_scaffold - First observed
mc_translate - First observed
mc_version_info
TDQS
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.
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.
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.
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
MCP server for dev documentation, generated by doc2mcp.
MCP server for developer documentation, generated by doc2mcp.
Connect any two APIs and keep them in sync — 48 MCP tools with shadow previews and diagnostics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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