Guild Wars 1 Build Compiler

io.github.Graphmaxer由 GitHub 账号 Graphmaxer 发布v1.1.3更新于 Nov 2, 2026

GW1 build compiler: skill data, template code encode/decode, validation, hero roster. Read-only.

已验证Streamable HTTP可网页运行知识与记忆开发者工具

概览

AI 生成的概览

激战1(Guild Wars 1)配装编译器:查询技能与英雄、校验配装,并编码或解码官方游戏内模板代码。

可以做什么
  • 按名称、职业、属性、章节、精英标记或名称片段查询与搜索技能,拼写错误时给出最接近的匹配
  • 将单个游戏内模板代码解码为职业、属性分配和八个技能及其数值
  • 将 paw-ned2 队伍代码解码为每个玩家或英雄的技能栏
  • 按激战1规则校验配装,例如最多一个精英技能、属性归属与重复技能
  • 将具名配装编码为官方游戏内模板代码
  • 按名称、ID、职业或章节查询或列出英雄,并附解锁说明
适用场景
适合在助手协助规划激战1配装时使用,需要准确的技能数据、经过规则校验的配装,以及真正能在游戏里使用的模板代码,而不是看似合理的猜测。也便于读取 wiki 页面上的配装代码和队伍代码。
运行要求
远程 Streamable HTTP 端点;未声明认证、环境变量或请求头。README 中的自托管方式需要 Node 22 或更高版本与 pnpm,部署到 Cloudflare Workers 需要先执行 wrangler 登录。
安装前请注意
服务本身只读,但其描述的可选 GWToolbox 导出会把账号状态复制到剪贴板,其中包含当前角色名,粘贴到公开场合前请先检查。技能描述来自第三方数据,遵循 GFDL / CC BY-NC-SA 条款。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Guild Wars 1 Build Compiler,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Graphmaxer%2Fgw1-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "guild-wars-1-build-compiler": {
      "type": "http",
      "url": "https://gw1-mcp.graphmaxer.workers.dev/mcp"
    }
  }
}

README

[gw1-mcp logo — a golden scythe and an eight-slot skill bar]

gw1-mcp

A Guild Wars 1 build compiler for LLMs

[coverage] [CI] [CodSpeed] [latest release] [license] [last commit] [live usage dashboard] [LobeHub MCP] [listed on mcp.so] [Glama connector, quality A]

An MCP (Model Context Protocol) server that gives any compatible LLM client (Claude, ChatGPT, Cursor…) reliable, deterministic knowledge of Guild Wars 1 builds: skill data lookup, official template code encoding/decoding, and build validation.

The MCP is a compiler, not a brain. The LLM does the strategic reasoning; this server does the things that must be exact.

Why not just ask the LLM?

Ask an AI assistant for a Guild Wars build without this server and you typically get: a plausible-sounding bar with a skill that does not exist, an attribute spread that exceeds the point budget, stats quoted from a decade-old balance patch — and a template code that decodes to garbage when you paste it in-game, because codes are bit-packed and cannot be hallucinated character-by-character.

With gw1-mcp connected, the same assistant looks up the 1516 real skills (current with Reforged balance, refreshed weekly), validates the build against the actual game rules, and hands you an official template code produced by an encoder — not predicted by a language model. The strategic conversation stays exactly as good as your assistant; the facts stop being wrong.

Tools

  • get_skill — full record for one skill (by exact name or template id), with closest-match suggestions on typos. Official French skill names resolve too (Sceau de guérison -> Healing Signet); every other name field is English-only
  • search_skills — filtered search: profession, attribute, campaign, elite, name substring
  • decode_template — in-game template code → professions, attributes, 8 skills with stats
  • encode_template — named build → validated, official in-game template code
  • validate_build — GW1 rule check: one elite max, profession/attribute ownership, primary attributes, duplicates
  • get_hero — hero record by exact name or GWCA id
  • list_heroes — hero roster with professions, campaigns and unlock notes, filterable by profession/campaign
  • decode_pawned_team — paw-ned2 team blobs (PvXwiki team pages) → every bar decoded

