# ModWrench (npm · @modwrench/cli)

One MCP server for mod platforms and local modding diagnostics. No data kept.

- Trust score: 64/100 (medium)
- Change this week: +25
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@modwrench/cli`: 64/100 (this document), [markdown](https://verifymcp.io/servers/171county-modwrench/modwrench-cli.md), [page](https://verifymcp.io/servers/171county-modwrench/modwrench-cli)

## Channel facts

- Registry: `npm`
- Package: `@modwrench/cli`
- Version: `0.0.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 88/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (117 of 121), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (117 of 121), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 54 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2574 tokens (~128/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add 171county-modwrench -- npx -y @modwrench/cli
```

### Codex

```bash
codex mcp add 171county-modwrench -- npx -y @modwrench/cli
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "171county-modwrench": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@modwrench/cli"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add 171county-modwrench --command npx --arg -y --arg @modwrench/cli
```

### Hermes

```yaml
mcp_servers:
  171county-modwrench:
    command: "npx"
    args: ["-y", "@modwrench/cli"]
```

### Other

```json
{
  "mcpServers": {
    "171county-modwrench": {
      "command": "npx",
      "args": [
        "-y",
        "@modwrench/cli"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 63, +48)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: Apache-2.0

### 2026-08-01 (score 15, −6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 21, +2)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-29 (score 19, +1)

- [functional improvement] Dependency health: unverified → partial

### 2026-07-28 (score 18, −21)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 39)

First indexed and scored.

## MCP tools (20)

### `thunderstore_list_communities` (~72 tokens)

List all communities (games) supported on Thunderstore — Lethal Company, Valheim, R.E.P.O., Risk of Rain 2, Dyson Sphere Program, BONEWORKS, and many more. Returns each community's identifier (slug used in other tool calls) and display name.

### `thunderstore_get_community` (~117 tokens)

Get details for a single Thunderstore community (game) by its identifier. Returns name, links (Discord, wiki), and metadata flags. Thunderstore has no single-community detail endpoint — this walks the paginated list and early-exits on match, so cost grows with how late in the list the target is.

Input parameters:

- `identifier` (string, required): Community identifier (slug) — e.g. 'lethal-company', 'valheim', 'risk-of-rain-2'. Use thunderstore_list_communities to discover these.

### `thunderstore_list_mods` (~88 tokens)

List mods in a specific Thunderstore community. Returns a summary view per mod (name, author, rating, downloads, latest version). Paginated server-side; default page size is whatever the community returns.

Input parameters:

- `community` (string, required): Community identifier (e.g. 'lethal-company').
- `limit` (integer): Max results to return (1-100). Default 30.

### `thunderstore_get_mod` (~134 tokens)

Get full details for a single mod by namespace (author) + name. Returns the latest version, total downloads, rating, community_listings (which games the mod is published in), and metadata. Thunderstore mods are identified globally by namespace+name — no community arg is needed at this endpoint.

Input parameters:

- `name` (string, required): Mod name — the part after the dash in full_name.
- `namespace` (string, required): Mod author/namespace — the part before the dash in a Thunderstore mod's full_name (e.g. 'BepInEx' for 'BepInEx-BepInExPack').

### `thunderstore_search_mods` (~77 tokens)

Search mods in a Thunderstore community by name substring. Case-insensitive. Returns a summary view per match.

Input parameters:

- `community` (string, required): Community identifier.
- `limit` (integer): Max results (1-50). Default 20.
- `query` (string, required): Substring to match against mod name (case-insensitive).

### `thunderstore_mod_versions` (~135 tokens)

List the full version history of a specific mod. Each entry includes version number, download count, file size, dependencies, and release date. Newest first. Version history is only available via the community listing endpoint, so a community must be specified — pick any community the mod is published in (use thunderstore_get_mod's community_listings field to discover).

Input parameters:

- `community` (string, required): Community identifier (e.g. 'lethal-company'). Any community where the mod is listed; the version history is identical across communities.
- `name` (string, required): Mod name.
- `namespace` (string, required): Mod author/namespace.

### `thunderstore_top_mods` (~69 tokens)

Get the highest-rated mods in a Thunderstore community. Sorted by rating_score descending. Use this for 'what's popular' style queries.

Input parameters:

- `community` (string, required): Community identifier.
- `limit` (integer): Number of top mods to return (1-50). Default 10.

### `modrinth_search` (~217 tokens)

Full-text search across Modrinth's project catalog (mods, modpacks, plugins, datapacks, resourcepacks, shaders). Supports facets for game_versions, loaders, categories, and project_type. Returns hits with title, description, downloads, latest version, and license.

Input parameters:

- `category` (string): Category filter (e.g. 'optimization', 'magic').
- `game_version` (string): Minecraft version filter (e.g. '1.20.1', '1.21').
- `limit` (integer): Max hits per page (1-100). Default 20.
- `loader` (string): Loader to filter by (e.g. 'fabric', 'forge', 'neoforge', 'quilt'). Use modrinth_list_loaders to discover.
- `offset` (integer): Pagination offset. Default 0.
- `project_type` (string): Filter to a single project type. Default: any.
- `query` (string): Search text. Matches against project title, description, and slug.

### `modrinth_get_project` (~109 tokens)

Get full details for a single Modrinth project (mod, modpack, plugin, etc.) by ID or slug. Returns title, description, body (markdown), downloads, version list, supported loaders, supported Minecraft versions, license, links, and gallery.

Input parameters:

- `id_or_slug` (string, required): Project ID (e.g. 'AANobbMI') or slug (e.g. 'sodium'). Slug is usually easier — it's the readable name in the project's URL.

### `modrinth_get_versions` (~140 tokens)

List the versions of a project, newest first. Each version includes version_number, name, file URLs, supported loaders, supported game_versions, downloads, and dependencies. Optionally filter by loader or game version.

Input parameters:

- `featured` (boolean): If true, return only featured versions (curated by the author).
- `game_versions` (array): Filter to versions supporting specific Minecraft versions (e.g. ['1.20.1']).
- `id_or_slug` (string, required): Project ID or slug.
- `loaders` (array): Filter to versions that support specific loaders (e.g. ['fabric'], ['forge','neoforge']).

### `modrinth_get_version` (~71 tokens)

Get full details for a single version by ID. Returns file URLs (primary + secondary), checksums, dependencies (with their version IDs), supported loaders/game-versions, changelog, and release date.

Input parameters:

- `version_id` (string, required): Version ID (use modrinth_get_versions to discover).

### `modrinth_list_categories` (~58 tokens)

List all category tags Modrinth supports. Each entry has a name, icon, applicable project types, and a header (the section it appears under in the search UI). Use category names with modrinth_search's category filter.

### `modrinth_list_loaders` (~57 tokens)

List all mod loaders Modrinth recognizes — Fabric, Forge, NeoForge, Quilt, Bukkit, Paper, plus modpack/datapack/shader-specific loaders. Use loader names with modrinth_search's loader filter.

### `modrinth_list_game_versions` (~111 tokens)

List every Minecraft version Modrinth indexes, newest first. Each entry has version, version_type (release / snapshot / alpha / beta), and date. Use version strings with modrinth_search's game_version filter or modrinth_get_versions' game_versions filter.

Input parameters:

- `limit` (integer): Max results to return (1-100). Default 30.
- `release_only` (boolean): If true, drop snapshots/alphas/betas — return only release versions. Default false.

### `mw_detect_environment` (~95 tokens)

Auto-detect the user's modding environment: OS, Steam Deck, installed mod-friendly games (Bethesda / Unity co-op / Sims / Minecraft), per-game mod loaders (SKSE / F4SE / BepInEx / etc.), installed mod managers (Vortex / MO2 / r2modman / CurseForge App), and Proton versions on Linux. Read-only — touches no files outside known config/save locations.

### `mw_read_load_order` (~209 tokens)

Read the user's mod load order for a specific game from whichever mod manager they use (MO2, r2modman, or best-effort Vortex). Normalized output: each entry has name, enabled state, load-order index, and attribution metadata when available. Read-only.

Input parameters:

- `gameId` (string, required): Canonical game ID (e.g. 'skyrimspecialedition', 'lethalcompany'). Use mw_detect_environment to discover the games on this machine.
- `instancePath` (string): Optional override for MO2's instance path — useful for portable MO2 installs that don't live under %LOCALAPPDATA%/ModOrganizer.
- `modManager` (string): Which mod manager to read from. Default 'auto' — picks the most likely manager for this game's family.
- `profileName` (string): Profile name. MO2 reads the active profile from ModOrganizer.ini if omitted; r2modman defaults to the first profile alphabetically (typically 'Default').

### `mw_parse_crashlog` (~239 tokens)

Parse a crashlog file or pasted content into structured fields (exception type, call stack, loaded plugins, registers, suspected FormID refs). Supports Crash Logger SSE (Skyrim), Buffout 4 (Fallout 4), NetScriptFramework (older Skyrim), BepInEx (Unity games), and Minecraft crash-reports. Returns parsed structure only — diagnosis is the LLM's job.

Input parameters:

- `logContent` (string): Crashlog file content as a string. Provide this OR logPath.
- `logPath` (string): Absolute path to a crashlog file on disk. Common locations: ~/Documents/My Games/Skyrim Special Edition/SKSE/crash-*.log for Crash Logger SSE, ~/Documents/My Games/Fallout4/F4SE/crash-*.log for Buffo…
- `logType` (string): Format hint. Default 'auto' — detect from content. Pass an explicit type when the auto-detect heuristic fails on a truncated log.

### `mw_query_mod_metadata` (~248 tokens)

Look up a mod's metadata across supported platforms (Nexus, mod.io) with a normalized shape: id, name, author, version, downloads, endorsements, pageUrl, and a permissions block that always includes attribution. Use this to enrich crashlog suspects or load-order entries with who-made-this and where-it-lives info. Thunderstore and CurseForge support is planned for v3+.

Input parameters:

- `gameId` (string): Platform-specific game identifier. For Nexus: the domain name (e.g. 'skyrimspecialedition'). For mod.io: the numeric game id as a string. Use modio_list_games / nexus_list_games to discover these.
- `modId` (string): Platform-specific mod ID. Nexus IDs are numeric (from the URL); mod.io IDs are numeric too. Required for direct lookup.
- `modName` (string): Mod name for fuzzy lookup (mod.io only — Nexus has no public search endpoint). Pass with gameId.
- `platform` (string): Which platform to query. Default 'any' — tries Nexus first when a numeric modId + gameId are given, then mod.io. Use explicit platform to skip the cascade.

### `mw_check_known_conflicts` (~209 tokens)

Check a list of mods/plugins for known pairwise incompatibilities. Two sources: LOOT's masterlist (live, Bethesda games) and ModWrench's community conflict database (bundled, any game). Returns conflicts with severity, description, attribution to source, and an optional patch suggestion. Input identifiers can be plugin filenames (Skyrim.esp) or platform-prefixed mod IDs (nexus:12345).

Input parameters:

- `gameId` (string, required): Canonical game ID (e.g. 'skyrimspecialedition', 'lethalcompany'). LOOT support is Bethesda-only; non-Bethesda games rely on the community database only.
- `modIds` (array, required): List of mods/plugins to check pairwise. Entries can be plugin filenames ('Skyrim.esp') or platform-prefixed mod IDs ('nexus:12345', 'modio:67890', 'thunderstore:Author-ModName'). At least 2 required…

### `mw_activate_platform` (~119 tokens)

Activate an additional platform's tool set without restarting the meta-server. Use this when the user adds credentials or asks about a platform that wasn't loaded at boot. After activation, the new tools appear in the catalog and become callable. Returns the activation result (success with toolCount + baseUrl, or failure with reason — usually a missing-credential hint pointing at `modwrench auth login <platform>`).

Input parameters:

- `platform_id` (string, required): Platform identifier. Idempotent — activating an already-active platform returns alreadyActive: true with no side effects.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/171county-modwrench/modwrench-cli#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 15
- 2026-07-31: 21
- 2026-07-29: 19
- 2026-07-28: 18
- 2026-07-27: 39

## Links

- npm package: https://www.npmjs.com/package/@modwrench/cli
- Socket report: https://socket.dev/npm/package/@modwrench/cli
- Changelog RSS feed: https://verifymcp.io/servers/171county-modwrench/modwrench-cli/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/171county-modwrench/modwrench-cli/changelog.json
- HTML version of this page: https://verifymcp.io/servers/171county-modwrench/modwrench-cli
