cryptiklemur.rimworld-modder-mcp 4.0.0

dotnet tool install --global cryptiklemur.rimworld-modder-mcp --version 4.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local cryptiklemur.rimworld-modder-mcp --version 4.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=cryptiklemur.rimworld-modder-mcp&version=4.0.0
                    
nuke :add-package cryptiklemur.rimworld-modder-mcp --version 4.0.0
                    

RimWorld Modder MCP

MCP server for RimWorld mod analysis and modding workflows, implemented in C#/.NET 10.

Primary focus:

  • XML defs and inheritance
  • patch inspection and conflict triage
  • mod compatibility and dependency checks
  • release-readiness checks for RimWorld mods

Quickstart

Requires a .NET 10 SDK.

dotnet tool install -g cryptiklemur.rimworld-modder-mcp

Most MCP clients can then use:

{
  "mcpServers": {
    "rimworld-modder": {
      "command": "rimworld-modder-mcp",
      "args": [
        "--rimworld-path=/absolute/path/to/RimWorld",
        "--mod-dirs=/absolute/path/to/RimWorld/Mods"
      ]
    }
  }
}

Repo examples:

  • claude-desktop-config.json
  • local-mcp-config.json

Create .rimworld-modder-mcp.json in your mod repo:

{
  "rimworldPath": "/absolute/path/to/RimWorld",
  "modDirs": [
    "/absolute/path/to/RimWorld/Mods",
    "/absolute/path/to/Steam/workshop/content/294100"
  ],
  "allowedDlcs": "Core,Biotech",
  "outputMode": "compact"
}

The server looks for this file by walking up from its working directory, so no arguments are needed when the client launches it inside your repo. Use --config to point at one explicitly.

Then your MCP client args can just be:

{
  "mcpServers": {
    "rimworld-modder": {
      "command": "rimworld-modder-mcp"
    }
  }
}

No-install option

If you do not want a global install, use dnx or dotnet tool exec. This also requires a .NET 10 SDK.

Direct shell usage:

dnx cryptiklemur.rimworld-modder-mcp --yes
dotnet tool exec cryptiklemur.rimworld-modder-mcp --yes

Headless MCP config with dnx:

{
  "mcpServers": {
    "rimworld-modder": {
      "command": "dnx",
      "args": [
        "cryptiklemur.rimworld-modder-mcp",
        "--yes"
      ]
    }
  }
}

--yes is there so first-run package download does not pause for confirmation.

Client Setup

Pick the client you care about:

<details> <summary>Codex CLI</summary>

Global installed tool:

codex mcp add rimworld-modder -- \
  rimworld-modder-mcp

No-install:

codex mcp add rimworld-modder -- \
  dnx cryptiklemur.rimworld-modder-mcp \
  --yes

</details>

<details> <summary>Claude Code</summary>

Global installed tool:

claude mcp add --scope user rimworld-modder -- \
  rimworld-modder-mcp

No-install:

claude mcp add --scope user rimworld-modder -- \
  dnx cryptiklemur.rimworld-modder-mcp \
  --yes

</details>

<details> <summary>Goose CLI</summary>

Quick session with the installed tool:

goose session \
  --with-extension "rimworld-modder-mcp"

Quick session with no-install dnx:

goose session \
  --with-extension "dnx cryptiklemur.rimworld-modder-mcp --yes"

For a persistent Goose setup, use goose configure and add a command-line extension.

</details>

<details> <summary>Claude Desktop, Cursor, Cline, Windsurf, Continue</summary>

If the client exposes stdio MCP config, use either:

  • command: "rimworld-modder-mcp", launched with the working directory set to your mod repo
  • command: "dnx" with the no-install block shown above

</details>

Runtime-Only Fallback

If you only want the runtime, use the release bundle instead of the NuGet tool.

  1. Install the .NET 10 runtime.
  2. Download the latest rimworld-modder-mcp-vX.Y.Z-dotnet.zip from GitHub Releases.
  3. Extract it somewhere permanent.
  4. Point your MCP client at RimWorldModderMcp.dll.

Bundle config:

{
  "mcpServers": {
    "rimworld-modder": {
      "command": "dotnet",
      "args": [
        "/absolute/path/to/RimWorldModderMcp.dll",
        "--rimworld-path=/absolute/path/to/RimWorld",
        "--mod-dirs=/absolute/path/to/RimWorld/Mods"
      ]
    }
  }
}

Each bundle also includes:

  • manifest.json
  • QUICKSTART.md
  • examples/generic-mcp-config.posix.json
  • examples/generic-mcp-config.windows.json

