mcpField
H
Hated WoW MCP

Hated WoW MCP

ローカル
github.com開発ツール182 日前に更新

Hated WoW MCP について

Hated WoW MCPは、World of Warcraftのアドオン開発向けMCPサーバーです。対象クライアント別のLua API、BlizzardのUIソース、ゲーム素材データをコーディングエージェントに提供し、Lintや検証、ひな形生成にも対応します。ローカルWeb UIでツールを閲覧できます。

主な機能

  1. 01Lua API・型・イベントの検索
  2. 02Blizzard UIソースとCVarの検索
  3. 03アイコンとゲームファイル情報の検索
  4. 04LintとTOC/XML検証
  5. 05アドオンファイルのひな形生成
  6. 06ローカルWeb UIでのツール閲覧

活用シーン

  1. 01対象クライアントのLuaシグネチャ確認
  2. 02ゲームUIの実装例の検索
  3. 03アドオンのTOCとXMLの検証
  4. 04アドオンの初期ファイル構成の作成

MCP 対応

標準のstdio MCPサーバーとして20のツールを互換クライアントに提供します。API・ゲームデータ検索、Lint、検証、ひな形生成を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rdygaming-hated-wow": {
"command": "npx",
"args": [
"-y",
"hated-wow-mcp"
],
"env": {
"WOW_DEFAULT_FLAVOR": "<WOW_DEFAULT_FLAVOR>",
"WOW_INSTALL_PATH": "<WOW_INSTALL_PATH>",
"WOW_ADDON_PATH": "<WOW_ADDON_PATH>",
"WOW_MCP_DATA_DIR": "<WOW_MCP_DATA_DIR>"
}
}
}
}
起動コマンドnpx -y hated-wow-mcp
設定が必要な環境変数
WOW_DEFAULT_FLAVORClient to answer for when a tool call does not name one.
WOW_INSTALL_PATHYour World of Warcraft folder. Auto-detected in the standard locations if unset.
WOW_ADDON_PATHAddOns folder the addon tools read and write. Confines them to that directory.
WOW_MCP_DATA_DIRWhere synced UI source and game data are stored. Defaults to the OS cache directory.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmhated-wow-mcp0.6.1

ツール

20

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitintegerいいえ
querystringはい関数名またはその一部です。完全一致、前方一致、部分一致、キャメルハンプ略記に対応します(GIIBID は GetItemInfoByID に一致します)。
flavorenumいいえ検索対象のゲームクライアントです。デフォルトは WOW_DEFAULT_FLAVOR、つまりリテール版です。mainline | mists | cata | wrath | tbc | vanilla | forever
namespacestringいいえ1 つの名前空間に限定します。例:C_Spell。

詳細

Hated WoW MCP

npm license

World of Warcraft アドオンを作成するための MCP サーバーです。 無料のオープンソースです。

AI アシスタントが通常は推測で補うことになる、次の3つを提供します。対象とするクライアントのゲーム内 Lua API、ゲーム内での実装方法を確認できるBlizzard が出荷した UI ソース、そしてテクスチャ参照を実在するものにし、作り話にならないようにするゲームのアートとファイルデータです。

20個のツールを利用できます。Claude Code、Claude Desktop、Cursor、Cline、Antigravity、Codex、VS Code のセットアップ方法は以下に記載しています。MCP に対応するその他のクライアントでも使えます。また、AI を使わずにローカルの Web UI で閲覧することもできます。

☕ このプロジェクトを支援する

Hated WoW MCP は無料で、今後もずっと無料です。時間の節約に役立ったら、コーヒーをおごっていただけると、パッチサイクルを通じたメンテナンスの大きな支えになります。

buymeacoffee.com/rdygaming

ここで扱うのはすべて、クライアントの内部で実行されるコードです。このサーバーには Battle.net Web API は含まれていません。アーマリーの検索やオークションハウスには対応していません。


クイックスタート

Node 20 以上が必要です。クローンもビルドも不要です。

Claude Code
claude mcp add wow -- npx -y hated-wow-mcp

