Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RLC_DIRNoPath to a cloned ReimaginedLC folder. Required for the rlc_check and rlc_build tools, which run npm and vite in that folder; the other rlc tools work without it.
RLC_REPONoThe ReimaginedLC repository reference.
PENGU_DIRNoThe directory of the Pengu Loader installation, used to locate its config (and thus the debugging port).
LOL_CDP_PORTNoThe Chrome DevTools Protocol debugging port of the League client. Defaults to the port read from the Pengu config, else 9222.9222
LOL_CDP_MAP_DIRNoThe directory where the crawled map is written.~/.lol-cdp-mcp/map

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
stateA

Where the client is right now: gameflow phase, patch, active Riot nav tab and all tabs, ReimaginedLC layer, open overlays (modals, flyouts, tooltips), viewport. Start here.

snapshotA

Lists the visible interactive elements (buttons, tabs, inputs, cards, nav items), piercing shadow DOM, each with a ref usable by click/hover/type/query. Repeated items (grids, lists) collapse after a few. Take a new snapshot after the screen changes: refs go stale.

queryC

Details of one element: label, selector, box, state, and optionally its text or HTML (shadow root included).

wait_forB

Waits until an element appears (or disappears with gone=true).

clickA

Real mouse click (CDP Input) on an element, scrolled into view. Reports what it caused: overlays opened/closed, nav change, LCU requests. Dangerous writes (purchases, loot crafting, reports, invites, chat, real queue, logout) are blocked at the network level.

hoverA

Moves the real mouse over an element and reports tooltips/flyouts that appeared.

typeB

Types text into an input (focuses it first when a target is given).

keyB

Presses a key or combo on the page: "Escape", "Enter", "Tab", "ArrowDown", "Ctrl+A", "Ctrl+Shift+F12" (toggles the ReimaginedLC layer).

scrollA

Scrolls with the real mouse wheel over an element (deltaY > 0 scrolls down).

navigateA

Goes to a screen. Accepts a Riot nav tab id ("rcp-fe-lol-collections", "rcp-fe-lol-loot", "rcp-fe-lol-store", "rcp-fe-lol-profiles-main", "rcp-fe-lol-tft", "home"...; see state) or a screen id from the crawl map (see map).

mapA

The crawled map of the native client: every screen, how to reach it, each control with its hover text, what clicking it does and which LCU requests it fires (blocked ones show the endpoint a dangerous button would call). Without arguments lists screens; screen gives one screen in full; query searches labels, hovers and endpoints.

lcuA

Calls the LCU API from inside the client (auth handled). Dangerous writes (purchases, loot crafting, reports, invites, chat messages, real queue, logout, client quit) are refused.

lcu_endpointsA

Searches the LCU endpoint catalog of the installed client (built from /help on first use, then cached per patch). Every word must match the path or function name.

screenshotA

Screenshot of the client (or one element). At the default scale one image pixel = one CSS px, so image coordinates can be passed to click/hover as x/y.

evalA

Runs JavaScript in the client page and returns the JSON result. Wrap statements in an async IIFE or just write an expression; promises are awaited. rcp.get("rcp-fe-lol-<plugin>") returns Riot plugin APIs.

cssA

Adds (or with remove=true removes) a in the document head under an id. Note: styles do not reach inside shadow roots; target hosts or use ::part where available.

scriptA

Registers JavaScript that runs now and on every page load (reload) while this server is connected: a live plugin prototype. remove=true unregisters it (effects already applied stay until a reload). list=true shows ids.

reloadA

Reloads the client page (like Pengu's reload). Refused during Matchmaking, ReadyCheck, ChampSelect, GameStart, InProgress and Reconnect. Waits until the Riot UI is back.

consoleB

Recent console messages and uncaught exceptions from the client page.

networkB

Recent LCU requests made by the client page (assets excluded), newest last, including requests the safety guard blocked.

metricsB

Renderer performance counters (JS heap, nodes, layout/style recalcs, script duration).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have clearly distinct roles, with a sensible layering of observe (state, snapshot, query, screenshot), act (click, hover, type, key, scroll, navigate), and extend (eval, script, css). A few pairs could be confused at a glance — snapshot vs query (list vs detail), eval vs script (one-shot vs persistent injection), state vs map (live vs crawled) — but the descriptions draw the boundaries explicitly.

Naming Consistency4/5

All names are single lowercase snake_case tokens (wait_for, lcu_endpoints), with no camelCase mixing. The set mixes nouns for read-only inspectors (console, network, metrics, map) with verbs for actions (click, hover, type, navigate), which is a defensible and readable pattern rather than a chaotic one.

Tool Count4/5

21 tools is on the heavy side, but each covers a genuinely separate capability of client automation (input, DOM inspection, navigation, LCU access, JS injection, diagnostics). Nothing looks like a redundant duplicate of another tool, so the count is justified by scope even if it sits near the upper bound.

Completeness4/5

The surface covers the full loop: inspect state, take snapshots, act with real input, wait, verify via console/network/metrics, and extend via eval/script/css plus direct LCU calls and an endpoint catalog. Minor gaps exist — no drag/double-click or multi-step form fill, no console/network clearing or filtering — but these are workaroundable via eval or repeated calls.

Maintenance

ActivityMaintained
ResponsivenessNo issues