Spaces:
Running
Download README.md from datagame/prime-rush-env: direct link, hf CLI and curl.
- Browser
- Download file 3.83 kB
-
https://huggingface.co/spaces/datagame/prime-rush-env/resolve/main/README.md
- Command line
-
hf download hf://spaces/datagame/prime-rush-env/README.md
-
curl -L -o README.md https://huggingface.co/spaces/datagame/prime-rush-env/resolve/main/README.md
title: Prime Rush — a battle royale as an MCP environment
emoji: 🎯
colorFrom: blue
colorTo: yellow
sdk: docker
app_port: 7860
pinned: false
license: apache-2.0
short_description: A live battle royale as six MCP tools
tags:
- agents
- mcp
- benchmark
- games
- tool-use
Prime Rush Environment
This Space holds the MCP adapter, the task pack and the reference grader, and runs an interactive demo. The benchmark — methodology, per-episode results and trajectories — is in the dataset.
The demo drives a stand-in game server so it needs no infrastructure. For access to the real environment, get in touch.
A live battle-royale match from a shipped commercial game, exposed to an LLM agent as six MCP tools. A safe circle shrinks on a timer and moves; the agent is given its own coordinates and the circle's, and has to work out where to go.
Built for the Archipelago harness, following the conventions of the MCP servers already in that repo.
Highlights
- Deterministic stepping: the match advances only inside a tool call, by the amount that call asks for. The same seed and the same calls reproduce the same match, and a slow model is not penalised.
- No derived guidance:
get_situationreturns raw coordinates. There is nomove_to(x, z)and no bearing to the circle, because computing it is the task. - Snapshot grading: every call that advances the match rewrites
outcome.jsonfrom game state, so the score is read from a file rather than from the transcript. - Harness compatibility: ships as an Archipelago task pack plus a reference eval definition.
Tools
| Tool | Advances the match |
|---|---|
get_situation |
no |
turn_to_bearing |
yes, by the time the turn takes |
move |
yes, by the seconds requested |
hold_position |
yes |
shoot |
yes |
finish |
no |
Results
Current scores are on the Leaderboard tab, read from the results dataset. The methodology, confidence intervals and per-episode data are in the dataset card.
Running it
Neither test suite needs a game build; tests/fake_game.py stands in for the
server and reproduces its response characteristics.
pip install fastmcp pydantic
python tests/test_end_to_end.py # 29 checks
python tests/test_grading_eval.py # 9 checks
Against a real match:
export INDUS_BRIDGE_HOST=... INDUS_BRIDGE_PORT=...
python -m indus_mcp.main # stdio, the transport Archipelago uses
Under Archipelago, POST /apps with tasks/zone_survival/mcp_config.json.
| Variable | Meaning | Default |
|---|---|---|
INDUS_BRIDGE_HOST / INDUS_BRIDGE_PORT |
the running match to attach to | 127.0.0.1:7850 |
INDUS_TASK |
task name | zone_survival |
INDUS_BUDGET_SECONDS |
game time the agent is given | 100 |
INDUS_FF_RADIUS |
hand over once the circle is this small | 350 |
INDUS_OUTCOME_PATH |
where the grader reads the result | /filesystem/outcome.json |
MCP_TRANSPORT |
stdio or http |
stdio |
INDUS_FF_RADIUSmust match across every row of a comparison. Before the circle has closed it covers most of the map and any agent is inside it, so rows that handed over at different radii did not start in comparable situations.
Limitations
shootis horizontal only. Aim pitch is not in the observation, so an agent cannot verify the effect of apitchargument.- No line of sight: nearby enemies are reported through walls.
- One task, one map.
- One agent per match. The game build supports multiple seats; the harness does not use them yet.
SuperGaming. Apache-2.0.