現在のプロジェクトだけでなく、すべてのプロジェクトで利用できるようにするには、-s user を追加します。claude mcp list で確認できます。

Claude Desktop

設定ファイルを編集します。

OSパス
Windows%APPDATA%\Claude\claude_desktop_config.json
macOS~/Library/Application Support/Claude/claude_desktop_config.json

Windows Store からインストールしましたか? このパスが存在しない場合は、代わりに %LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\ を確認してください。

mcpServers ブロックを追加します。ファイルにすでにほかのキーがある場合は、それらを残してください。ファイルを置き換えるのではなく、以下の内容をマージします。

{
  "mcpServers": {
    "wow": {
      "command": "npx",
      "args": ["-y", "hated-wow-mcp"],
      "env": {
        "WOW_DEFAULT_FLAVOR": "mainline"
      }
    }
  }
}

その後、システムトレイから Claude Desktop を完全に終了してから再起動します。ウィンドウを閉じるだけでは不十分です。設定は起動時にのみ読み込まれます。

その他のクライアント

これは標準的な stdio MCP サーバーなので、どの MCP クライアントでも実行できます。異なるのは設定形式です。以下の形式は、各クライアントのドキュメントに基づいています。

クライアント場所形式
Cursorプロジェクト内の .cursor/mcp.json、または ~/.cursor/mcp.json上記と同じ mcpServers JSON
ClineMCP Servers パネルで Configure を選択(CLI の場合:~/.cline/mcp.json)同じ mcpServers JSON
Antigravity~/.gemini/config/mcp_config.json、または Settings、Customizations、Open MCP Config同じ mcpServers JSON。ドキュメントではコマンドの絶対パスを指定するよう求められています
WindsurfMCP 設定ファイル同じ mcpServers JSON
VS Code.vscode/mcp.json、または MCP: Open User Configuration コマンドmcpServers ではなく、servers
Codex~/.codex/config.tomlTOML。以下を参照してください

VS Code は、ほかのクライアントとは異なるトップレベルキーを使用します。

{
  "servers": {
    "wow": { "command": "npx", "args": ["-y", "hated-wow-mcp"] }
  }
}

Codex は JSON ではなく TOML を読み込みます。codex mcp add wow -- npx -y hated-wow-mcp を実行するか、~/.codex/config.toml に以下を追加してください。

[mcp_servers.wow]
command = "npx"
args = ["-y", "hated-wow-mcp"]
env = { WOW_DEFAULT_FLAVOR = "mainline" }
startup_timeout_sec = 30

Codex のデフォルト値である 10 から startup_timeout_sec を増やしてください。初回の npx 実行ではパッケージをダウンロードする必要があり、高速な接続でも約 9 秒かかったため、低速な接続ではタイムアウトします。Claude Code にも同じ設定項目があり、MCP_TIMEOUT で指定します。

Windows の場合、一部のクライアントはシェルを介さずにサーバーを起動するため、そのまま npx を指定すると起動に失敗します(ENOENT)。cmd でラップしてください。

{
  "mcpServers": {
    "wow": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "hated-wow-mcp"]
    }
  }
}

これにより、約 4 秒でサーバーが起動します。クローンから実行する場合は、"command": "node" と dist/index.js へのパスを指定すると、0.5 秒で起動し、ネットワークも不要です。

ツールの承認。 20 個のツールのうち 19 個はローカルデータの読み取りのみを行い、そのことを宣言しています(readOnlyHint)。そのため、呼び出しごとに確認するクライアントでも、これらの承認を安全に省略できます。例外は wow_addon_scaffold です。write を渡した場合にのみファイルを書き込み、さらに overwrite も渡さない限り、既存のアドオンを上書きしません。自動承認を使用する場合は、このツールをリストから除外してください。

設定ファイルのひな型として、このリポジトリの mcp-config.example.json を参照してください。

次にゲームデータを同期する

Lua API インデックスはパッケージに同梱されているため、API 検索、型とイベントの検索、リンティング、TOC/XML の検証、スキャフォールディングは、追加した時点ですぐに利用できます。同期や待ち時間は不要です。

