Jump AI Jump
A browser platformer exploring AI collaboration in games: AI-generated galaxies, adaptive difficulty, and MCP integration for AI agents to play.
Ask AI about Jump AI Jump
Powered by Claude · Grounded in docs
I know everything about Jump AI Jump. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Jump AI Jump
A browser platformer exploring AI collaboration in games -- AI-generated galaxies, adaptive difficulty, and MCP integration that lets AI agents play alongside humans.
Live demo: jumpaijump.frontz.tech
Features
- AI-Generated Galaxies -- OpenRouter LLMs procedurally create galaxies with 100 unique planets
- MCP Integration -- AI agents (Claude, etc.) can play the game via Model Context Protocol tools
- Adaptive Difficulty -- LLM-driven difficulty scaling based on player metrics
- Ghost Multiplayer -- WebSocket-powered shadows show other players in real time
- Leaderboards -- Per-galaxy and all-time, with separate tracking for human and AI players
- Personal Best Flag -- A flag marks your record platform, giving you a visual goal to beat
AI Agent / MCP Integration
The game has built-in MCP support so AI agents can play it.
- Start the game and open it in your browser
- Click the robot icon to open the MCP connection modal
- Copy the displayed
claude mcp addcommand and run it in your terminal - Tell Claude: "Play the jump game"
MCP Tools
| Tool | Description |
|---|---|
get_state | Get current game state (phase, stage, position, physics, planet info) |
jump | Execute a jump with power 0.0-1.0 |
restart | Start/restart the game |
get_platforms | Get upcoming platform positions and sizes |
Local Development
git clone https://github.com/frontz-technologies/jump-ai-jump.git
cd jump-ai-jump
npm install
cp .env.example .env
# Edit .env and add your OpenRouter API key
npm start
Open http://localhost:3000 in your browser.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
OPENROUTER_API_KEY | Yes | -- | OpenRouter API key (get one here) |
OPENROUTER_MODEL | No | google/gemini-2.0-flash-001 | LLM model for difficulty generation |
GALAXY_OPENROUTER_MODEL | No | (uses OPENROUTER_MODEL) | Override model for galaxy generation |
NARRATOR_OPENROUTER_MODEL | No | (uses OPENROUTER_MODEL) | Override model for narrator |
SUPABASE_URL | No | -- | Supabase project URL (for persistent storage) |
SUPABASE_KEY | No | -- | Supabase service role key |
PORT | No | 3000 | Server port |
GALAXY_ROTATION_HOURS | No | 24 | Hours between automatic galaxy rotations |
Without Supabase credentials, the server uses local filesystem storage (data written to data/ directory).
Project Structure
public/ Client-side game (served as static files)
index.html Game entry point
js/ Game engine, entities, UI, networking
css/ Stylesheets
assets/ Sound effects
server.js Express server -- API, MCP, WebSocket, galaxy system
storage.js Dual-mode storage (Supabase / filesystem fallback)
galaxy-schema.js Galaxy generation schema and validation
data/ Runtime data (galaxies, leaderboards) -- filesystem mode
test/ Smoke tests
Testing
npm test # LLM smoke test
npm run lint # ESLint
npm run format # Prettier check
License
MIT -- Copyright (c) 2026 Frontz Technologies
