Skip to main content
Glama
MangelSpec

wowaudit-mcp-server

by MangelSpec

wowaudit-mcp-server

文書化された WoWAudit API 向けの MCP サーバーです。ギルド名簿、レイド計画、出席状況、週間アクティビティ、ウィッシュリスト、戦利品履歴、アプリケーションを構造化されたツールとして公開し、Raid Lens やその他の MCP クライアントで利用できます。

このサーバーは stdio と @modelcontextprotocol/server 2.x を使用しています。現在の MCP プロトコルに対応し、また古いクライアント向けに SDK のレガシーな 2025 年対応の initialize ハンドシェイクも保持しています。すべての結果にはネイティブの structuredContent に加え、構造化結果を利用しないクライアント向けに同じ JSON がテキストブロックとして含まれます。

要件

  • Node.js 20 以降。

  • WoWAudit チーム API キー。チーム管理者はチームの 設定 > チーム > API キー フィールドからコピーするか、https://wowaudit.com/api を開いてチームを選択して取得できます。現在 WoWAudit は読み取り専用のスコープ付き公開 API キーを提供していません。このサーバーはデフォルトでローカルに読み取り専用アクセスを強制します。

Related MCP server: wow-mcp

セットアップ

npm install

.env.example から .env を作成し、次の項目を設定します:

WOWAUDIT_API_KEY=your-team-api-key

サーバーをビルドします:

npm run build

API キーは遅延読み込みされるため、MCP プロセスはキーが設定されていなくても起動し、ツール一覧を表示できます。API コールはキーが利用可能になるまで構造化エラーを返します。

MCP クライアントの設定

MCP クライアントからコンパイル済みのエントリポイントを使用します:

{
  "mcpServers": {
    "wowaudit": {
      "command": "node",
      "args": [
        "C:\\programming\\typescript\\wowaudit-mcp-server\\dist\\index.js"
      ]
    }
  }
}

サーバーは .env を自身のインストール場所からの相対パスで解決します。MCP クライアントの作業ディレクトリは参照しません。認証情報はクライアントの env 設定を通じて提供することも可能です。

セキュリティモデル

WoWAudit チーム API キーはチームの全環境にアクセスできます。サーバーは以下の保護策を適用します:

  • キーは Authorization: Bearer ヘッダーでのみ送信されます。URL、結果、エラーに含まれることはありません。

  • 文書化された /v1/ ルートのみが利用可能です。任意の HTTP ツールはありません。

  • WOWAUDIT_ENABLE_WRITES=true が設定されていない限り、書き込みツールは公開されず、呼び出しもできません。HTTP クライアントは無効時に変更リクエストを独立してブロックします。

  • 破壊的な削除ツールは、呼び出しごとに追加で confirm: true が必要です。

  • アプリケーションツールは WOWAUDIT_ENABLE_APPLICATIONS=true が設定されていない限り無効です。アプリケーションには本人情報、アンケート回答、アップロードファイルの URL が含まれる可能性があるためです。

  • ツールアノテーションは、読み取り専用、べき等、破壊的な操作を最新の MCP クライアントに識別させます。

  • レスポンスはデフォルトで 2 MiB に制限されます。WOWAUDIT_MAX_RESPONSE_BYTES は必要な場合にのみ調整してください。

  • GET レスポンスはプロセス内で 30 秒間キャッシュされます。書き込みが成功するとキャッシュがクリアされます。

アプリケーションツールを有効にしても、チャンネル認証は提供されません。Discord 連携は、それらのツールを公開する前に、役員専用アクセスを強制する必要があります。同様に、マルチギルドボットは、信頼できる Discord ギルド ID を、モデル制御のツール引数外で正しい WoWAudit 認証情報にバインドする必要があります。

設定

変数

デフォルト

目的

WOWAUDIT_API_KEY

API コールに必須

チーム API キー

WOWAUDIT_BASE_URL

https://api.wowaudit.com

API オリジン

WOWAUDIT_REQUEST_TIMEOUT_MS

30000

リクエストタイムアウト(5,000 ~ 120,000 ms)

