Skip to main content
Glama
DouganRedhammer

WoW Armory MCP Server

WoW Armory MCP Server

A Model Context Protocol (MCP) server that provides access to World of Warcraft Armory data and functionality.

Overview

This MCP server enables AI assistants to interact with World of Warcraft character information through Blizzard's Armory website, providing tools for character lookups and reputation tracking.

Related MCP server: wow-mcp

Prerequisites

  • Python 3.8 or higher

  • uv package manager

  • Git

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd wow-armory-mcp
  2. Set up virtual environment:

    uv venv
  3. Install dependencies:

    uv pip install -r pyproject.toml

Note: The command installs dependencies from pyproject.toml rather than a traditional requirements.txt file.

Configuration

Claude Desktop Integration

To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop settings:

Location of config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Configuration:

{
  "mcpServers": {
    "wow-armory": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/wow-armory-mcp",
        "run",
        "server.py"
      ]
    }
  }
}

Important: Replace /path/to/your/wow-armory-mcp with the actual absolute path to your cloned repository.

Environment Variables

If your server requires API credentials or configuration, create a .env file in the project root:

# Add any required environment variables here
# Example:
# WOW_API_KEY=your_api_key_here

Usage

Once configured, restart Claude Desktop. The WoW Armory server will automatically start when Claude needs to access WoW-related information.

Available Tools

The server provides tools for interacting with WoW Armory data:

  • Character Information - Get detailed character information including level, class, race, and gear

  • Character Reputation - Retrieve character reputation standings with various factions

Development

Running the Server Manually

For development and testing:

# Activate the virtual environment
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Run the server
python server.py

Project Structure

wow-armory-mcp/
├── server.py          # Main MCP server implementation
├── pyproject.toml      # Project dependencies and metadata
├── .env               # Environment variables (create this)
├── README.md          # This file
└── src/               # Source code directory
    ├── __init__.py
    ├── armory/        # Armory API client
    ├── tools/         # MCP tool implementations
    └── utils/         # Utility functions

Troubleshooting

Common Issues

  1. "Command not found: uv"

  2. "Permission denied" errors

    • Ensure the path in your Claude Desktop config uses forward slashes, even on Windows

    • Verify the absolute path is correct

  3. API authentication failures

    • Verify any required API credentials are properly configured

    • Check your .env file if authentication is required

  4. Server won't start

    • Verify all dependencies are installed: uv pip list

    • Check the server logs for specific error messages

Debugging

Enable debug logging by setting the environment variable:

export MCP_LOG_LEVEL=debug

Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make your changes and add tests

  4. Commit your changes: git commit -am 'Add some feature'

  5. Push to the branch: git push origin feature-name

  6. Submit a pull request

License

MIT License

Copyright (c) 2025 Daniel Franklin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Support

For issues and questions:

  • Open an issue on GitHub

  • Check the MCP documentation

  • Review Blizzard's Armory website documentation

Changelog

[1.0.0-beta] - 08-27-2025

  • Initial release

  • Basic character and guild lookup functionality

  • Integration with Claude Desktop

Available Tools

2 tools
get_character_infoA

Retrieves the World of Warcraft character page from Blizzard's Armory website. The LLM can then interpret this page to answer questions about the character.

ParametersJSON Schema
NameRequiredDescriptionDefault
realmYesThe realm (server) where the character resides. E.g., 'akama'
character_nameYesThe name of the character to retrieve information for. E.g., 'bob'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral burden. It communicates the main behavior—retrieving a web page—and indicates the output is page content rather than structured data, but it does not disclose potential concerns like page size, parsing difficulty, external site availability, rate limits, or error behavior.

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 two concise sentences: the first states the action, the second states the purpose. Both sentences earn their place and the key information is front-loaded.

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 two-parameter retrieval tool with an output schema, the description names the resource, the returned artifact, and the intended downstream use. It could add sibling guidance or behavioral caveats, but nothing critical is missing for correct invocation.

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?

The schema already documents both parameters with examples and has 100% description coverage, so the baseline is 3. The description adds no additional parameter-level detail or format constraints.

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 it retrieves the World of Warcraft character page from Blizzard's Armory, which is a specific verb and resource. It does not explicitly call out the sibling tool get_character_reputation, so differentiation relies on the phrase 'character page' rather than a direct contrast.

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 second sentence provides a clear intended use: the LLM can interpret the returned page to answer questions about the character. It gives context but does not mention when to use get_character_reputation instead, so explicit when-not/alternative guidance is missing.

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

get_character_reputationA

Retrieves the World of Warcraft character reputation page from Blizzard's Armory website. The LLM can then interpret this page to answer questions about the character.

ParametersJSON Schema
NameRequiredDescriptionDefault
realmYesThe realm (server) where the character resides. E.g., 'akama'
character_nameYesThe name of the character to retrieve information for. E.g., 'bob'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the tool fetches a webpage from an external site, but provides no information about possible errors, rate limits, authentication, page format, or how the output is structured. This is minimal disclosure for the agent to predict runtime behavior.

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, both earning their place. The action and resource are front-loaded, and the second sentence clarifies how the output should be consumed. There is no filler, redundancy, or irrelevant detail.

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?

The tool is simple (2-param read operation) and an output schema exists, so the description need not explain return values. It is adequate for basic invocation, but it lacks any mention of when to prefer this over get_character_info or what to expect if the page is unavailable, making it slightly incomplete for robust agent decision-making.

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%, so the baseline is 3. The description adds no new meaning beyond the schema's clear definitions of 'realm' and 'character_name'. It correctly names 'character' but does not elaborate on parameter syntax or edge cases beyond what the schema already provides.

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 a specific verb ('Retrieves') and resource ('World of Warcraft character reputation page from Blizzard's Armory website'). It accurately differentiates the tool from the sibling get_character_info by limiting scope to reputation, so an agent can tell them apart without opening schemas.

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 ('The LLM can then interpret this page to answer questions about the character'), giving context that this tool is for reputation-related questions. However, it does not explicitly mention when not to use it or compare it to the sibling get_character_info, leaving the selection logic partly to inference.

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

TDQS

A3.5/5.0
Disambiguation4/5

The two tools have clear, distinct purposes: one retrieves general character info and the other reputation. While both fetch pages from the Armory, their descriptions make the difference obvious, so an agent is unlikely to confuse them.

Naming Consistency5/5

Both tool names follow an identical verb_noun pattern: get_character_info and get_character_reputation. The naming is perfectly consistent and predictable.

Tool Count2/5

With only 2 tools, the server feels very thin for a World of Warcraft Armory domain, which typically offers character, guild, achievement, mount, and item data. The count is far below what would be expected for the apparent scope.

Completeness2/5

The server covers only basic character info and reputation, leaving major aspects like achievements, mounts, gear, and guilds unaddressed. Agents would face significant gaps when answering common WoW character questions.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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.
    8
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search and retrieve documentation for Vanilla World of Warcraft Lua APIs, including function signatures, categories, protected flags, and addon scaffolding.
    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.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DouganRedhammer/WoWArmoryMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server