Skip to main content
Glama
Jamickin

mod-dev-mcp

by Jamickin

mod-dev-mcp

A small MCP (Model Context Protocol) dev-tooling server for the tModLoader mod projects in this workspace (Ben10Mod, MistbornModOwnBlend). Registered workspace-wide via ../.mcp.json so Claude Code auto-connects.

It does not connect to a running game — it's build/format/log tooling only.

Tools

  • build_mod { modPath, configuration? } — runs dotnet build, returns structured diagnostics from both build passes (see below), whether a .tmod was produced, and a tail of raw output.

  • format_mod { modPath, check? } — runs CSharpier.

  • tail_tmodloader_log { lines?, logFile? } — tails tModLoader's client/server log.

  • check_environment {} — reports .NET SDK presence, whether the workspace tModLoader.targets and the official ModSources/tModLoader.targets exist, and whether the Ben10Mod/MistbornModOwnBlend symlinks in ModSources resolve correctly.

Related MCP server: VSCode LSP MCP Server

Why two-pass diagnostic parsing

dotnet build on a tModLoader mod runs an ordinary C# compile, then (if that succeeds) a nested dotnet tModLoader.dll -build ... packaging step that produces the .tmod. Ordinary compile errors come back as standard MSBuild diagnostics (file(line,col): error CSxxxx: ...); packaging-level failures (missing native libraries, mod locked by a running game, bad build.txt/.hjson/textures) come back in tModLoader's own differently-shaped log lines instead (tModLoader : Mod Build error TMLxxx: ...). src/parsers/msbuildDiagnostics.ts handles both and tags each diagnostic's source accordingly. It was built against real captured samples of both failure shapes, not assumed formats — see ../Ben10Mod/CLAUDE.md for the environment quirks that produced them (missing DYLD_LIBRARY_PATH for headless builds, and the "close tModLoader before building via CLI" conflict).

Development

npm install
npm run build   # compiles to dist/
npm run dev      # run directly via tsx without building

The server communicates over stdio, so it's not meant to be run standalone outside an MCP client — npm run dev/npm start will just sit waiting for a client to connect.

Available Tools

1 tool
check_environmentCheck tModLoader dev environmentA

Reports whether the .NET SDK, ModSources targets file, and mod symlinks are correctly wired up, so a session can tell if the build environment is still in a working state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It states what the tool checks, but does not explicitly confirm it is read-only (e.g., 'does not modify anything'), nor does it describe the return format or potential side effects. The implication is a safe check, but not explicitly stated.

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?

The description is a single sentence that is front-loaded with the key action and resource. It is concise and to the point, though it could be slightly more structured (e.g., listing the checks explicitly) without losing brevity.

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?

For a parameter-less validation tool with no output schema, the description provides sufficient context about what is checked and why. It does not explain the return value (e.g., boolean or report), but the purpose is clear enough for an agent to infer usage.

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 trivially 100%. The description adds meaning by specifying the exact items being verified, which helps an agent understand the tool's scope without needing parameter 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?

The description uses a specific verb ('reports') and lists the exact components checked ('.NET SDK, ModSources targets file, and mod symlinks'), making the tool's purpose immediately clear. There are no sibling tools for differentiation, but the description is precise enough.

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 phrase 'so a session can tell if the build environment is still in a working state' implies it should be used before building or running, but there is no explicit guidance on when to use this tool versus alternatives (none exist) or exclusions. The usage context is suggested but not clearly stated.

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

TDQS

A3.8/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The single tool has a clear, distinct purpose.

Naming Consistency5/5

The single tool 'check_environment' follows a consistent verb_noun pattern, which is clear and predictable.

Tool Count2/5

A single tool for a mod development server is too few; a server of this scope would typically require multiple tools for building, testing, and managing configurations.

Completeness2/5

The tool only checks the environment status, leaving out essential operations like building or deploying mods, which are likely needed for the server's purpose.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

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/Jamickin/mod-dev-mcp'

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