WOWAUDIT_MAX_RESPONSE_BYTES

2097152

最大 JSON レスポンスサイズ(64 KiB ~ 10 MiB)

WOWAUDIT_ENABLE_WRITES

false

POST、PUT、DELETE ツールを許可

WOWAUDIT_ENABLE_APPLICATIONS

false

機密性の高いアプリケーションツールを許可

デフォルト設定では、11 の非機密 GET ツールが公開されます。WOWAUDIT_ENABLE_APPLICATIONS=true を設定すると、2 つの読み取り専用アプリケーションツールが追加されます。WOWAUDIT_ENABLE_WRITES=true を設定すると、変更ツールが追加されます。厳密に読み取り専用の MCP サーフェスが必要な場合は、この設定をオフのままにしてください。

ツール

以下に示す変更ツールは WOWAUDIT_ENABLE_WRITES=true の場合のみ登録されます。アプリケーションツールは WOWAUDIT_ENABLE_APPLICATIONS=true の場合のみ登録されます。

チームと名簿

ツール

API 操作

wowaudit_get_team

GET /v1/team

wowaudit_get_period

GET /v1/period

wowaudit_list_characters

GET /v1/characters

wowaudit_track_character

POST /v1/characters

wowaudit_update_character

PUT /v1/characters/{id}

wowaudit_untrack_character

DELETE /v1/characters/{id}

アクティビティと出席状況

ツール

API 操作

wowaudit_list_historical_data

GET /v1/historical_data

wowaudit_get_character_history

GET /v1/historical_data/{id}

wowaudit_get_attendance

GET /v1/attendance

レイドと参加表明

ツール

API 操作

wowaudit_list_raids

GET /v1/raids

wowaudit_get_raid

GET /v1/raids/{id}

wowaudit_create_raid

POST /v1/raids

wowaudit_update_raid

PUT /v1/raids/{id}

wowaudit_delete_raid

DELETE /v1/raids/{id}

wowaudit_update_raid はステータスとスケジュールの変更、エンカウンターの有効/無効リスト、参加表明ステータス、コメント、ロール/クラスオーバーライド、選択ステータス、エンカウンター固有の選択に対応しています。

ウィッシュリストと戦利品

ツール

API 操作

wowaudit_list_wishlists

GET /v1/wishlists

wowaudit_get_character_wishlist

GET /v1/wishlists/{id}

wowaudit_upload_wishlist

POST /v1/wishlists

wowaudit_delete_wishlist

DELETE /v1/wishlists/{id}

wowaudit_get_loot_history

GET /v1/loot_history/{seasonId}

全キャラクターのウィッシュリストと戦利品エンドポイントは大きくなる可能性があります。可能な限りキャラクター固有の呼び出しを優先し、コレクションツールでは limit を使用してください。

アプリケーション

ツール

API 操作

wowaudit_list_applications

GET /v1/applications

wowaudit_get_application

GET /v1/applications/{id}

wowaudit_update_application

PUT /v1/applications/{id}

wowaudit_delete_application

DELETE /v1/applications/{id}

アプリケーションは WOWAUDIT_ENABLE_APPLICATIONS=true によって別途制御されます。変更するにはさらに WOWAUDIT_ENABLE_WRITES=true が必要です。

結果のラッパー

成功したツールは次の形式を返します:

{
  "data": {},
  "meta": {
    "endpoint": "/v1/team",
    "method": "GET"
  }
}

limit を受け付けるコレクションツールは、追加で totalItems、returnedItems、truncated を報告します。制限は WoWAudit が応答した後に適用されます。公開 API がサーバーサイドのページネーションを文書化していないためです。

エラーは isError: true、構造化 {"error": "..."}、およびテキストフォールバックを返します。上流のエラーには、利用可能な場合に kind、HTTP status、retryAfterSeconds も含まれます。

開発

npm run dev
npm test

テストではサーバーをコンパイルし、最新およびレガシー両方のプロトコルネゴシエーションを検証し、すべてのツールスキーマとアノテーションを検査し、セキュリティゲートをテストし、実際の API キーを使用せずに HTTP クライアントをテストします。

