angel-menu-mcp
angel-menu-mcp
An MCP (Model Context Protocol) server that lets an AI client — Claude, or any MCP host — enumerate and toggle the in-game menu of an Angel overlay for automated testing. Flip ESP boxes, aim assist, radar modes, distance sliders, etc. from the AI, then observe the result in-game.
It talks to the overlay over the overlay's dedicated AI Menu Control lane (/agent-ui) — a channel separate from the web-mv memory-write bridge. This server is the WebSocket endpoint — the overlay connects to it — so no separate relay is required.
Two ways to drive the menu: this repo is the AI / MCP path. If you'd rather toggle the menu from a browser or phone, the same three verbs are built into the web-mv memory viewer as a "Menu Control" tab — see MEMORY_VIEWER.md. Different port and transport; pick one at a time.
How it fits together
Claude / MCP host
│ (MCP stdio: list_features / get_feature / set_feature)
▼
angel-menu-mcp ──listens──▶ ws://127.0.0.1:9010/agent-ui
▲ │
└────── ui_* JSON frames ──────┘ (Angel overlay connects here)Related MCP server: textual-mcp-server
Works with any Angel script
The lane core is control-agnostic — nothing in it is specific to one script. To add it to any script (e.g. bodycam.as), see INTEGRATION.md: paste angel-menu-control.as, run the codegen (generate-registry.mjs) to auto-detect every menu control, and wire four one-line hooks. No per-control code by hand.
The codegen reads each control's id (m_<var>), its label (the real menu text), kind/range/options, danger, and the surrounding tab / subtab / category — so a client reproduces your overlay's own grouped, labeled menu instead of a flat list. Re-run it whenever the menu changes.
Requirements
Node.js ≥ 18
An Angel overlay with the AI Menu Control lane (built into
huntshowdown.as; added to any other script via INTEGRATION.md).
Install
cd angel-menu-mcp
npm installRegister with Claude Code
claude mcp add angel-menu -- node /absolute/path/to/angel-menu-mcp/index.jsOr wire it into any MCP host as a stdio server whose command is node index.js.
Connect the overlay
Start your MCP host (it launches this server).
In the overlay, open Others › Debug and click "AI Menu Control: Connect". The overlay connects to
ws://127.0.0.1:9010/agent-ui(this server).Ask the AI to
list_features. If it reports "Overlay NOT connected", repeat step 2.
The overlay allows one
ws::socket at a time, shared between WebRadar, the web-mv WRITE lane, and this lane. Turn WebRadar off (and disconnect the web-mv WRITE lane) before connecting AI Menu Control.
Tools
Tool | Args | What it does |
| — | Every control: id, label (the real menu text), kind ( |
|
| Read one control's current value. |
|
| Set one control. Checkbox → |
| — | Whether the overlay is connected. |
Danger controls & arming
Controls that write game memory — aim assist, chams (all variants), no-sway / no-recoil / no-spread, force-bone, the cvar tweaks — are marked danger: true. set_feature on them fails with a "disarmed" error unless the operator has clicked "AI Menu Control: ARM danger controls" in the overlay first.
Arming is deliberately a live human click in the overlay and is not exposed as a tool — the AI can flip visual features freely, but a person must consciously arm anything that touches the game process. Overlay-only visuals (ESP boxes, names, radar, external/drawn chams, debug panels) are always settable.
Configuration (env vars)
Var | Default | Meaning |
|
| bind host |
|
| bind port (must match the overlay's |
|
| ws path |
|
| per-request reply timeout |
Notes
ui_setis applied on the overlay's render thread and the result is reported after it lands, so a returned value reflects any dependent-visibility recompute the overlay does.One overlay peer at a time; a reconnect replaces the previous handle.
Loopback-bound by default. There is no authentication on the lane — do not expose the port off-host.
License
MIT
Available Tools
4 toolsconnection_statusB
Whether the Angel overlay is currently connected to this server.
Inputs: no named parameters.
get_featureA
Read one menu control's current value by its name (from list_features).
Inputs: name (required).
list_featuresA
List every menu control the overlay exposes (feature checkboxes, sliders, comboboxes) with its current value. danger:true controls (aim, chams, no-sway/recoil/spread, force-bone, cvar tweaks) write game memory and require the operator to have armed writes in the overlay.
Inputs: no named parameters.
set_featureA
Set one menu control. For a checkbox pass value true/false; for a slider or combobox pass an integer (combobox = option index from list_features). Danger controls fail unless writes are armed in the overlay. Returns the value read back after it was applied.
Inputs: name (required), value (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a single clear responsibility: enumerate all controls, read one control, write one control, or check connection state. list_features and get_feature differ by scope (all vs one), so an agent should not misselect between them.
The feature tools follow a consistent verb_noun pattern: list_features, get_feature, set_feature. connection_status breaks that pattern by being noun-only instead of something like get_connection_status, but the overall naming is still predictable.
Four tools is well-scoped for a focused overlay-control server. Each tool covers a necessary operation without redundancy or bloat.
The set provides enumeration, single-value reads, writes, and connection status, which fully covers the menu-control domain. Since the controls are fixed features rather than user-created resources, create/delete operations are not required.
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
MCP Server for an Agent Task Marketplace
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP serverr for Lastest to manage your tests, AI create them, run them, and speed up AI-development.22Functional Source , Version 1.1, ALv2 Future
- AlicenseAqualityDmaintenanceAn MCP server that lets AI agents launch, interact with, and inspect Textual TUI applications headlessly.124MIT
- AlicenseNot gradedqualityCmaintenanceA set of MCP servers that allow AI assistants to control a Minecraft server and client, including running commands, managing plugins, taking screenshots, and calling arbitrary API methods via reflection.15MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that enables AI agents to control Windows by clicking, typing, and navigating with a visible cursor overlay, using a layered approach (native UIA, browser CDP, pixel fallback) for reliable interaction.1-