PackWarden
OfficialProvides tools for working with the public Thunderstore mod-pack API: lists game communities, searches mods by name/owner/description/category (with sorting by relevance, downloads, rating, or update time), resolves full transitive dependency closures for packages and versions (including missing deps and multi-version pins), audits a mod list for problems such as removed versions, deprecations, missing dependencies, version conflicts, duplicates, and NSFW flags, and exports r2modman/Thunderstore Mod Manager profile files (.r2z) optionally including dependencies and config files.
PackWarden — Thunderstore Mod-Pack MCP Server (v0.1.0)
PackWarden is not affiliated with or endorsed by Thunderstore. "Thunderstore" is used only to describe compatibility. Mod data comes from the public Thunderstore API (https://thunderstore.io).
An MCP server that helps AI assistants build and maintain Thunderstore mod packs (Lethal Company, Risk of Rain 2, Valheim, and every other Thunderstore community).
Tools
Tool | What it does |
| List Thunderstore game communities (identifier + name). |
| Search a community by name/owner/description/category; sort by relevance, downloads, rating, updated. |
| Full transitive dependency closure for one or more packages/versions; final install set, missing deps, multi-version pins, optional tree. |
| Audit a mod list: not found, removed version, deprecated, outdated, missing deps, dependency version conflicts, duplicates, NSFW. |
| Write an |
Mods are referenced as Owner-Name (latest) or Owner-Name-1.2.3.
Related MCP server: nexus-mcp
Install
Requires Node.js ≥ 18.17.
git clone <repo> thunderstore-mcp && cd thunderstore-mcp
npm install && npm run buildClaude Desktop
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"thunderstore": {
"command": "node",
"args": ["/absolute/path/to/thunderstore-mcp/dist/main.js"],
"env": { "TSMCP_EXPORT_DIR": "/absolute/path/for/profiles" }
}
}
}Restart Claude Desktop.
Cursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"thunderstore": {
"command": "node",
"args": ["/absolute/path/to/thunderstore-mcp/dist/main.js"]
}
}
}Streamable HTTP (remote / self-hosted)
npm run start:http # http://127.0.0.1:3333/mcp
PORT=8080 HOST=0.0.0.0 node dist/main.js --httpCursor: { "mcpServers": { "thunderstore": { "url": "http://127.0.0.1:3333/mcp" } } }.
The HTTP mode is stateless (POST-only, JSON responses) and has no auth. Put it behind a reverse proxy with TLS and auth before exposing it.
Configuration (env)
Var | Default | Meaning |
|
| Slim package-index cache |
|
| Package-list freshness |
|
| Minimum gap between outbound requests |
|
| Where |
|
| Contact put in the User-Agent. Override if you run your own copy. |
|
| Brand in server name/User-Agent |
|
| API base |
Be a good API citizen
One full package list download per community per TTL, then conditional requests (
If-Modified-Since). Results are cached on disk as a slim index.Outbound requests are serialized (concurrency 1) and spaced ≥1s apart. On 429/5xx the client backs off and honours
Retry-After.Identifying User-Agent with a contact address.
If the network fails, the server keeps serving stale cache.
Tests (live API)
npm test # default community: valheim
TEST_COMMUNITY=valheim npm testTests cover stdio and streamable HTTP end-to-end against the live Thunderstore API.
Limitations
Large communities are heavy. The first load of Lethal Company is about 330 MB of JSON, takes about 14 s, and uses about 1.4 GB of RAM. After that, loads from cache take about 3 s.
Resolution follows r2modman behaviour (highest requested version wins). It does not do semver range solving, because Thunderstore pins exact versions.
No profile code sharing, which would need an upload to Thunderstore. Only file export is supported.
Search is local keyword scoring, not Thunderstore's own search ranking.
This server cannot be deployed
Maintenance
Related MCP Connectors
Check Dart/Flutter dependencies on pub.dev for updates and manage monitored projects.
What breaks between versions, vulnerabilities, compatible versions, EOL dates: npm, PyPI, Rust, PHP.
Scan packages and lockfiles (npm, PyPI, Go, Maven, Cargo, NuGet) for vulnerabilities and malware.
Dev-registry data: npm/PyPI/Docker/VS Code packages, dep graphs, vulns, 50+ ecosystems.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search, browse, and manage mods across Nexus Mods, mod.io, Thunderstore, and Modrinth, as well as perform local diagnostics like detecting games and parsing crash logs.MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server for Nexus Mods mod discovery and research, backed by the v2 GraphQL API, enabling search of games, mods, collections, and users.90 npm1ISC
- AlicenseNot gradedqualityBmaintenanceEnables creating Minecraft modpack structures, searching Modrinth mods, resolving dependencies, and checking compatibility.MIT
- AlicenseNot gradedqualityCmaintenanceEnables reading, validating, and managing Minecraft resource packs, including structure checks, asset listing, pack comparison, and Modrinth queries.MIT