Resources: gw1://guide/build-workflow (methodology for the LLM), gw1://meta (professions, attribute lines, campaigns, skill-type list and data import date) and gw1://heroes.

Quick start

bash
pnpm installpnpm -r testpnpm --filter @gw1-mcp/gw-mcp dev   # stdio server

Packages

  • packages/gw-template — template code codec (zero dependencies; round-trip tested against in-game/PvX codes and differentially fuzzed against @buildwars/gw-templates)
  • packages/gw-data — game data (1516 skills, Reforged-current) imported from build-wars/gw-skilldata (code MIT; skill descriptions under GFDL / CC BY-NC-SA — see THIRD_PARTY_NOTICES.md)

The codec is verified four ways: 27 golden fixtures (including nine live in-game emissions) covering all 10 primary professions and all 5 campaigns (sourced from PvXwiki, gw1builds.com, the official wiki and the pre-2007 in-game format, several verified down to the skill-id level), fuzzed round-trips, differential testing against an independent implementation, and malformed-input rejection tests. Validation rules are table-tested one by one. pnpm test:coverage for the numbers.

  • packages/gw-mcp — the MCP server (transport-agnostic core + stdio entry)
  • packages/gw-worker — Streamable HTTP wrapper (Hono), runs on Cloudflare Workers and Node

Deploy to Cloudflare Workers

bash
pnpm --filter @gw1-mcp/gw-worker check    # offline bundling validationpnpm --filter @gw1-mcp/gw-worker deploy   # needs `wrangler login` once

The server is stateless (a fresh McpServer per request over bundled data), so it fits the Workers model with zero configuration: no Durable Objects, no KV, no secrets. Free plan is plenty.

Connect it

  • claude.ai / Claude app: Settings → Connectors → Add custom connector → https://gw1-mcp.<your-subdomain>.workers.dev/mcp
  • Claude Code: claude mcp add --transport http gw1 https://…/mcp or locally over stdio: claude mcp add gw1 -- pnpm --filter @gw1-mcp/gw-mcp dev
  • Local HTTP without Cloudflare: pnpm --filter @gw1-mcp/gw-worker dev:node then point any client at http://localhost:8787/mcp

Regenerating game data

bash
pnpm --filter @gw1-mcp/gw-data update @buildwars/gw-skilldata --latestpnpm --filter @gw1-mcp/gw-data run import:data# or, to import the upstream's published release files (what the weekly workflow does):pnpm --filter @gw1-mcp/gw-data run import:data -- https://build-wars.github.io/gw-skilldata

GWToolbox integration

gwtoolbox-plugin/ contains a read-only GWToolbox plugin adding /exportaccount: it copies your account state as JSON to the clipboard — which includes your current character's name, so read it before pasting it somewhere public. The export has two skill lists — learnedCharacterSkills (skills your current character has actually learned) and unlockedAccountSkills (everything unlocked account-wide, e.g. for heroes). Paste it in your conversation and pass the list that matches what you're building for as unlockedSkillIds to validate_build / encode_template: use learnedCharacterSkills for a build your character will equip, or unlockedAccountSkills for hero bars — proposed skills you don't own are flagged. Windows build instructions in gwtoolbox-plugin/README.md.

Roadmap

MCP resources for build archetypes and hero constraints, hero availability from campaign progression, and upstreaming the account export into GWToolbox itself. See CLAUDE.md for the full architecture notes.


This project is not affiliated with ArenaNet or NCSoft. Guild Wars is a trademark of NCSoft Corporation. Game data is imported from build-wars/gw-skilldata; its code is MIT but the skill descriptions originate from the Guild Wars community wikis under the GFDL and CC BY-NC-SA 2.5 (a NonCommercial license) — see THIRD_PARTY_NOTICES.md. Format documentation from the Guild Wars Wiki.