UI ソースコーパスとアート/FileDataID の検索データは大きすぎて同梱できないため、CVar 検索を含む 9 個のツールには初回の同期が必要です。PATH 上に git が必要です。

npx -y hated-wow-mcp sync all

同期する前に: ブラウザーで https://wago.tools/ を一度開き、ページが完全に読み込まれるまで待ってください。wago.tools はボット対策で保護されているため、同じ接続から先にアクセスすると、アトラスをダウンロードできるようになります。この手順を省くと、アトラスの取得時に HTTP 403 エラーが発生することがあります。

これにより、Blizzard の UI ソースの約 44 MB のシャロークローンと、約 149 MB のリストファイルを取得します。初回は数分かかります。次回以降の実行は短時間で済みます。変更のないリストファイルは再ダウンロードせずに再検証されるため、変更がない場合の同期は約 2 秒で完了します。

Classic と WoW Forever

sync all(または sync ui-source)だけを実行すると、デフォルトのクライアント(WOW_DEFAULT_FLAVOR を設定していない場合は retail)の UI ソースに加えて、インストール済みの WoW クライアントがすべてインデックス化されます。_classic_beta_ がインストールされている場合、フラグなしで WoW Forever もインデックス化されます。retail のみがインストールされている場合、追加のダウンロードはありません。ログに選択された内容が表示されます。

クライアントを自分で選ぶには、名前を指定します。これにより自動検出が上書きされ、同期するたびに置き換えではなく同じインデックスに追加されます。

npx -y hated-wow-mcp sync ui-source -- forever   # WoW Forever (Camelot)
npx -y hated-wow-mcp sync ui-source -- classic   # Mists / Cata / Wrath / TBC
npx -y hated-wow-mcp sync ui-source -- vanilla   # Classic Era
npx -y hated-wow-mcp sync ui-source -- mainline  # retail only, skip the rest

各クライアントはそれぞれ約 46 MB のチェックアウトなので、4 クライアントすべてがインストールされたマシンでは、retail のみの場合の約 4 倍をダウンロードします。

アートデータも同じルールに従います。sync game-data はデフォルトのクライアントに加え、インストール済みのクライアントすべてのテクスチャアトラスを構築します。また、同じ方法でクライアント名を指定できます(sync game-data -- forever)。アトラスは数 MB と小さいため、UI ソースに比べて負担ははるかに少なくなります。ファイルインデックスはすべてのクライアントで共有され、一度だけ構築されます。

同期していないクライアントについてツールに質問すると、その旨とコマンドが返されます。そのクライアントには存在しない可能性のあるコードで回答してしまうため、retail のソースにはフォールバックしません。

4 クライアントすべての API インデックスはパッケージに含まれているため、同期しなくても API 検索、リンティング、.toc の検証で flavor: "forever" を使用できます。まだ upstream が公開していない内容については、既知の制限を参照してください。

正しく動作したことを確認する

アシスタントに「WoW MCP を使って、C_Item.GetItemInfo は何を返しますか?」と尋ねてください。18 個すべての値を含むシグネチャが返されるはずです。または、サーバーを直接実行します。

npx hated-wow-mcp --list

20 個すべてのツールが表示されるはずです。

データの保存場所

同期したデータはパッケージ内には保存されません。これにより npx が動作します。データは OS のキャッシュディレクトリに保存されます。

プラットフォーム場所
Windows%LOCALAPPDATA%\hated-wow-mcp\Cache
macOS~/Library/Caches/hated-wow-mcp
Linux$XDG_CACHE_HOME/hated-wow-mcp、設定されていない場合は ~/.cache/hated-wow-mcp

WOW_MCP_DATA_DIR を設定すると保存場所を変更できます。約 70 MB を別のドライブに置いたり、複数のインストール間で同期データを共有したりする場合に便利です。wow_data_status は解決された保存場所とその理由を常に報告します。


クローンから実行する

サーバーを変更する場合、または公開パッケージには含まれないローカル Web UIを使う場合のみ必要です。Node 20+ と git が必要です。

git clone https://github.com/RdyGaming/hated-wow-mcp.git
cd hated-wow-mcp
npm install
npm run build
npm run sync-all
npm test

