Warcraft Wiki Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Warcraft Wiki Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server that gives LLMs live access to warcraft.wiki.gg API documentation — the community-maintained source for WoW API behavioral notes, restrictions, and patch history.
C_Spell.GetSpellCooldown() returns { startTime, duration, ... } doesn't tell you that startTime and duration are secret values in 12.0.x that can't be used in Lua arithmetic. That critical behavioral context lives on the wiki.This server queries the wiki on demand and returns clean text plus structured fields — not raw HTML:
It complements structural API tools (like wow-api-mcp which provides type signatures, enums, and event definitions) with the behavioral layer that only the wiki documents.
The server is intentionally scoped to API and closely related technical documentation. It is not designed for general Warcraft Wiki article browsing.
| Tool | Purpose | Example input |
|---|---|---|
wiki_lookup | Fetch a specific API function, event, or exact technical doc page | C_Spell.GetSpellCooldown, SPELL_UPDATE_COOLDOWN |
wiki_resolve | Turn a coding intent into ranked API/event candidates with next lookup guidance | "track spell cooldown", "listen for aura changes" |
wiki_search | Search API/event/technical documentation pages only | "spell cooldown", "unit aura tracking" |
wiki_namespace | List all pages under a namespace prefix | C_Spell, C_Item, GetSpell |
Fetches a specific API function, event, or exact technical page and returns readable text plus structured content.
API_ prefix for the wiki page title (C_Spell.GetSpellCooldown -> API_C_Spell.GetSpellCooldown). Event names in ALL_CAPS are used as-is (SPELL_UPDATE_COOLDOWN).section parameter narrows the response to: description, arguments, returns, payload, details, example, patch_changes, see_also, fields, members, values, related_events, or all (default).pageKind, description, payload, patchChanges, relatedEvents, relatedEventsData, warnings, codingNotes, availableSections, deprecationInfo, and structured section data like argumentsData, returnsData, and payloadData.deprecationInfo now includes hasConflict, conflictDetails, and recommendedState so callers can detect when banner text and patch history disagree.section is provided, the response also includes selectedSection, selectedSectionText, and selectedSectionData.Resolves coding-oriented questions into a short ranked list of likely API, event, enum, widget, or technical pages.
wiki_lookup calls.Searches Warcraft Wiki technical documentation only. General gameplay and random wiki articles are filtered out so agents stay focused on APIs, events, enums, widgets, and closely related technical pages. Returns up to 20 filtered results with titles, page kinds, URLs, and text snippets.
Lists all wiki pages matching a namespace prefix. Handles C_ namespace scoping by appending a trailing . — so C_Spell matches C_Spell.GetSpellCooldown but not C_SpellBook.IsSpellKnown. Supports pagination up to 1,000 results.
Requirements: Node.js >= 18.0.0
git clone https://github.com/Direction6275/warcraft-wiki-mcp.git
cd warcraft-wiki-mcp
npm installNo build step, no pre-indexing, no data files. The server queries the wiki live.
Add to your project's .mcp.json (Claude Code) or equivalent MCP config:
{
"mcpServers": {
"warcraft-wiki": {
"command": "node",
"args": ["/path/to/warcraft-wiki-mcp/src/index.mjs"]
}
}
}Restart Claude Code after adding the config.
All data comes from warcraft.wiki.gg via its MediaWiki API:
| Endpoint | Used by | What it returns |
|---|---|---|
action=parse&page={title} | wiki_lookup | Full page HTML + section metadata |
action=parse&page={title} | wiki_resolve | Details for the final ranked candidates |
action=query&list=search | wiki_search, wiki_resolve | Matching pages with text snippets |
action=query&list=allpages | wiki_namespace | All pages matching a title prefix |
The wiki returns MediaWiki HTML. The parser strips noise (navigation, compatibility metadata tables, info boxes), extracts deprecation notices, surfaces banner-vs-patch conflicts, salvages legacy inline sections, splits content at <h2> boundaries into named sections, derives related-event and coding-note signals, and converts HTML to clean text (code blocks become markdown fences, definition lists become indented text, tables become pipe-separated rows).
src/
index.mjs MCP server entry point, tool definitions, name normalization
wiki-client.mjs HTTP client for warcraft.wiki.gg, in-memory TTL cache
html-parser.mjs MediaWiki HTML -> structured text sectionsTechnical details: 4-hour in-memory cache (TTL per entry, no persistence across restarts). 10-second timeout per request. In-flight request coalescing, throttling, and retry/backoff are built in for live wiki calls. Graceful error handling for missing pages and network failures. Search is API-scoped by default.
The content source is low maintenance because it comes live from the wiki, but the parser still needs occasional upkeep if the wiki changes its HTML structure.
Run the parser fixtures and live smoke test with:
npm testThe parser test checks stable local fixtures for structured table output and coding-note extraction. The smoke test spins up the local MCP server through the SDK client and verifies representative lookup, resolver, and search behavior against live wiki data.
| Symptom | Likely cause | Fix |
|---|---|---|
| Server won't start | Missing dependencies | Run npm install |
| Lookups return garbled text | Wiki changed HTML template structure | Update section splitting in html-parser.mjs |
| "Failed to fetch" errors | Wiki is down or network issue | Transient — retry later |
| Missing sections in output | Wiki page doesn't have that section | Normal — the parser omits missing sections gracefully |
Dependencies: @modelcontextprotocol/sdk (MCP framework) and node-html-parser (HTML parsing).
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.