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)
- Open Settings → Connectors and choose Add custom connector.
-
Name it
TalentAnviland pastehttps://www.talentanvil.com/mcpas the URL. Leave auth empty. - 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.
-
classstring required -
specstring 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.
-
classstring required -
hero_treestring -
includestring[] -
prioritiesstring[] -
specstring required
decode_build
Decode a loadout string into its class/spec and the selected talents, each with its rank and max_ranks.
-
loadout_stringstring required
popular_builds
Get the importable loadout that players actually ran to kill a raid boss (or clear an M+ dungeon), aggregated from Warcraft Logs and the M+ leaderboards, for a class/spec. Pass a boss/dungeon name, or a general all-round build for the whole content: "All Bosses" for a raid (set difficulty to normal/heroic/mythic), or "All Dungeons" for M+ (set difficulty to "mythic_plus"). Returns the modal build string, sample size, and per-choice pick frequencies.
-
classstring required -
content_namestring required - Boss or dungeon name (partial match ok). Use "All Bosses" for the overall raid build, or "All Dungeons" for the overall M+ build.
-
difficulty"normal" | "heroic" | "mythic" | "mythic_plus" -
specstring 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.
-
namestring -
spell_idinteger
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_categorystring | 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_idsinteger[] - With the achievements section: completion status and date for each id, plus criteria progress for incomplete ones.
-
achievements_limitinteger -
Page size for achievement_category.
Default:
50. -
achievements_offsetinteger -
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_slotsboolean -
Also include the shirt and tabard slots in equipment.
Default:
false. -
include_inactive_loadoutsboolean -
Also list every other saved loadout (all specs) as spec + talent_loadout_code.
Default:
false. -
include_mythic_plus_seasonsboolean -
Also list the ids of every M+ season the character has played.
Default:
false. -
namestring 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". -
realmstring required - Realm name or slug, e.g. "Area 52" or "area-52".
-
region"us" | "eu" | "kr" | "tw" | "cn" -
Default:
"us". -
sectionsarray of enum -
statistics_categorystring | 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_namestring - Boss or dungeon name (partial match ok), or "All Bosses" / "All Dungeons". Omit for the overall build.
-
difficulty"normal" | "heroic" | "mythic" | "mythic_plus" -
namestring required - Character name.
-
realmstring 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.