npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

wardogs-mcp

v0.2.3

Published

Unofficial MCP server for the wardogs.zone base builder: an AI assistant designs and renders WARDOGS FOB layouts from a plain text brief. Built on the Wardogs Zone community hub.

Readme

wardogs-mcp

An MCP server that lets an AI assistant design forward operating bases (FOBs) for the shooter WARDOGS, using the wardogs.zone base builder, from a plain text brief.

The builder, its piece data and the base hub are the work of the Wardogs Zone team, the volunteers behind the Wardogs Zone Discord, who built a free, fan-made community hub for the game. This project exists because their builder is excellent. It is an independent tool, not affiliated with or endorsed by Wardogs Zone, BULKHEAD or Team17.

The builder stores a base as a single text string in the browser's draft slot. This server does the geometry (socket pitch, stacking, rings, validation), writes that string into its own Chromium window and reloads the builder so it renders. Other players' hub bases load the same way and can be edited.

It speaks plain MCP over stdio, so it works with any MCP client: Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Zed, Cline, Gemini CLI, Goose and others.

Install

The first browser tool call downloads the Chromium build Playwright drives (a few hundred MB, once, into Playwright's per-user cache) unless it is already installed. Building and validating plans without the browser needs no download.

Any MCP client, via npx

No clone and no build. Add this to your client's MCP config:

{
  "mcpServers": {
    "wardogs": {
      "command": "npx",
      "args": ["-y", "wardogs-mcp"]
    }
  }
}

Where that config lives depends on the client:

| Client | Config file | | --- | --- | | Claude Code | .mcp.json in the project folder, or claude mcp add | | Claude Desktop | Settings > Developer > Edit Config | | Cursor | .cursor/mcp.json | | VS Code | .vscode/mcp.json | | Windsurf | ~/.codeium/windsurf/mcp_config.json | | Zed | settings.json, under context_servers | | Cline | cline_mcp_settings.json | | Gemini CLI | ~/.gemini/settings.json |

Some clients nest the same block under a different key (servers in VS Code, context_servers in Zed). The command and args are the same everywhere.

Plans, screenshots, the dataset cache and the browser profile go in wardogs-mcp in your home folder. Set WARDOGS_HOME to move them. The first run fetches the piece dataset from wardogs.zone, so it needs the network once.

Claude Desktop, one click

Download wardogs-mcp.mcpb from the latest release and double-click it. Claude Desktop shows an install prompt; click Install. This route needs no Node.js. Files go in Documents/wardogs-mcp.

From source

git clone https://github.com/MudcrabWarrior/wardogs-mcp.git
cd wardogs-mcp
npm run setup

Node.js 20 or newer. npm run setup installs dependencies, downloads Chromium, fetches the piece dataset from wardogs.zone and compiles dist/. It needs the network once; the dataset is not tracked in the repo.

Point your client at the built server, using the real absolute path (/path/to/wardogs-mcp/dist/server.js on macOS and Linux):

{
  "mcpServers": {
    "wardogs": {
      "command": "node",
      "args": ["C:\\path\\to\\wardogs-mcp\\dist\\server.js"]
    }
  }
}

Claude Code needs no config from source: .mcp.json in the folder registers the server when Claude Code runs from there. Full steps are in SETUP.md. A checkout keeps plans, screenshots and the browser profile in the package folder, and plans/ holds a worked example, loaded with plan_load vauban-mega-v1.

Usage

Describe the base you want:

New base. FOB at centre. Hesco small ring 14 m out with a gate on the south side.
Mortar pit north-east inside the ring, two mortars. Stack the ring two high on the
north side only. Keep supplies under 900. Push it and screenshot from camera 2.

Units are metres on the flat pad, and yaw is in degrees. In ring(), north is -z, south is +z, east is +x and west is -x. Every piece must sit inside a FOB's 60 m square.

The ruleset

Good bases need more than geometry: vault heights, standoff distances, where bastions go, which builder quirks to work around. That ruleset is served over the protocol by the rules tool, so every client gets it without any per-client setup. Assistants are told to call rules before planning a base; if yours does not, ask it to. The same text is also exposed as the resource wardogs://rules, and the source file is AGENTS.md.

Hub sign-in and publishing

  1. Ask for browser_open.
  2. In the Chromium window that appears, click Sign in (Discord) and complete it yourself.
  3. The session is kept in .profile inside the writable home folder.
  4. hub_save fills the save dialog. You complete any captcha and click Save.

Nothing types credentials on your behalf, and nothing outside .profile stores them. Building and screenshotting bases do not require sign-in.

Two things this tool will never do, by agreement with the Wardogs Zone team: it does not complete or work around the captcha, and it does not save to the hub by itself. The Save click is always yours.

Tools

  • Rules: rules
  • Plan: plan_new, plan_status, plan_pieces, plan_code, plan_load_code, plan_save, plan_load, plan_list, undo, redo
  • Edit: place_fob, place, wall_run, ring, stack, move, set_pose, remove, remove_all
  • Browser: browser_open, browser_push, browser_pull, browser_readback, browser_screenshot, browser_key, browser_close
  • Hub: hub_import, hub_save
  • Data: list_buildables, describe_buildable, data_refresh

Development

src/data.ts     fetch and cache the piece dataset
src/plan.ts     codec, snapping, stats, validation (ports of the site's functions)
src/editor.ts   working plan, wall runs, rings, stacking, undo
src/browser.ts  Playwright control of the builder
src/server.ts   MCP tools
scripts/        dataset extract and .mcpb bundle build

Scripts, tests and the pull request process are in CONTRIBUTING.md.

Known limits

  • Local clients only. The server drives a real Chromium on your machine and keeps a browser profile on disk. Hosted and remote setups (web chat connectors, server-side MCP) cannot run it.
  • Open pad only. Map sites (Kavkazi, Europe, North America) need terrain heights and are not wired up yet.
  • Overlap checks use whole-piece boxes, while the site checks per mesh. A mortar inside a bunker is valid on the site but reports as an overlap here. Treat overlap as a warning and trust the builder's own status line after browser_push.
  • Plans loaded through the draft slot skip the site's placement checks, so an invalid plan still renders. plan_status is the guard.
  • Take a screenshot after the first push and mirror yaw if the layout comes out the wrong way round.

Support

wardogs.zone does not support this tool; its maintainers have kindly allowed it, and that is all. Problems with wardogs-mcp go to the issue tracker here or to the wardogs-mcp thread in the field-manual forum of the Wardogs Zone Discord (join the server first, or the link will not open). Problems with the builder itself are theirs, and their normal channels apply.

Credits

What this server takes from the site: it reads the piece dataset out of the builder's own script bundle (the page and its script chunks, about 2.4 MB, normally once a week, cached locally and never redistributed) and drives the builder in a local Chromium window under your own Discord sign-in. Publishing to the hub is always a button you click yourself.

Licence

MIT. See LICENSE. The licence covers this repository's code only, not the site's data or the builder it drives.