MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Play Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools.
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yxc20089/OpenRA-RL openra-rl --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill .claude/skills/openra-rl && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .claude/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yxc20089/OpenRA-RL/tree/main/skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yxc20089/OpenRA-RL openra-rl --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill .agents/skills/openra-rl && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .agents/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yxc20089/OpenRA-RL openra-rl --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill .cursor/skills/openra-rl && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .cursor/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yxc20089/OpenRA-RL.git --path skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yxc20089/OpenRA-RL openra-rl --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill .gemini/skills/openra-rl && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .gemini/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yxc20089/OpenRA-RL openra-rlInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill .github/skills/openra-rl && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .github/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yxc20089/OpenRA-RL --skill openra-rl -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yxc20089/OpenRA-RL openra-rl --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yxc20089/OpenRA-RL.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill .opencode/skills/openra-rl && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openra-rl" agent skill from https://github.com/yxc20089/OpenRA-RL/tree/main/skill into .opencode/skills/openra-rl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openra-rl", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openra-rlPlay Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools.
Openra Rl is an agent skill from yxc20089/OpenRA-RL. Play Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers. The repository describes itself as: Open Framework for AI Agents to play Red Alert through Reinforcement Learning. The licence is GPL-3.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5dadd44. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
pypi.orghuggingface.codiscord.ggFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openra Rl loads about 2.7k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,008 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yxc20089/OpenRA-RL at commit 5dadd44, republished under its GPL-3.0 licence (© yxc20089). 1,008 words, ~2,737 tokens.
.claude/skills/openra-rl/SKILL.md (or your agent's skills folder).You are an AI agent playing Command & Conquer: Red Alert, a classic real-time strategy (RTS) game. You control one faction (Allied or Soviet) and must build a base, gather resources, train an army, and destroy the enemy.
The game runs in a Docker container. You interact through MCP tools that let you observe the battlefield, issue orders, and advance game time.
pip install openra-rlopenra-rl server startThis pulls the Docker image and starts the game server on port 8000. Verify with openra-rl server status.
Add to your OpenClaw config (~/.openclaw/openclaw.json):
{
"mcpServers": {
"openra-rl": {
"command": "openra-rl",
"args": ["mcp-server"]
}
}
}Tell your agent: "Start a game of Red Alert and try to win."
The agent will use the MCP tools listed below to observe and command.
advance(ticks) to let time pass.powr) to stay powered. Low power slows production.| Tool | Purpose |
|---|---|
get_game_state | Full snapshot: economy, units, buildings, enemies, production, military stats |
get_economy | Cash, ore, power balance, harvester count |
get_units | Your units with position, health, type, stance, speed, attack range |
get_buildings | Your buildings with production queues, power, can_produce list |
get_enemies | Visible enemy units and buildings (fog-of-war limited) |
get_production | Current build queue + what you can build right now |
get_map_info | Map name, dimensions |
get_exploration_status | % explored, quadrant breakdown, whether enemy base found |
| Tool | Purpose |
|---|---|
lookup_unit(unit_type) | Stats for a unit (e.g., lookup_unit("e1") → Rifle Infantry) |
lookup_building(building_type) | Stats for a building (e.g., lookup_building("weap") → War Factory) |
lookup_tech_tree(faction) | Full build order for "allied" or "soviet" |
lookup_faction(faction) | All units and buildings for a faction |
get_faction_briefing() | Comprehensive stats dump for YOUR faction |
get_map_analysis() | Resource patches, water, terrain, strategic notes |
batch_lookup(queries) | Multiple lookups in one call |
| Tool | Purpose |
|---|---|
advance(ticks) | Critical — advances the game by N ticks. Nothing happens without this. Use 25 ticks ≈ 1 second, 250 ticks ≈ 10 seconds. |
| Tool | Purpose |
|---|---|
move_units(unit_ids, target_x, target_y) | Move units to a position |
attack_move(unit_ids, target_x, target_y) | Move and engage enemies along the way |
attack_target(unit_ids, target_actor_id) | Focus-fire a specific enemy |
stop_units(unit_ids) | Halt movement and attacks |
guard_target(unit_ids, target_actor_id) | Guard a unit or building |
set_stance(unit_ids, stance) | Set to "holdfire", "returnfire", "defend", or "attackanything" |
harvest(unit_id, cell_x, cell_y) | Send harvester to ore field |
| Tool | Purpose |
|---|---|
build_unit(unit_type, count) | Train units (e.g., build_unit("e1", 5) → 5 Rifle Infantry) |
build_structure(building_type) | Start constructing a building (needs manual placement) |
build_and_place(building_type, cell_x, cell_y) | Build + auto-place when done (preferred) |
place_building(building_type, cell_x, cell_y) | Place a completed building |
cancel_production(item_type) | Cancel queued production |
get_valid_placements(building_type) | Get valid locations to place a building |
| Tool | Purpose |
|---|---|
deploy_unit(unit_id) | Deploy MCV into Construction Yard |
sell_building(building_id) | Sell for partial refund |
repair_building(building_id) | Toggle auto-repair |
set_rally_point(building_id, cell_x, cell_y) | New units go here |
power_down(building_id) | Toggle power to save electricity |
set_primary(building_id) | Set as primary production building |
| Tool | Purpose |
|---|---|
assign_group(group_name, unit_ids) | Create a named group |
add_to_group(group_name, unit_ids) | Add units to existing group |
get_groups() | List all groups |
command_group(group_name, command_type, ...) | Command entire group |
| Tool | Purpose |
|---|---|
batch(actions) | Execute multiple actions in ONE tick (no time advance) |
plan(steps) | Execute steps sequentially with state refresh between each |
| Tool | Purpose |
|---|---|
surrender() | Give up the current game |
get_replay_path() | Path to the replay file |
get_terrain_at(cell_x, cell_y) | Terrain type at a cell |
| Tool | Purpose |
|---|---|
start_planning_phase() | Begin pre-game strategy planning |
get_opponent_intel() | AI opponent profile and counters |
end_planning_phase(strategy) | Commit strategy and start playing |
get_planning_status() | Check planning state |
At game start you have a Mobile Construction Vehicle (MCV). Deploy it to create your Construction Yard:
1. Call get_units() to find your MCV (type "mcv")
2. Call deploy_unit(mcv_actor_id)
3. Call advance(50) to let it deployFollow this build order:
| Order | Building | Type Code | Cost | Why |
|---|---|---|---|---|
| 1 | Power Plant | powr | $300 | Powers everything |
| 2 | Barracks | tent (Allied) or barr (Soviet) | $300 | Infantry production |
| 3 | Ore Refinery | proc | $2000 | Income + free harvester |
| 4 | War Factory | weap | $2000 | Vehicle production (requires Refinery) |
| 5 | More Power | powr | $300 | Keep power positive |
Use build_and_place() — it auto-places when construction finishes:
1. Call get_valid_placements("powr") to find a good spot
2. Call build_and_place("powr", cell_x, cell_y)
3. Call advance(250) to let it build (~10 seconds)
4. Check get_production() to confirm completion
5. Repeat for next buildingImportant: Your faction may be Allied OR Soviet. Check get_game_state() → faction field. Barracks type depends on faction.
1. Call build_unit("e1", 5) for 5 Rifle Infantry ($100 each)
2. Call advance(100) to let them train
3. Once War Factory is ready: build_unit("3tnk", 3) for Medium Tanks ($800 each)
4. Set rally point near base exit: set_rally_point(barracks_id, x, y)Key units by faction:
| Unit | Code | Cost | Role |
|---|---|---|---|
| Rifle Infantry | e1 | $100 | Cheap, fast |
| Rocket Soldier | e3 | $300 | Anti-armor |
| Medium Tank | 3tnk | $800 | Main battle tank |
| Heavy Tank | 4tnk | $950 | Soviet heavy armor |
| Light Tank | 1tnk | $700 | Fast flanker |
| Artillery | arty | $600 | Long range |
| V2 Launcher | v2rl | $700 | Soviet long range |
Send a cheap unit to explore:
1. Train one Rifle Infantry
2. Call attack_move([unit_id], far_x, far_y) toward unexplored areas
3. Call advance(500) to let it travel
4. Call get_enemies() to see what you've foundOnce you have 8-10 combat units:
1. Call get_enemies() to find enemy buildings
2. Call attack_move(all_unit_ids, enemy_base_x, enemy_base_y)
3. Call advance(100), check get_game_state() for battle progress
4. If enemies visible: attack_target(unit_ids, enemy_id) to focus fire
5. Keep producing reinforcements while attackingThroughout the game:
A good agent loop looks like this:
1. get_game_state() → read the situation
2. Decide what to do based on:
- Economy: enough cash? Power positive?
- Production: anything building? Queue empty?
- Military: under attack? Ready to attack?
- Exploration: enemy found yet?
3. Issue orders (build, move, attack)
4. advance(50-250) → let time pass
5. Repeat until game is won or lostCheck get_game_state() → done field. When true, result will be "win" or "loss".
advance() after issuing orders. Orders don't execute until game time passes.batch() to issue multiple orders in one tick (e.g., build + move + set rally).available_production before building — it lists what you CAN build right now.attack_move instead of move when heading toward enemies — units will engage threats.build_and_place() to avoid this.| Problem | Solution |
|---|---|
| Server not running | openra-rl server start (needs Docker) |
| Can't build anything | Deploy MCV first with deploy_unit() |
| Building won't place | Use get_valid_placements() for valid spots |
| No money | Build Ore Refinery (proc) for harvesters |
| Production slow | Check power with get_economy() — build Power Plants |
| Can't find enemy | Scout with attack_move to unexplored quadrants |
© yxc20089, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skill of yxc20089/OpenRA-RL.
Open the folder on GitHubat commit 5dadd44
Openra Rl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openra Rl this skillyxc20089/OpenRA-RL | 158 | — | ~2.7k | Automated safety check: Pass | GPL-3.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Microsoft Skill CreatorMicrosoftDocs/mcp | 1.9k | 3 repos | ~2.1k | Automated safety check: Pass | CC-BY-4.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
MicrosoftDocs/mcp
Create agent skills for Microsoft technologies using official documentation.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
Categories
Play Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools. Openra Rl is an agent skill from yxc20089/OpenRA-RL. Play Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools.
Openra Rl fits situations like: tasks that involve MCP servers.
Run `npx skills add yxc20089/OpenRA-RL --skill openra-rl -a claude-code`. Or copy the skill folder (skill in yxc20089/OpenRA-RL) into .claude/skills/openra-rl in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yxc20089/OpenRA-RL --skill openra-rl -a codex`. Or copy the skill folder (skill in yxc20089/OpenRA-RL) into .agents/skills/openra-rl in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yxc20089/OpenRA-RL --skill openra-rl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openra-rl, .gemini/skills/openra-rl, .github/skills/openra-rl and .opencode/skills/openra-rl in your project.
Going by SKILL.md and its folder, Openra Rl needs the command-line tools its instructions call (pip). Our summary lists: Python 3; Docker.
SKILL.md names 3 domains. As links in the text: pypi.org, huggingface.co and discord.gg. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Openra Rl is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openra Rl: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Microsoft Skill Creator (MicrosoftDocs/mcp, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yxc20089 (a GitHub user) maintains it in yxc20089/OpenRA-RL, which has 158 GitHub stars. The repository was last updated on May 16, 2026.
Source: yxc20089/OpenRA-RL on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.