Docker

Build:

docker build -t rimworld-modder-mcp .

Run:

docker run \
  -i \
  --rm \
  -v "/path/to/rimworld:/rimworld:ro" \
  -v "/path/to/workshop:/workshop:ro" \
  rimworld-modder-mcp \
  --rimworld-path=/rimworld \
  --mod-dirs=/rimworld/Mods,/workshop

MCP config:

{
  "mcpServers": {
    "rimworld-modder": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v", "/path/to/rimworld:/rimworld:ro",
        "-v", "/path/to/workshop:/workshop:ro",
        "ghcr.io/cryptiklemur/rimworld-modder-mcp:latest",
        "--rimworld-path=/rimworld",
        "--mod-dirs=/rimworld/Mods,/workshop"
      ]
    }
  }
}

Arguments

Common optional:

  • --config explicit project config path
  • --rimworld-path path to the RimWorld install if you are not using project config
  • --mod-dirs comma-separated mod directories
  • --mods-config-path path to ModsConfig.xml if you only want enabled mods
  • --allowedDlcs official-content target for compatibility checks, default Core,Biotech
  • --log-level Debug, Information, Warning, or Error
  • --scopeType and --scopeValue for audit_scope

Common RimWorld paths:

  • Windows Steam: D:\SteamLibrary\steamapps\common\RimWorld
  • Linux Steam: ~/.steam/steam/steamapps/common/RimWorld
  • macOS Steam: ~/Library/Application Support/Steam/steamapps/common/RimWorld

Run rimworld-modder-mcp --help for the full argument list.

Output Controls

  • outputMode: compact, normal, or detailed
  • pageSize: cap array-heavy sections
  • pageOffset: page through array-heavy sections
  • handleResults: store a retrievable result handle
  • get_result_by_handle: expand a stored handle in a long-lived MCP session

Core Workflow Tools

Start here in most mod repos:

  • Setup and environment: doctor, reload after editing files on disk
  • Changed-file review before commit: audit_changed_files, validate_changed_content (both take an explicit paths list)
  • Runtime debugging: broken_reference_explainer
  • Release/readiness checks: mod_ready_check, scan_dlc_dependencies
  • Patch debugging: triage_patch_conflicts, find_patch_hotspots, validate_xpath, write_xpath, preview_patch, preview_patch_result
  • Scoped inspection: scope_search, audit_scope, content_coverage_report
  • Load-order impact: suggest_load_order, load_order_impact_report

Lower-level lookup tools are still available when you need exact details:

  • Def lookup: get_def, search_defs, get_defs_by_type, get_def_inheritance_tree, compare_defs
  • References and patches: get_references, get_def_dependencies, get_patches_for_def, get_patch_conflicts
  • Mod analysis: analyze_mod_compatibility, get_mod_dependencies, find_broken_references, validate_mod_structure

Your MCP client can inspect the full tool list directly.

Build From Source

git clone https://github.com/cryptiklemur/rimworld-modder-mcp.git
cd rimworld-modder-mcp
dotnet build src/RimWorldModderMcp/RimWorldModderMcp.csproj
dotnet run --project src/RimWorldModderMcp/RimWorldModderMcp.csproj -- --rimworld-path="/path/to/RimWorld"

Release

semantic-release publishes:

  • the NuGet .NET tool
  • the .nupkg as a GitHub release asset
  • the runtime-only zip bundle
  • the .sha256 checksum

Trusted Publishing on nuget.org:

  1. In nuget.org, open Trusted Publishing.
  2. Add a GitHub Actions policy for:
    • repository owner: cryptiklemur
    • repository: rimworld-modder-mcp
    • workflow file: release.yml
  3. In GitHub repo settings, add a repository variable:
    • NUGET_USERNAME = your nuget.org profile name

After that, no long-lived NuGet API key secret is needed.

Useful commands:

npm ci
npm run release:dry-run
npm run release:prepare-artifacts -- 1.2.5

CI configuration:

  • NuGet Trusted Publishing via NuGet/login@v1
  • repo variable NUGET_USERNAME
  • SEMANTIC_RELEASE_TOKEN if you want release-created tags to trigger other workflows
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
4.0.0 136 8/25/2026
3.0.1 135 8/1/2026
3.0.0 127 8/1/2026
2.0.0 124 8/1/2026
1.1.3 140 5/29/2026
1.1.2 144 4/20/2026
1.1.1 122 4/18/2026
1.1.0 129 4/18/2026
1.0.0 141 4/17/2026