小規模なライブ読み取り専用チェックの場合は:

npm run test:live

ライブスモークテストは、チーム、期間、名簿、レイド一覧のエンドポイントを呼び出します。アプリケーションツールや書き込みツールは呼び出しません。

WoWAudit API の注意点

  • 公開ドキュメントにはページネーションやレート制限の契約は定義されていません。

  • ドキュメントは主に厳密な再利用可能スキーマではなく応答例を提供しているため、ペイロードフィールドは変更される可能性があります。

  • 埋め込みドキュメントには開発用と思われるサーバー URL が含まれています。このプロジェクトは、確認された本番オリジン https://api.wowaudit.com をデフォルトで使用します。

  • WoWAudit はクエリパラメータでの API キーを受け入れますが、このサーバーは認証情報の漏洩を減らすために、認証ヘッダーのみを意図的に使用しています。

ライセンス

MIT、著作権 WoWAudit MCP Server コントリビューター。

Available Tools

11 tools
wowaudit_get_attendanceA
Read-onlyIdempotent

Get attendance statistics, optionally scoped by instance, encounter, and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.
endDateNo
instanceNo
encounterNoEncounter name or ID. WoWAudit ignores it without instance.
startDateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations clearly declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the tool's safety profile is well-covered. The description adds useful context about optional scoping but does not explain what 'attendance statistics' entail (e.g., format, counts, per-character). Since annotations already communicate the most critical behavioral traits, the description's added value is moderate but nontrivial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and optional filters. Every word adds value; there is no redundancy or filler. This is an excellent example of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (most optional), an output schema, and rich annotations, the description is somewhat minimal. It covers the core scoping options but does not explain what the attendance statistics contain or how to interpret the response. While the output schema may provide structure, the description could be more informative. This is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, meaning most parameters lack descriptions. The description mentions scoping by instance, encounter, and date range, which maps to the instance, encounter, startDate, and endDate parameters. However, the limit parameter's description is already in the schema (cadence 100%), so the description adds no further meaning. The encounter parameter's dependency on instance is covered in the schema description. Overall, the description only partially compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves attendance statistics, with optional scoping by instance, encounter, and date range. This makes the purpose clear and specific, distinguishing it from sibling tools that focus on teams, periods, characters, historical data, raids, wishlists, or loot history. A score of 5 is not given because the description does not explicitly contrast with siblings, though the domain is unique enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use optional filters (instance, encounter, date range) but does not provide explicit guidance on when to use this tool versus alternatives, such as wowaudit_list_historical_data or wowaudit_get_character_history. No exclusions or prerequisites are mentioned. This is a minimal viable score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_character_historyA
Read-onlyIdempotent

Get one character's activity history and best known gear by equipment slot.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWoWAudit character ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds that the tool returns activity history and gear by equipment slot, which is useful output context but does not disclose additional behavioral traits like rate limits, authentication needs, or data retention. Neutral and non-contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that packs essential information. Every word is necessary; no filler or redundancy. Ideal for quick agent scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (so return values are already documented), the annotations cover safety, and the tool has only one well-described parameter, the description is sufficiently complete. No major gaps are present for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the 'id' parameter has a clear description). The description reinforces that the tool operates on a single character, but does not add new meaning beyond the schema. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('one character's activity history and best known gear by equipment slot'). It is specific and distinguishes from sibling tools like wowaudit_get_loot_history or wowaudit_get_character_wishlist by focusing on overall history and gear per slot. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., wowaudit_get_loot_history for loot, wowaudit_list_characters for a roster). It implies single-character scope but does not state exclusions or prerequisites. An agent must infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_character_wishlistB
Read-onlyIdempotent