npm test を実行すると、111 passed, 0 failed と表示されるはずです。Windows では setup.cmd が 5 つの手順をすべて実行し、以下で必要となる絶対パスを表示します。

クローンでは、同期したデータは OS のキャッシュではなく、ソースの隣にある data/ に保存されます。そのため、サーバーでの作業が既存の npx インストールに影響することはありません。

npx の代わりに、ビルド済みのエントリーポイントをクライアントに指定します。

{
  "mcpServers": {
    "wow": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\hated-wow-mcp\\dist\\index.js"]
    }
  }
}

Windows では、JSON 内のバックスラッシュを二重にする必要があります。macOS/Linux では、/Users/you/hated-wow-mcp/dist/index.js のような通常のパスを使用してください。

PR を作成する前に、CONTRIBUTING.md を参照してください。


AI クライアントを使わずに閲覧する

すべてのツールはローカルのウェブ UI でも実行できます。アシスタントも、API キーも、トークンも不要です。 何かをすばやく調べたいときや、プロンプトに組み込む前にツールの戻り値を確認したいときに便利です。

この UI の利用にはクローンが必要です。npm パッケージには含まれていません。

npm run web

続いて http://localhost:3001 を開きます。

サイドバーからツールを選ぶと、フォームが自動で生成されます。フィールド、その型、ヘルプテキストはすべてツール自体のスキーマに基づいているため、UI はツールが実際に受け付ける内容と常に一致します。結果はコピーボタン付きの Monaco エディターに表示されます。

これはツールと直接通信し、MCP プロトコルを使用しません。そのため、アシスタントが使用しているサーバーには影響しません。両方を同時に実行できます。

知っておくとよいことが 2 つあります。

  • 最初に npm run sync-all を実行してください。 UI の内容は同期済みデータの範囲に限られます。同期しない場合、UI ソースツールとゲームデータツールは何も返しません。
  • アート関連ツールが返すのは画像ではなくパスです。 wow_icon_search などのツールが返すのは FileDataID とテクスチャパスです。BLP のデコードには対応していません(既知の制限を参照)。FileDataID を wago.tools に貼り付けると、実際の画像を確認できます。

3001 番ポートが使用中の場合は、PORT を設定してください。

PORT=4000 npm run web

UI の依存関係(express、cors)は開発用依存関係です。通常の npm install でインストールされ、MCP サーバー自体がこれらをインポートすることはありません。


設定

すべての設定は任意です。.env.example を参照してください。

変数用途
WOW_DEFAULT_FLAVORツール呼び出しでクライアントが指定されていない場合に応答するクライアント:mainline、mists、cata、wrath、tbc、vanilla、forever。デフォルトは mainline です。
WOW_INSTALL_PATHWoW のフォルダーです。未設定の場合は自動検出されます。
WOW_ADDON_PATHファイルツールが読み書きする AddOns フォルダーです。操作対象をこのディレクトリ内に限定します。

収録データ

データセット内容ソース
Lua API インデックス6,335 個の関数、1,783 個のイベント、1,676 個の列挙型/構造体、6,704 個のグローバル(リテール版。Classic と Classic Era は個別にインデックス化)Blizzard が生成した /api ドキュメント。 Gethe/wow-ui-source にミラーされています
UI ソース348 個の Blizzard_* パッケージに含まれる 4,036 個のファイル。継承可能な XML テンプレート 4,044 個、ミックスイン 3,488 個、ミックスインメソッド 26,859 個同じミラー
CVarsデフォルト値、カテゴリ、スコープ、Blizzard 独自の説明を含む 1,635 個のコンソール変数。そのうち 451 個には UI ソースに基づく使用例も含まれますKetho/BlizzardInterfaceResources + UI ソース
UI スキーマ要素/属性の検証用に解析した Blizzard の UI.xsd同じミラー
ファイルインデックスFileDataID に対応付けられた 36,624 個のアイコンを含む、172,175 個のインターフェースファイルwowdev/wow-listfile
アトラスインデックスサイズと座標を含む名前付きの SetAtlas 要素。正確なビルドごとにクライアント別のインデックスを用意(リテール版 17,467 個、WoW Forever 20,454 個)wago.tools の DB2 エクスポート

