Build WoW talents with Claude — MCP server

TalentAnvil runs a free, public Model Context Protocol (MCP) server. Connect it to Claude, ChatGPT, Cursor, or any agent and your assistant can read every World of Warcraft talent tree, look up live characters and popular raid / Mythic+ builds, and hand you a valid, importable loadout string. The assistant supplies the intent; a constraint solver — not the model — guarantees the build is legal. No API key, no account.

Connect

Server URL (Streamable HTTP, JSON-RPC 2.0): https://www.talentanvil.com/mcp

Claude (claude.ai and Claude Desktop)

  1. Open Settings → Connectors and choose Add custom connector.
  2. Name it TalentAnvil and paste https://www.talentanvil.com/mcp as the URL. Leave auth empty.
  3. In a chat, enable TalentAnvil from the tools menu and ask for a build.

Claude Code

claude mcp add --transport http talentanvil https://www.talentanvil.com/mcp

ChatGPT

Turn on developer mode under Settings → Apps & Connectors → Advanced, then create a connector with the server URL above and no authentication.

Cursor, VS Code, and other MCP clients

Add this to the client's MCP config (e.g. .cursor/mcp.json):

{
  "mcpServers": {
    "talentanvil": {
      "type": "http",
      "url": "https://www.talentanvil.com/mcp"
    }
  }
}

What to ask

  • “Make me a Mythic+ Protection Paladin build on Templar with Avenger's Shield talents.”
  • “What are people running for Frost Mage on Mythic raid bosses? Give me the import string.”
  • “Look up my character Thrall on Area 52 and suggest talent changes for my gear.”
  • “Decode this loadout string and explain what it's missing for AoE.”
  • “Compare my current build to the most popular one for this dungeon.”

Tool reference

list_specs

List every class/spec available, with the slugs used by the other tools.

No parameters.

get_talents

List the selectable talents for a class/spec (id, name, effect description, spell id, sub-tree, hero tree, choices). Call this before generate_build so you know the talent names and what each one does. Use get_spell for the full, freshest detail on any spell id.

class string required
spec string required

generate_build

Produce a valid, importable loadout string for a class/spec. Provide talents to include (by name or id), an optional hero tree, and priority talents to fill remaining points. The solver enforces prerequisites, gates, and budgets.

class string required
hero_tree string
include string[]
priorities string[]
spec string required

decode_build

Decode a loadout string into its class/spec and the selected talents, each with its rank and max_ranks.

loadout_string string required

get_spell

Get the current Blizzard details for a spell — name and full effect description — by spell id (from get_talents) or by name. Data is refreshed daily, so it reflects the live patch rather than stale training data.

name string
spell_id integer

get_character

Look up a live World of Warcraft character from Blizzard's armory: profile summary (class, spec, level, item level, guild, faction) plus the sections you ask for — gear, talents, stats, M+, raid and dungeon progress, professions, PvP, achievements, collections, and more. Defaults to equipment, talents, stats, mythic_plus. Talents return only the active spec's active loadout: hero tree, the importable talent_loadout_code (pass it to decode_build), and each talent as {node_id, talent_id, name, rank}; set include_inactive_loadouts for every other saved loadout's code. Equipment is compact: equipped item level, then per item slot, name, item level, track (name_description), stats, gems, enchants, spell/proc text, set and bonus_list; set bonuses sit once in equipped_item_sets. mythic_plus returns the current season's rating and the best run per dungeon. raids and dungeons cover the current expansion only, newest release first and Mythic → Raid Finder; use raid_expansions / dungeon_expansions for others. achievements returns a summary (total points, completed count, recent completions, per-category progress); use achievement_category (paged with achievements_limit / achievements_offset) to list completions in one category, or achievement_ids to check specific achievements with criteria progress. achievement_statistics lists its categories; use statistics_category for the values. pets is name/species/level/quality; completed_quests is quest ids. Results are kept under ~20k tokens: anything left out to fit is listed in truncated_sections with the request that fetches it.

achievement_category string | integer
With the achievements section: list completed achievements (id, name, completed date, points) in this category and its subcategories, newest first. A category name (e.g. "Midnight Raid") or id; an ambiguous name returns the matching ids.
achievement_ids integer[]
With the achievements section: completion status and date for each id, plus criteria progress for incomplete ones.
achievements_limit integer
Page size for achievement_category. Default: 50.
achievements_offset integer
Skip this many completions in achievement_category (page on has_more). Default: 0.
dungeon_expansions "current" | "all" or integer[]
Dungeon progress to include: "current" (default, the newest expansion), "all", or a list of journal expansion ids. Default: "current".
include_cosmetic_slots boolean
Also include the shirt and tabard slots in equipment. Default: false.
include_inactive_loadouts boolean
Also list every other saved loadout (all specs) as spec + talent_loadout_code. Default: false.
include_mythic_plus_seasons boolean
Also list the ids of every M+ season the character has played. Default: false.
name string required
Character name.
raid_expansions "current" | "all" or integer[]
Raid progress to include: "current" (default, the newest expansion), "all", or a list of journal expansion ids. Default: "current".
realm string required
Realm name or slug, e.g. "Area 52" or "area-52".
region "us" | "eu" | "kr" | "tw" | "cn"
Default: "us".
sections array of enum
statistics_category string | integer
With the achievement_statistics section: return the statistics in this category (name or id).

compare_character

Compare a live character's active talent loadout with the most popular build for their spec (Warcraft Logs raid kills and the Mythic+ leaderboards, current raid tier). By default it compares against the spec's overall build (All Dungeons or All Bosses, the best-sampled first); pass content_name and/or difficulty to pick a dungeon or boss. Returns both loadout strings and hero trees, plus the differences: talents only the character has, talents only the popular build has, and rank and choice differences.

content_name string
Boss or dungeon name (partial match ok), or "All Bosses" / "All Dungeons". Omit for the overall build.
difficulty "normal" | "heroic" | "mythic" | "mythic_plus"
name string required
Character name.
realm string required
Realm name or slug, e.g. "Area 52" or "area-52".
region "us" | "eu" | "kr" | "tw" | "cn"
Default: "us".

Raw JSON-RPC

One endpoint handles initialize, tools/list, and tools/call. Generate a Prot Paladin build with curl:

curl -s https://www.talentanvil.com/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"generate_build",
         "arguments":{"class":"paladin","spec":"protection",
           "hero_tree":"Templar","include":["Avenger'"'"'s Shield"]}}}'

FAQ

Is the TalentAnvil MCP server free?

Yes. It is free, needs no API key or account, and has no sign-up. Point any MCP client at the endpoint and start asking.

Which AI assistants can use it?

Any client that supports remote MCP servers over Streamable HTTP: Claude on claude.ai and Claude Desktop (as a custom connector), Claude Code, ChatGPT in developer mode, Cursor, VS Code, and other agents.

Will the builds actually import in-game?

Yes. The AI only picks the talents; TalentAnvil's constraint solver enforces prerequisites, gates, point budgets, choice nodes, and the hero tree, then encodes a byte-accurate Blizzard loadout string you can paste into the in-game Import dialog.

Which patch and specs are covered?

Every class and specialization on live retail patch 12.1, including hero talent trees. Talent data comes from Blizzard's Game Data API and is refreshed each patch.

Where do the popular builds come from?

Raid builds are aggregated from top boss kills on Warcraft Logs; Mythic+ builds come from Blizzard's Mythic Keystone leaderboards. Both refresh automatically.

Do you store what I ask?

No. The server keeps only anonymous daily counts of which tools are called. It stores no IP addresses, accounts, character names, or tool arguments.

Prefer the visual talent calculator? →