warcraft-wiki-mcp

warcraft-wiki-mcp

MCP server that gives LLMs live access to warcraft.wiki.gg API documentation with behavioral notes, restrictions, and patch history for World of Warcraft APIs.

Category
访问服务器

README

warcraft-wiki-mcp

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.

Why this server?

  • LLM training data is frequently wrong for WoW APIs. Functions get renamed, deprecated, or change behavior between patches. Training data lags months or years behind.
  • API signatures alone aren't enough. Knowing that 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.
  • No way to verify APIs without tools. Without live lookup, an LLM will confidently generate code using deprecated or non-existent APIs.

This server queries the wiki on demand and returns clean text plus structured fields — not raw HTML:

  • Descriptions, parameter docs, return values, and code examples
  • Behavioral details and usage gotchas
  • Deprecation notices
  • Event payload sections
  • Restriction and compatibility notes surfaced by the wiki
  • Patch history
  • Structured argument/return/payload items for agent use
  • Explicit deprecation and replacement metadata when the wiki exposes it
  • Conflict signals when the deprecated banner and patch history disagree
  • Retry/throttle behavior that is safer under bursty agent lookups
  • Safer legacy-page parsing that prefers clean text over misleading fake structure
  • Search ranking biased toward current namespaced APIs when broad queries are ambiguous
  • Agent-facing coding notes, warnings, and related-event signals for safer code decisions
  • A resolver tool that turns coding intent into ranked API/event documentation candidates

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.

Tools

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

wiki_lookup

Fetches a specific API function, event, or exact technical page and returns readable text plus structured content.

  • Auto-detection: Function names get an 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 filtering: Optional section parameter narrows the response to: description, arguments, returns, payload, details, example, patch_changes, see_also, fields, members, values, related_events, or all (default).
  • Deprecation notices: Automatically extracted and displayed when present.
  • Structured output: Includes normalized fields such as pageKind, description, payload, patchChanges, relatedEvents, relatedEventsData, warnings, codingNotes, availableSections, deprecationInfo, and structured section data like argumentsData, returnsData, and payloadData.
  • Conflict-aware deprecation metadata: deprecationInfo now includes hasConflict, conflictDetails, and recommendedState so callers can detect when banner text and patch history disagree.
  • Coding guidance: Extracts warning and info notes from wiki prose, such as deprecated APIs, nil returns, restricted/secret behavior, and event-timing gotchas.
  • Related events: Extracts event names from related-event sections and behavioral notes so callers can discover the events they should inspect next.
  • Lean section focus: When section is provided, the response also includes selectedSection, selectedSectionText, and selectedSectionData.

wiki_resolve

Resolves coding-oriented questions into a short ranked list of likely API, event, enum, widget, or technical pages.

  • Intent cleanup: Removes common coding verbs such as "track", "listen", and "detect" so an agent can search for the actual API terms.
  • Targeted rewrites: Adds focused searches for common WoW addon tasks, such as cooldown tracking and aura updates.
  • Agent handoff: Returns confidence, deprecation state, related events, warnings, coding notes, available sections, and suggested follow-up wiki_lookup calls.
  • Scope: Still limited to API and closely related technical documentation; it does not browse general wiki articles.

wiki_search

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.

wiki_namespace

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.

Quick Start

Requirements: Node.js >= 18.0.0

git clone https://github.com/Direction6275/warcraft-wiki-mcp.git
cd warcraft-wiki-mcp
npm install

No build step, no pre-indexing, no data files. The server queries the wiki live.

Registration

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.

How It Works

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 sections

Technical 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.

Maintenance

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.

Testing

Run the parser fixtures and live smoke test with:

npm test

The 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).

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选