データはすべて src/sync/ のスクリプトによって公開ミラーから同期されるため、誰かがリストを手作業で管理しなくてもパッチに追従できます。


ツール

API リファレンス

ツール目的
wow_api_search引数と戻り値の完全なシグネチャを含む関数を検索します
wow_api_event_searchイベントと、そのペイロード引数を順番どおりに検索します
wow_api_type_searchEnum.*、Constants.*、または構造体テーブルを検索します
wow_api_diffリテール/Classic/Classic Era 間での利用可否を比較します
wow_api_stats読み込まれているインデックスと同期時期を表示します

Blizzard の UI ソース

ツール目的
wow_ui_template_search継承チェーン付きで、継承可能な XML テンプレートを検索します
wow_ui_mixin_search名前またはメソッドのいずれかでミックスインを検索します
wow_cvar_searchCVar のデフォルト値、カテゴリ、スコープ、保護対象かどうか、Blizzard での使用方法を検索します
wow_ui_grep出荷された全 4,036 件の Lua/XML ファイルを正規表現で検索します
wow_ui_read_file出荷されたソースファイルをコンテキスト付きで読み取ります
wow_ui_list_packagesBlizzard_* パッケージを一覧表示します

作成

ツール目的
wow_lua_lint削除/移動された API、未知のイベント、テイント、パフォーマンス上の問題を検出します
wow_xml_validateBlizzard の UI.xsd に照らしてインターフェース XML を検証します
wow_toc_validate.toc のインターフェースバージョン、フレーバーサフィックス、ファイル一覧を検証します
wow_addon_scaffold動作するアドオンのスケルトンを生成します
wow_install_infoローカルのインストールとインストール済みアドオンを報告します

ゲームデータとアート

ツール目的
wow_file_searchパス ↔ FileDataID を双方向に検索します
wow_icon_searchアイコンを検索し、使用可能な 2 種類の参照形式を取得します
wow_atlas_searchサイズと座標を含む SetAtlas 要素を検索します
wow_data_status同期済みのゲームデータセットを表示します

リンターを実行する価値がある理由

手書きの非推奨リストではなく、フレーバーごとのインデックスを基にしているため、 対象としている クライアントで 成り立つ事柄を把握できます。

$ wow_lua_lint --flavor mainline
local n = GetContainerNumSlots(0)

  1:9  warning  api/moved-to-namespace
      "GetContainerNumSlots" has moved into a namespace in Retail (Midnight)…
      -> C_Container.GetContainerNumSlots

同じコードでも、Classic ではグローバル変数がまだ存在するため問題ありません。この 違いは手作業で定義したものではなく、Blizzard のデータから導き出されています。

また、「Interface action failed because of an AddOn」というエラーを引き起こすテイントの誤りも検出します。保護対象の関数の呼び出し、Blizzard のグローバル変数の再代入、 戦闘中のロックダウン時にセキュアフレームに触れることなどです。

実測した誤検出率は、Blizzard 自身が出荷したコードに両方のバリデーターを実行して確認しています。

  • XML バリデーター:1,091 ファイル中 0 件でエラーが報告されます。
  • Lua リンター:2,551 ファイル中 48 件(1.9%)で、ほぼすべてが正しい検出です。削除された API を再定義するために存在する、Blizzard 自身の Blizzard_Deprecated* シムです。

最新の状態を保つ

パッチ適用後に再実行してください。wow_api_stats と wow_data_status で、現在のデータと同期日時を確認できます。

コマンド取得するもの備考
npm run sync-api3 つすべてのクライアントの Lua API インデックス約 1,700 件の小規模な HTTPS リクエスト
npm run sync-ui-sourceBlizzard UI ソース(浅い git クローン、約 44 MB)再実行すると早送りで更新されます
npm run sync-game-dataListfile と atlas テーブルモデル/マップ/サウンドを取得するには --full を追加します
npm run sync-all3 つすべて

