Skip to main content
Glama
warapp-mcp

warapp-mcp

by chrischall
README.md
# warapp-mcp

Read-only [war.app](https://war.app) (Warzone) game advisor MCP server for Claude. It reads
your games through war.app's per-player **GameFeed** API and helps you think about them:
players and settings, the map's bonuses and chokepoints, the board, and routes between
territories. It never submits orders.

> This project was developed and is maintained by AI (Claude Code). Use at your own discretion.

## Setup

1. Sign in to war.app in a browser and open <https://war.app/API/GetAPIToken> to see your
   API token. Changing your war.app password rotates it.
2. Add the server to your MCP client:

   ```json
   {
     "mcpServers": {
       "warapp": {
         "command": "npx",
         "args": ["-y", "@chrischall/warapp-mcp"],
         "env": {
           "WARAPP_EMAIL": "you@example.com",
           "WARAPP_API_TOKEN": "<your token>"
         }
       }
     }
   }
   ```

3. Call `warapp_healthcheck` to confirm war.app accepts the credentials.

| Variable | Required | |
|---|---|---|
| `WARAPP_EMAIL` | yes | The email address you sign in to war.app with. |
| `WARAPP_API_TOKEN` | yes | Your API token from <https://war.app/API/GetAPIToken>. |
| `WARAPP_ENV_FILE` | no | A dotenv file to read the two above from (default `~/.config/warapp-mcp/.env`). Values already in the environment win. |

The server starts without credentials and reports what is missing on the first call
that needs them.

## Tools

| Tool | |
|---|---|
| `warapp_healthcheck` | Check that war.app accepts your email and API token. |
| `warapp_get_game` | A game's state, turn, players (and who has committed orders), settings digest and map. `view`: compact / full / raw. |
| `warapp_get_map` | The game map's bonuses ranked easiest first, plus chokepoints. Filter by `bonus` name to see one bonus's territories, borders and entry points. |
| `warapp_analyze_board` | Advice for one `player` from the current board: income, the bonuses closest to completion with armies needed, and visible threats. Needs a board; lobbies have none. The board parser is unverified, so the advice states its assumptions. |
| `warapp_plan_route` | Shortest path between two territories, given by name or id. |

All tools are read-only. Player, game, map and chat text comes back marked as untrusted third-party content.

## Skills

The package (and the Claude Code plugin) ships two skills under `skills/`:

- **warapp-mcp** — which tool answers which question, and how the tools behave in mcp-host context groups.
- **warapp-api** — the same GameFeed reads from a shell with curl and jq, no server needed. Source
  `skills/warapp-api/scripts/warapp.sh` (bash or zsh) for `warapp_game`, `warapp_map` (cached per map)
  and `warapp_feed`; it reads `WARAPP_EMAIL` / `WARAPP_API_TOKEN` from the environment or
  `~/.config/warapp-mcp/.env` and never prints the token.

## Development

```sh
npm install
npm run build      # tsc --noEmit + esbuild bundle → dist/bundle.js
npm test           # typecheck + vitest
```

## License

MIT

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct target: authentication diagnostics, game state, map bonuses/chokepoints, board advice, and route finding. The descriptions explicitly cross-reference related tools and clarify when to use map-only versus board-dependent analysis. There is no meaningful overlap that would cause misselection.

Naming Consistency4/5

All tools use the same `warapp_` prefix and consistent snake_case, with mostly verb_noun names like `get_game`, `get_map`, `analyze_board`, and `plan_route`. `warapp_healthcheck` is a minor deviation because it is noun-style rather than verb_noun, but it remains clear.

Tool Count5/5

Five tools is well-scoped for a focused read-only Warzone analysis server. Each tool covers a distinct capability without filler or excessive granularity.

Completeness4/5

The surface covers authentication diagnosis, game lookup, map analysis, board analysis, and route planning, which is strong for a read-only advisory suite. The main gap is the absence of a list/search games operation, meaning agents need a game id from elsewhere before they can use most tools.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues