{
  "markdown": "<p align=\"center\">\n  <img src=\"assets/brand/icon-rounded-512.png\" alt=\"gw1-mcp logo — a golden scythe and an eight-slot skill bar\" width=\"180\" height=\"180\">\n</p>\n\n<h1 align=\"center\">gw1-mcp</h1>\n\n<p align=\"center\"><em>A Guild Wars 1 build compiler for LLMs</em></p>\n\n<p align=\"center\">\n  <a href=\"https://codecov.io/gh/Graphmaxer/gw1-mcp\"><img src=\"https://codecov.io/gh/Graphmaxer/gw1-mcp/branch/main/graph/badge.svg\" alt=\"coverage\"></a>\n  <a href=\"https://github.com/Graphmaxer/gw1-mcp/actions/workflows/ci.yml\"><img src=\"https://github.com/Graphmaxer/gw1-mcp/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"https://app.codspeed.io/Graphmaxer/gw1-mcp?utm_source=badge\"><img src=\"https://img.shields.io/endpoint?url=https://codspeed.io/badge.json\" alt=\"CodSpeed\"/></a>\n  <a href=\"https://github.com/Graphmaxer/gw1-mcp/releases/latest\"><img src=\"https://img.shields.io/github/v/release/Graphmaxer/gw1-mcp\" alt=\"latest release\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/github/license/Graphmaxer/gw1-mcp\" alt=\"license\"></a>\n  <a href=\"https://github.com/Graphmaxer/gw1-mcp/commits/main\"><img src=\"https://img.shields.io/github/last-commit/Graphmaxer/gw1-mcp\" alt=\"last commit\"></a>\n  <a href=\"https://gw1mcp.grafana.net/public-dashboards/9002ddf3fb784b46847a65f4afe889fa\"><img src=\"https://img.shields.io/badge/usage-live%20dashboard-orange\" alt=\"live usage dashboard\"></a>\n  <a href=\"https://lobehub.com/mcp/graphmaxer-gw1-mcp\"><img src=\"https://lobehub.com/badge/mcp/graphmaxer-gw1-mcp\" alt=\"LobeHub MCP\"></a>\n  <a href=\"https://mcp.so/servers/gw1-e2b8b9\"><img src=\"https://img.shields.io/badge/mcp.so-listed-blue\" alt=\"listed on mcp.so\"></a>\n  <a href=\"https://glama.ai/mcp/connectors/io.github.Graphmaxer/gw1-mcp\"><img src=\"https://img.shields.io/badge/Glama-A%20quality-brightgreen\" alt=\"Glama connector, quality A\"></a>\n</p>\n\nAn MCP (Model Context Protocol) server that gives any compatible LLM client\n(Claude, ChatGPT, Cursor…) reliable, deterministic knowledge of **Guild Wars 1**\nbuilds: skill data lookup, official template code encoding/decoding, and build\nvalidation.\n\n**The MCP is a compiler, not a brain.** The LLM does the strategic reasoning;\nthis server does the things that must be exact.\n\n## Why not just ask the LLM?\n\nAsk an AI assistant for a Guild Wars build without this server and you\ntypically get: a plausible-sounding bar with a skill that does not exist, an\nattribute spread that exceeds the point budget, stats quoted from a\ndecade-old balance patch — and a template code that decodes to garbage when\nyou paste it in-game, because codes are bit-packed and cannot be\nhallucinated character-by-character.\n\nWith gw1-mcp connected, the same assistant looks up the 1516 real skills\n(current with Reforged balance, refreshed weekly), validates the build\nagainst the actual game rules, and hands you an **official template code\nproduced by an encoder — not predicted by a language model**. The strategic\nconversation stays exactly as good as your assistant; the facts stop being\nwrong.\n\n## Tools\n\n- `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\n- `search_skills` — filtered search: profession, attribute, campaign, elite, name substring\n- `decode_template` — in-game template code → professions, attributes, 8 skills with stats\n- `encode_template` — named build → validated, official in-game template code\n- `validate_build` — GW1 rule check: one elite max, profession/attribute ownership, primary attributes, duplicates\n- `get_hero` — hero record by exact name or GWCA id\n- `list_heroes` — hero roster with professions, campaigns and unlock notes, filterable by profession/campaign\n- `decode_pawned_team` — paw-ned2 team blobs (PvXwiki team pages) → every bar decoded\n\nResources: `gw1://guide/build-workflow` (methodology for the LLM), `gw1://meta` (professions, attribute lines, campaigns, skill-type list and data import date) and `gw1://heroes`.\n\n## Quick start\n\n```bash\npnpm install\npnpm -r test\npnpm --filter @gw1-mcp/gw-mcp dev   # stdio server\n```\n\n## Packages\n\n- `packages/gw-template` — template code codec (zero dependencies; round-trip tested against in-game/PvX codes and differentially fuzzed against [@buildwars/gw-templates](https://github.com/build-wars/gw-templates))\n- `packages/gw-data` — game data (1516 skills, Reforged-current) imported from [build-wars/gw-skilldata](https://github.com/build-wars/gw-skilldata) (code MIT; skill descriptions under GFDL / CC BY-NC-SA — see [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md))\n\nThe codec is verified four ways: 27 golden fixtures (including nine live in-game emissions) covering all 10 primary\nprofessions and all 5 campaigns (sourced from PvXwiki, gw1builds.com, the\nofficial wiki and the pre-2007 in-game format, several verified down to the\nskill-id level), fuzzed round-trips, differential testing against an\nindependent implementation, and malformed-input rejection tests. Validation\nrules are table-tested one by one. `pnpm test:coverage` for the numbers.\n\n- `packages/gw-mcp` — the MCP server (transport-agnostic core + stdio entry)\n- `packages/gw-worker` — Streamable HTTP wrapper (Hono), runs on Cloudflare Workers and Node\n\n## Deploy to Cloudflare Workers\n\n```bash\npnpm --filter @gw1-mcp/gw-worker check    # offline bundling validation\npnpm --filter @gw1-mcp/gw-worker deploy   # needs `wrangler login` once\n```\n\nThe server is stateless (a fresh McpServer per request over bundled data), so it\nfits the Workers model with zero configuration: no Durable Objects, no KV, no\nsecrets. Free plan is plenty.\n\n## Connect it\n\n- **claude.ai / Claude app**: Settings → Connectors → Add custom connector →\n  `https://gw1-mcp.<your-subdomain>.workers.dev/mcp`\n- **Claude Code**: `claude mcp add --transport http gw1 https://…/mcp`\n  or locally over stdio: `claude mcp add gw1 -- pnpm --filter @gw1-mcp/gw-mcp dev`\n- **Local HTTP without Cloudflare**: `pnpm --filter @gw1-mcp/gw-worker dev:node`\n  then point any client at `http://localhost:8787/mcp`\n\n## Regenerating game data\n\n```bash\npnpm --filter @gw1-mcp/gw-data update @buildwars/gw-skilldata --latest\npnpm --filter @gw1-mcp/gw-data run import:data\n# or, to import the upstream's published release files (what the weekly workflow does):\npnpm --filter @gw1-mcp/gw-data run import:data -- https://build-wars.github.io/gw-skilldata\n```\n\n## GWToolbox integration\n\n`gwtoolbox-plugin/` contains a read-only GWToolbox plugin adding\n`/exportaccount`: it copies your account state as JSON to the clipboard — which\nincludes your current character's name, so read it before pasting it somewhere\npublic. The\nexport has two skill lists — `learnedCharacterSkills` (skills your current\ncharacter has actually learned) and `unlockedAccountSkills` (everything unlocked\naccount-wide, e.g. for heroes). Paste it in your conversation and pass the list\nthat matches what you're building for as `unlockedSkillIds` to `validate_build` /\n`encode_template`: use `learnedCharacterSkills` for a build your character will\nequip, or `unlockedAccountSkills` for hero bars — proposed skills you don't own\nare flagged. Windows build instructions in\n[gwtoolbox-plugin/README.md](gwtoolbox-plugin/README.md).\n\n## Roadmap\n\nMCP resources for build archetypes and hero constraints, hero availability\nfrom campaign progression, and upstreaming the account export into GWToolbox\nitself. See `CLAUDE.md` for the full architecture notes.\n\n---\n\n_This project is not affiliated with ArenaNet or NCSoft. Guild Wars is a\ntrademark of NCSoft Corporation. Game data is imported from\n[build-wars/gw-skilldata](https://github.com/build-wars/gw-skilldata); its code\nis MIT but the skill descriptions originate from the Guild Wars community wikis\nunder the GFDL and CC BY-NC-SA 2.5 (a NonCommercial license) — see\n[THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md). Format documentation from the\n[Guild Wars Wiki](https://wiki.guildwars.com/wiki/Skill_template_format)._\n\n## Development\n\n```bash\npnpm install && pnpm -r test\n```\n\nNode >= 22, pnpm 11. Nothing builds to dist — exports point at the .ts\nsources and the worker bundles via wrangler. See\n[CONTRIBUTING.md](./CONTRIBUTING.md) to get started and\n[CLAUDE.md](./CLAUDE.md) for the full architecture, conventions and the\nhonest register of known debts.\n\n## License\n\nSource code: MIT (see `LICENSE`). Bundled game data carries separate terms —\nsee [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).\n",
  "bytes": 8571,
  "sha": "3e26f4de1f61eebf94ea00a12ca47ba06554dc6367ed5c6afa6657b82d474f48",
  "repo_slug": "graphmaxer/gw1-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_graphmaxer_gw1_mcp_28f34f54/readme"
}