battle-arena-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@battle-arena-mcprun a battle between Jayden and Rushdown Rex"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Battle Arena MCP Server
An MCP (Model Context Protocol) server that connects AI agents to the Battle Arena - AI Strategy Competition game. Run battles, tournaments, and analyze strategies programmatically.
What is this?
This MCP server wraps the Battle Arena REST API, giving any MCP-compatible AI agent (like Manus) direct access to:
List strategies — See all available student and example fighters
Get strategy code — Read the source code of any strategy
Run battles — Pit two strategies against each other with configurable HP
Run tournaments — Round-robin competition with leaderboard
Get game rules — All damage values, ranges, and mechanics
Related MCP server: Brawl Stars MCP
Quick Start
Option 1: Use with Manus (Custom MCP Connector)
In your Manus project, go to Settings → Connectors → Custom MCP
Add this server with the command:
npx battle-arena-mcpSet the environment variable (optional, defaults to the hosted arena):
BATTLE_ARENA_URL=https://battle-arena.manus.space
Option 2: Run Locally
# Clone and install
git clone https://github.com/Oscarlight/battle-arena-mcp.git
cd battle-arena-mcp
npm install
npm run build
# Run
node dist/index.jsOption 3: npx (no install)
npx battle-arena-mcpEnvironment Variables
Variable | Default | Description |
|
| Base URL of the Battle Arena API |
Available Tools
list_strategies
Lists all available strategies with their IDs, names, and fighting styles.
Example response:
{
"strategies": [
{ "id": "jayden", "name": "Jayden", "style": "Balanced adaptive", "source": "student" },
{ "id": "rushdown_rex", "name": "Rushdown Rex", "style": "Aggressive pressure", "source": "example" }
],
"total": 23
}get_strategy_code
Returns the JavaScript source code of a strategy.
Parameters:
id(required): Strategy ID fromlist_strategies
run_battle
Runs a 1v1 battle. Provide strategies by ID or custom code.
Parameters:
strategyIdA/strategyA: Strategy A (by ID or code)strategyIdB/strategyB: Strategy B (by ID or code)hp(optional): HP value, 50-1000. Default: 100. Tournament: 250.includeTurnLog(optional): Include full turn-by-turn data
Example response:
{
"winner": "Jayden",
"winnerSide": "A",
"nameA": "Jayden",
"nameB": "80 Year Old Grandpa",
"finalHpA": 48,
"finalHpB": 0,
"totalTurns": 55,
"hp": 250
}run_tournament
Runs a round-robin tournament between 2-20 strategies.
Parameters:
strategyIds(optional): Array of strategy IDsstrategies(optional): Array of custom strategies withcodeand optionalidhp(optional): HP for all matches
Example response:
{
"hp": 250,
"totalMatches": 6,
"leaderboard": [
{ "id": "jayden", "name": "Jayden", "wins": 2, "losses": 1, "winRate": 67 }
],
"matches": [...]
}get_game_rules
Returns all game constants (damage, ranges, stamina, etc.).
Writing Custom Strategies
A strategy is a JavaScript function that receives game state and returns an action:
// Strategy Name: My Fighter
// Strategy Style: Aggressive rushdown
function strategy(state) {
// Available state:
// state.myHp, state.enemyHp, state.distanceToEnemy
// state.myStamina, state.isInLightRange, state.isInHeavyRange
// state.turn, state.myIsRecovering, state.enemyIsRecovering
// state.mustAttackSoon, state.mustMoveSoon
// Available actions:
// "move_up", "move_down", "move_left", "move_right"
// "dash_toward", "dash_away"
// "light_attack", "heavy_attack"
// "block", "grab", "special"
if (state.distanceToEnemy > 2) return "dash_toward";
if (state.isInHeavyRange) return "heavy_attack";
return "light_attack";
}REST API (Direct Access)
The MCP server wraps these public endpoints:
Method | Endpoint | Description |
GET |
| List all strategies |
GET |
| Get strategy source code |
POST |
| Run a single battle |
POST |
| Run a round-robin tournament |
GET |
| Get game constants |
No authentication required. Rate limited to 30 requests/minute.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Oscarlight/battle-arena-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server