Development

bash
pnpm install && pnpm -r test

Node >= 22, pnpm 11. Nothing builds to dist — exports point at the .ts sources and the worker bundles via wrangler. See CONTRIBUTING.md to get started and CLAUDE.md for the full architecture, conventions and the honest register of known debts.

License

Source code: MIT (see LICENSE). Bundled game data carries separate terms — see THIRD_PARTY_NOTICES.md.

来源:README.md,提交 684b78a

工具

8

get_skill

Get a Guild Wars 1 skill

Look up a single GW1 skill by exact English name or by template skill id. Returns full stats (energy, activation, recharge, adrenaline, sacrifice), profession, attribute, campaign, elite flag and description. If the name is not found, returns the closest matches so you can correct spelling. Use this when you already know the exact skill; to discover skills by profession, attribute or name fragment, use search_skills instead.

输入参数idname

search_skills

Search Guild Wars 1 skills

Search the full GW1 skill database by profession, attribute, campaign, elite flag or name fragment (valid values are documented per parameter). Returns compact records, at most `limit` of them alongside a `total` count of every match — a full page is not the whole result, page with offset. Use get_skill for full details.

输入参数elitelimitoffsetcampaignNamenameContainsattributeNameprofessionNameincludePvpVersions

decode_template

Decode a skill template code

Decode an in-game GW1 skill template code (e.g. "OwpiMypMBg1cxcBAMBdmtIKAA") into professions, attribute allocations and the 8 skills with their stats and descriptions. Whitespace and line wraps in the pasted code are tolerated. This decodes a SINGLE build code; for a multi-hero paw-ned2 team blob, use decode_pawned_team instead.

输入参数code必填

decode_pawned_team

Decode a paw-ned2 team template

Decode a paw-ned2 team build blob (the 'pwnd0001...>...<' format shared on PvXwiki team pages and by the paw-ned2 tool) into its individual builds: player/hero label, description, and each skill bar fully decoded. Whitespace and line wraps in the pasted blob are tolerated. For a single (non-team) build code, use decode_template instead.

输入参数pwnd必填

encode_template

Encode a build into a template code

Compile a build (professions, attributes, 8 skills by exact English name) into an official in-game template code. The build is validated first; on rule violations the errors are returned instead of a code. Unknown skill names return closest-match suggestions. IMPORTANT: template codes MUST come from this tool — never write or guess a code by hand, hand-written codes are invalid in-game. If unsure, verify any code with decode_template.

输入参数forPvpskills必填forHeroprimary必填secondaryattributes必填unlockedSkillIds

validate_build

Validate a build against GW1 rules

Check a build (professions, attributes, 8 skills by exact English name) against Guild Wars 1 rules: one elite max, profession/attribute ownership, primary attributes, duplicates, rank ranges. Returns { valid, errors, warnings } without encoding — use encode_template instead when you also want the template code, since it runs these same rules and refuses on any error.

输入参数forPvpskills必填forHeroprimary必填secondaryattributes必填unlockedSkillIds

get_hero

Get a Guild Wars 1 hero

Look up a GW1 hero by name or by id (GWCA HeroID, matching the AccountExport plugin output). Returns profession, campaign and how the hero is unlocked. Remember: heroes can equip any skill unlocked at ACCOUNT level, but NO PvE-only skill at all — including Signet of Capture. validate_build with forHero=true reports each one as an error, not a warning. Use this for one known hero; to browse or filter the roster, use list_heroes instead.

输入参数idname

list_heroes

List Guild Wars 1 heroes

List all GW1 heroes, optionally filtered by profession or campaign name. Useful for team-building: shows which professions are coverable by heroes and how each hero is unlocked.

输入参数campaignNameprofessionName

版本历史

1
  1. v1.1.3最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分