Get detailed Droptimizer wishlist data for one character.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWoWAudit character ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is clear. The description adds that the data is 'detailed Droptimizer wishlist', but does not explain what 'detailed' means or note any specific behavioral traits (e.g., pagination, data freshness). No contradiction observed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, zero wasted words. Ideal for quick parsing by an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter, full schema coverage, and an output schema defining return shape, the description is nearly complete. Missing a brief clarification of what 'Droptimizer' entails could improve completeness for agents unfamiliar with the domain, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with a single parameter 'id' described as 'WoWAudit character ID.' The description does not add further meaning beyond this, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get' and resource 'detailed Droptimizer wishlist data for one character', making the action specific. However, it does not explicitly differentiate from sibling tool wowaudit_list_wishlists, which could also involve wishlist data, missing a nuance that this is per-character.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like wowaudit_list_wishlists or wowaudit_get_character_history. With ten sibling tools, the absence of contextual usage instructions leaves the agent to infer the appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_loot_historyA
Read-onlyIdempotent

Get loot awarded during a keystone season, including recipients, award responses, old items, notes, and wishlist values.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.
seasonIdYesKeystone season ID from wowaudit_get_period.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. The description adds value by listing the types of data included (recipients, awards, etc.), which is beyond the annotations. However, it does not mention pagination behavior or limits, which are partially covered in the schema description for the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the tool's purpose and key output details. No unnecessary words or repetition. Slightly more detail could be added without harming conciseness, but it's well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (2 params, read-only, output schema exists), the description adequately covers what the tool does and what it returns. The schema and annotations fill in the remaining details. Could mention that seasonId is required, but that is already in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have detailed descriptions in the schema (100% coverage), including the seasonId reference to another tool and the limit behavior with pagination note. The tool description does not add any additional parameter-level information, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves loot awarded during a keystone season, listing specific included fields (recipients, award responses, old items, notes, wishlist values). This distinguishes it from sibling tools like wowaudit_get_character_history (individual character) and wowaudit_list_historical_data (broader history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing loot history for a season, but does not explicitly differentiate from alternatives like wowaudit_get_character_history or wowaudit_list_historical_data. No direct guidance on when to prefer this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_periodA
Read-onlyIdempotent

Get the current Blizzard keystone period and WoWAudit season identifiers used by historical and loot tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, providing a strong behavioral baseline. The description adds context by revealing the tool returns identifiers discovered and used by other tools, which justifies the non-destructive, idempotent nature. However, it doesn't describe any additional behavioral traits like whether the season identifiers are stable within a season or change on reset, so the description adds limited value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 16 words that front-loads the action and resource. Every part of the sentence earns its place: it specifies what is retrieved (period and season identifiers) and why ('used by historical and loot tools'). There is no wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters, has annotations covering its safety profile, and has an output schema (which is not null), the description need not explain return values. The single sentence adequately addresses the tool's purpose and context. The score would be 5 if it briefly noted that this is a static, reference-data endpoint (e.g., 'returns identifiers that change infrequently').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters and the schema description coverage is 100%, so there are no parameters to document. The description adds no parameter information but none is needed. The score reflects that the description provides no misleading or missing parameter details, and the baseline for a zero-parameter tool is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and clearly identifies the resources ('current Blizzard keystone period and WoWAudit season identifiers'). It also distinguishes its purpose from sibling tools by explicitly stating the returned identifiers are 'used by historical and loot tools', which helps differentiate it from tools like wowaudit_get_team or wowaudit_get_character_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the context of use: these identifiers are consumed by other tools (historical and loot tools). While it doesn't explicitly say when not to use this tool or name alternative tools, the mention of downstream consumers provides clear guidance on when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_raidA
Read-onlyIdempotent

Get a raid's detailed signups, comments, selections, and enabled encounter plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWoWAudit raid ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value by listing the specific data fields returned (signups, comments, selections, enabled encounter plan), which is behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 12 words, front-loaded with the verb and resource, and contains no extraneous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, rich annotations, and existence of an output schema, the description sufficiently explains what the tool returns. No additional context (e.g., pagination, limits) seems necessary for this simple read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the single parameter 'id' has a description: 'WoWAudit raid ID.'). The description adds no new meaning beyond the schema; it merely implies the parameter is the raid ID. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'raid', and specifies the details included: signups, comments, selections, and enabled encounter plan. This distinguishes it from sibling tools like wowaudit_get_team or wowaudit_list_raids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching detailed raid information, but does not explicitly contrast with alternative tools or provide when-not-to-use guidance. The agent can infer from resource name and sibling list, but no explicit context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_get_teamA
Read-onlyIdempotent

Get the authenticated WoWAudit team, guild identity, refresh timestamps, raid-day schedule, and wishlist freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the agent knows this is a safe read operation. The description adds value by specifying the exact data returned (team, guild identity, refresh timestamps, raid-day schedule, wishlist freshness), which is beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently lists the key components returned. Every phrase earns its place; there is no wasted text. It is front-loaded with the primary action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, has an output schema), the description is complete. It covers the main output categories, and since the output schema exists, the agent can infer the exact structure. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0), so the input schema is trivially covered at 100%. The description does not need to explain parameters, and the baseline for 0-parameter tools is 4. The description does not add parameter semantics, but that is acceptable since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Get' and the resource 'authenticated WoWAudit team' and lists specific sub-components (guild identity, refresh timestamps, raid-day schedule, wishlist freshness). This clearly distinguishes it from siblings like get_character_history or get_raid, which operate on different entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. It does not mention that this is for team-level configuration versus character or raid data, nor does it specify when not to use it. Given the sibling list, explicit usage context would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_list_charactersA
Read-onlyIdempotent