これらはクローン用のコマンドです。インストール済みのコピーにはパッケージスクリプトがないため、代わりに sync サブコマンドを使用します。

npx -y hated-wow-mcp sync all
npx -y hated-wow-mcp sync game-data -- --full

sync-api はチェックアウト専用です。パッケージに含まれるデータを再生成するため、インストール済みのコピーで新しい API インデックスを取得するには、同期ではなくアップグレードが必要です。

データは公開されている上流ミラーから取得するため、再同期すれば、このリポジトリでのリリースを待たずにパッチの変更を反映できます。ただし、これらのミラーは通常、実際のパッチ公開から数時間から数日遅れます。

変更がない場合、再同期のコストは低く抑えられます。 149 MB の listfile は ETag で再検証されるため、変更がなければ新たにダウンロードせず、1 回の通信で済みます。また、インデックスは再構築されず、そのまま維持されるため、変更がない場合の sync-game-data は約 2 秒で完了します。キャッシュを無視して必ず再構築するには、--force を指定してください。

サーバーはデータが古くなったことを知らせます。 同期済みのインデックスが 30 日を超えると、そのインデックスに基づく回答には 1 行の警告が付き、wow_data_status は各データセットの経過日数を報告します。古いデータは検知すべき問題です。パッチで削除された関数やテクスチャについて、自信ありげに回答することは、何も回答しないよりも悪いからです。

wago.tools へのアクセス

sync-game-data または sync-all を実行する前に、ブラウザーで https://wago.tools/ を開き、読み込みが完了するまで待ってください。 このサイトにはボット対策が施されており、同じ接続からブラウザーでアクセスすると、その後の atlas ダウンロードが通るようになります。最初にこの操作を行うことで、atlas の失敗のほとんどを防げます。

それでも atlas の手順で HTTP 403 が報告される場合、wago.tools が接続を明示的に拒否しています。多くのデータセンター、クラウド、VPN の IP 範囲がブロックされています。VPN を切断し、通常のデスクトップ接続から実行してください。

同期のほかの部分が妨げられることはありません。同じスクリプト内のファイルインデックスは GitHub から取得されるため、影響を受けません。また、atlas の手順に依存するのは wow_atlas_search だけです。他の 19 個のツールには影響しません。


ディレクトリ構成

src/
  config.ts            flavors, interface versions, install detection
  wowapi/              API index loading, search, rendering
  uisource/            Blizzard UI source index, template/mixin/grep search
  gamedata/            listfile and atlas lookup
  lua/                 tokenizer, analyzer, rule tables
  xml/                 UI.xsd parser, XML validator
  toc/                 .toc parser and validator
  scaffold/            addon generator
  tools/               MCP tool definitions
  sync/                the three sync scripts, plus their shared entry point
  paths.ts             bundled vs. synced data locations
server.js              local web UI backend (npm run web)
index.html             local web UI frontend
test/smoke.mjs         111 end-to-end checks against real data
data/                  bundled API indexes, plus synced ones in a clone

