mcpField
P
packwarden

packwarden

本地服务
github.com/packwarden-dev游戏娱乐03 天前更新

关于 packwarden

PackWarden 是用于构建和维护 Thunderstore 模组包的 MCP 服务,覆盖各游戏社区。它可搜索模组、解析依赖、检查模组包状态,并导出供 r2modman 或 Thunderstore Mod Manager 使用的配置文件。

主要功能

  1. 01按社区和条件搜索模组
  2. 02解析传递性软件包依赖
  3. 03检查冲突和过期模组
  4. 04导出供模组管理器使用的 .r2z 配置
  5. 05缓存软件包数据并处理 API 退避

适用场景

  1. 01查找 Thunderstore 游戏社区的模组
  2. 02检查模组包中的缺失或冲突依赖
  3. 03审查模组清单中的已移除或过期版本
  4. 04导出配置文件以导入模组管理器

MCP 相关

它向 MCP 客户端提供 Thunderstore 社区、搜索、依赖、审查和配置导出工具。可通过 stdio 运行,也可作为无状态 Streamable HTTP 服务运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"packwarden-dev-packwarden": {
"command": "npx",
"args": [
"-y",
"@packwarden-dev/thunderstore-mcp"
]
}
}
}
启动命令npx -y @packwarden-dev/thunderstore-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@packwarden-dev/thunderstore-mcp0.1.0

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
filterstring否

详细介绍

PackWarden — Thunderstore 模组包 MCP 服务(v0.1.0)

PackWarden 与 Thunderstore 无关联,也未获得其认可。“Thunderstore”仅用于说明兼容性。 模组数据来自 Thunderstore 公共 API(https://thunderstore.io)。

一个 MCP 服务,可帮助 AI 助手构建和维护 Thunderstore 模组包 (Lethal Company、Risk of Rain 2、Valheim,以及其他所有 Thunderstore 社区)。

工具

工具功能
list_communities列出 Thunderstore 游戏社区(标识符 + 名称)。
search_mods按名称/所有者/描述/类别搜索社区;可按相关性、下载量、评分和更新时间排序。
resolve_dependencies解析一个或多个包/版本的完整传递依赖闭包;提供最终安装集、缺失依赖、多版本锁定项,以及可选的依赖树。
check_pack_health审核模组列表:检查未找到、版本已移除、已弃用、过时、缺失依赖、依赖版本冲突、重复项和 NSFW 内容。
export_r2modman_profile写入 .r2z 配置文件(在 r2modman / Thunderstore Mod Manager 中选择“Import profile → From file”),可选包含依赖和配置文件。不会上传任何内容。

模组引用格式为 Owner-Name(最新版)或 Owner-Name-1.2.3。

安装

需要 Node.js ≥ 18.17。

git clone <repo> thunderstore-mcp && cd thunderstore-mcp
npm install && npm run build
Claude Desktop

编辑 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" }
    }
  }
}

重启 Claude Desktop。

Cursor

~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目):

{
  "mcpServers": {
    "thunderstore": {
      "command": "node",
      "args": ["/absolute/path/to/thunderstore-mcp/dist/main.js"]
    }
  }
}
Streamable HTTP(远程/可自托管)
npm run start:http            # http://127.0.0.1:3333/mcp
PORT=8080 HOST=0.0.0.0 node dist/main.js --http

Cursor:{ "mcpServers": { "thunderstore": { "url": "http://127.0.0.1:3333/mcp" } } }。 HTTP 模式为无状态模式(仅 POST,返回 JSON),且没有身份验证。对外开放前,请将其置于带有 TLS 和身份验证的反向代理之后。

配置(环境变量)

变量默认值含义
TSMCP_CACHE_DIR~/.cache/thunderstore-mcp精简包索引缓存
TSMCP_LIST_TTL_MS3600000 (1h)包列表的缓存有效期
TSMCP_MIN_INTERVAL_MS1000出站请求之间的最小间隔
TSMCP_EXPORT_DIR./exports.r2z 文件的写入位置
TSMCP_CONTACT[email protected]User-Agent 中使用的联系地址。运行自己的副本时,请覆盖此值。
TSMCP_BRANDPackWarden服务名称/User-Agent 中的品牌
TSMCP_BASE_URLhttps://thunderstore.ioAPI 基础 URL

做一个友善的 API 使用者

  • 每个社区在每个 TTL 内只完整下载一次包列表,之后使用条件请求(If-Modified-Since)。结果会作为精简索引缓存到磁盘。
  • 出站请求会串行发送(并发数为 1),且间隔至少 1s。遇到 429/5xx 时,客户端会退避并遵循 Retry-After。
  • 使用带有联系地址的标识性 User-Agent。
  • 网络故障时,服务会继续提供过期缓存。

测试(实时 API)

npm test                         # default community: valheim
TEST_COMMUNITY=valheim npm test

测试针对实时 Thunderstore API,覆盖 stdio 和 Streamable HTTP 端到端流程。

局限性

  • 大型社区的数据量很大。首次加载 Lethal Company 约需处理 330 MB JSON,耗时约 14 s,并使用约 1.4 GB RAM。此后从缓存加载约需 3 s。
  • 依赖解析遵循 r2modman 的行为(优先选择请求的最高版本)。由于 Thunderstore 固定使用精确版本,因此不会进行 semver 范围求解。
  • 不支持共享配置文件 代码,因为这需要上传到 Thunderstore。仅支持导出文件。
  • 搜索采用本地关键词评分,不使用 Thunderstore 自身的搜索排名。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。