List tracked roster characters with realm, class, role, rank, tracking status, note, and WoWAudit identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds behavioral context by mentioning the data fields and that the upstream API does not document pagination, which is useful for understanding behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Every element (verb, resource, fields) earns its place. Front-loaded with 'List tracked roster characters'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameter count is 1, all schema parameters are described, annotations cover safety, and an output schema exists, the description is complete enough. The pagination caveat adds useful context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the single parameter 'limit' is fully described in the schema), so baseline is 3. The description does not add any additional semantics beyond the schema's parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), identifies the resource ('tracked roster characters'), and enumerates the fields returned (realm, class, role, etc.). This clearly differentiates it from sibling tools like wowaudit_list_raids or wowaudit_get_character_history, which operate on different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for getting a roster overview, but it does not explicitly state when to use this vs. alternatives like wowaudit_get_team or wowaudit_list_historical_data. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_list_historical_dataA
Read-onlyIdempotent

List roster activity for a Blizzard period, including completed dungeons, world quests, and Great Vault options.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.
periodNoBlizzard period from wowaudit_get_period.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide strong behavioral cues: readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds further value by noting the items listed (dungeons, world quests, Vault), which goes beyond annotations. However, it doesn't mention the lack of pagination or potential response size limits, which would be useful but not required given the annotations already assure safety and idempotence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is clear and to the point. It conveys the key purpose and content without any extraneous words. It earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description need not explain return values. With 2 parameters (0 required), strong annotations, and clear purpose, the description is nearly complete. The only minor gap is the lack of mention about pagination or the fact that upstream API does not support it, but the input schema already notes that in the 'limit' description. Overall very sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add any parameter semantics beyond the schema—it doesn't explain how 'limit' affects the output or how 'period' relates to the Blizzard context. Both parameters are well-documented in the schema already, so no deduction, but no added value either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List roster activity for a Blizzard period' and lists specific content types (completed dungeons, world quests, Great Vault options), which is specific and actionable. However, it does not distinguish this tool from sibling tools like wowaudit_get_character_history or wowaudit_get_loot_history, which might also list similar data, so it's not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing roster activity for a period, but provides no guidance on when not to use it or how it compares to alternatives like wowaudit_get_character_history. There's no explicit context about prerequisites (e.g., needing a valid period from wowaudit_get_period) or limitations (e.g., no pagination support). The annotation 'idempotentHint' suggests safe repeated calls, but this is not mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_list_raidsA
Read-onlyIdempotent