既知の制限

  • ウィジェットメソッドの継承はモデル化されていません。 Frame:SetPoint は見つかりますが、サーバーは Button が Frame から継承していることを認識しません。メソッド名だけで検索すれば見つかります。
  • Classic の進行状況別エディションは、1つのインデックスを共有します。 Blizzard は実際に実行されているクライアント向けの生成ドキュメントを公開しています。Cata/Wrath/TBC は Classic のインデックスに対応するため、これらに関する回答はおおよそのものです。
  • WoW Forever には3つのリストがありません。 クライアントは retail のコードベース上に構築されており(Blizzard はゲームタイプを camelot と呼んでいます)、独自のインデックスを持ちます。また、他のすべてのクライアントと同様に、API ドキュメントと UI ソースは Blizzard 独自のファイルから取得されます。しかし、グローバル関数の一覧、イベント一覧、CVar レジストリを提供するコミュニティのリソースリポジトリには、まだ WoW Forever 用のブランチがありません。そのため、forever では未知の関数に対する lint チェックは無効になり(動作するコードに警告を出すのではなく、その旨の注記が表示されます)、wow_api_diff で名前だけを検索すると「利用不可」ではなく「ドキュメント化されていません」と表示され、wow_cvar_search には Blizzard の UI が使用する CVar だけが表示されます。デフォルト値、説明、保護フラグは表示されません。upstream にブランチが追加されれば、src/sync/api.ts のブランチテーブルを1行変更するだけで取得できるようになります。
  • アトラスはクライアントごとに構築されるため、それぞれ同期する必要があります。 Retail と WoW Forever では16,788個のアトラス名が共通していますが、Forever にのみ存在するものが3,666個、retail にのみ存在するものが720個あります。そのため、wow_atlas_search は指定したクライアントのデータを使って回答し、使用したビルドを示します。アトラスが構築されていないクライアントでは、その旨とコマンドが表示されます。retail のデータで代用することはありません。
  • BLP のデコードには対応していません。 アート関連ツールが返すのはパス、FileDataID、アトラス座標であり、レンダリング済みの画像ではありません。実際のテクスチャを抽出するには、独自のインストール環境に対して wow.export などの CASC ツールを使用する必要があります。
  • リンターのスコープモデルは概算です。 完全な Lua パーサーではなく、スコープスタックを備えた字句解析器です。曖昧なコードでは、警告を控えめに出すように設計されています。

トラブルシューティング

Claude Desktop にサーバーが表示されません。 ウィンドウを閉じるだけでなく、システムトレイから完全に終了してください。JSON が有効で、バックスラッシュが二重になっていることを確認してください。

「Cannot find module ... dist/index.js」。 これはクローンから実行する場合にのみ該当します。npm run build を実行し忘れたか、設定内のパスが間違っています。パスは絶対パスである必要があります。npx では "command": "npx", "args": ["-y", "hated-wow-mcp"] を使用してください。この場合、間違えるパスはありません。

UI ソース、アート、アイコンの検索結果が返ってきません。 これらのデータには初回の同期が必要です。npx -y hated-wow-mcp sync all を実行するか(クローンの場合は npm run sync-all)、その後 wow_data_status を確認してください。どこを検索したか、データがいつ構築されたかが表示されます。

同期に失敗します。 UI ソースのステップには、PATH 上に git が必要です。アトラスのステップで HTTP 403 が発生した場合は、クイックスタート の wago.tools に関する注記を確認してください。

アップデート後もデータが古いようです。 npx はパッケージをキャッシュします。npx -y hated-wow-mcp@latest で最新リリースを強制するか、npm cache clean --force でキャッシュを消去してください。wow_api_stats で実際に読み込まれているインデックスを確認できます。

「Filename too long」/「Clone succeeded, but checkout failed」(Windows)。 Blizzard のファイル名には、それだけで108文字あるものがあります。そのため、クローン先のパスが深いと、Windows の260文字制限を超える可能性があります。同期スクリプトは core.longpaths=true を git に渡して対処します。それでも問題が発生する場合は、より短い場所にクローンしてください。パスは約150文字未満にしてください(C:\dev\hated-wow-mcp なら十分な余裕があります)。または、Windows 全体で長いパスを有効にしてください。


コントリビューション

Issue やプルリクエストは、こちらで歓迎しています。 github.com/RdyGaming/hated-wow-mcp。

CONTRIBUTING.mdでは、開発環境のセットアップ、2つのデータセットの違い、ツールを追加する前に知っておくべきことについて説明しています。参加にあたっては、行動規範が適用されます。

最も役立つ報告は、結果が何も返らないケースではなく、誤った結果を返す検索についてのものです。実際の挙動をどのように確認したかを尋ねる専用の Issue テンプレートがあり、ゲーム内で修正を検証できます。

セキュリティ上の問題を発見しましたか?非公開で報告してください。詳しくはSECURITY.mdをご覧ください。

ライセンス

MIT — LICENSEをご覧ください。

Blizzard Entertainment とは提携しておらず、同社から承認を受けてもいません。World of Warcraft は Blizzard Entertainment, Inc. の商標です。ゲームデータはすべて実行時に公開コミュニティミラーから取得しており、このプロジェクトによる再配布はありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。