List upcoming raids, optionally including past raids, with schedule, instance, difficulty, status, and signup counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.
includePastNoInclude past raids in addition to upcoming raids.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description bears less burden. The description adds context that the output includes schedule, instance, difficulty, status, and signup counts, which is helpful but does not disclose other behavioral traits (e.g., pagination limits, authentication needs, or performance characteristics). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 15 words, front-loaded with the verb 'List', and efficiently conveys the main purpose and key output fields without any filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 optional parameters, output schema exists, annotations comprehensive) the description covers the essential scope (upcoming/past raids, key fields). Some minor gaps exist (default limit, time horizon for 'upcoming'), but overall it is sufficiently complete for a read-only list tool with good schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both limit and includePast have descriptions). The tool description adds minimal extra meaning: 'optionally including past raids' maps to includePast, but the schema already covers defaults and constraints. The limit parameter's note about undocumented pagination is in the schema, not the description, so the description does not add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists raids with a specific verb ('list') and resource ('raids'), and includes optional past raids and key data fields (schedule, instance, difficulty, status, signup counts). This distinguishes it from siblings like wowaudit_get_raid (single raid) and wowaudit_list_historical_data (historical data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like wowaudit_get_raid or wowaudit_list_characters. There is no explicit when/when-not context or mention of sibling tools, leaving the agent to infer usage solely from the name and purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wowaudit_list_wishlistsA
Read-onlyIdempotent

List character Droptimizer wishlists and item upgrades. Prefer wowaudit_get_character_wishlist when one character is known because this response can be large.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum top-level collection entries returned after WoWAudit responds. The upstream API does not document pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, covering safety. The description adds valuable behavioral context: the response can be large and the limit parameter's pagination caveat. This exceeds what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the tool's purpose, second provides usage guidance. No wasted words, front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return values. It covers purpose, usage preference, and response size. Could mention that without a limit all wishlists are returned, but this is minor. Overall complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema fully documents the optional limit parameter (integer, min/max, description about pagination). The description does not add new semantics beyond the schema, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists character Droptimizer wishlists and item upgrades. It also distinguishes from the sibling tool wowaudit_get_character_wishlist by noting that this tool is for broader lists and can produce large responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends preferring wowaudit_get_character_wishlist when a single character is known because this response can be large. This provides clear guidance on when to use each tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedwowaudit_get_attendance
    • First observedwowaudit_get_character_history
    • First observedwowaudit_get_character_wishlist
    • First observedwowaudit_get_loot_history
    • First observedwowaudit_get_period
    • First observedwowaudit_get_raid
    • First observedwowaudit_get_team
    • First observedwowaudit_list_characters
    • First observedwowaudit_list_historical_data
    • First observedwowaudit_list_raids
    • First observedwowaudit_list_wishlists

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target distinct resources: team/period/characters/raids/attendance/wishlists/loot. However, wowaudit_list_historical_data and wowaudit_get_loot_history both involve historical activity and loot, which could cause some confusion despite different scopes.

Naming Consistency5/5

All tools follow a consistent wowaudit_verb_noun pattern (e.g., list_raids, get_raid, get_attendance). The naming is predictable and easy to understand.

Tool Count5/5

With 11 tools, the server covers a focused domain (WoWAudit team management) without unnecessary clutter. Each tool serves a clear purpose and the count feels well-scoped.

Completeness4/5

The tool set covers team info, roster characters, raids, attendance, wishlists, and loot history. Missing are write operations (e.g., add character, update wishlist) but for a read-only audit tool, the coverage is solid. Minor gap: no direct tool for managing raid signups.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive World of Warcraft guild analytics, player character analysis, and auction house market data through the Blizzard Battle.net API. Supports both Retail and Classic WoW with real-time market insights, guild roster management, and demographic analytics.
    -
  • F
    license
    Not graded
    quality
    F
    maintenance
    A comprehensive MCP server that wraps the complete World of Warcraft retail API into 197 tools for Game Data and Profile information. It enables users to query character statistics, achievements, collections, and game mechanics across all global regions and locales.
    10
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Discord server inspection, structural editing, blueprint-based setup and audit, with read/write tools and dry-run safety.
    162 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for World of Warcraft that provides 26 tools for accessing characters, guilds, realms, game data, and auction house info via Blizzard's Battle.net APIs. It enables natural-language queries for character audits, Mythic+ reviews, market analysis, and more.
    -