A Model Context Protocol (MCP) server for creating, editing, and playing VibeTide 2D platformer levels. This server provides tools for level manipulation, visualization, and gameplay through the MCP protocol.
- Level Creation: Create new VibeTide levels with AI assistance
- Level Editing: Edit entire levels, single rows, or individual tiles
- Level Visualization: Generate ASCII and PNG visualizations of levels
- Level Playing: Get URLs to play levels in the web player
- Level Decoding: Decode levels from sharing URLs
- Metadata Management: Edit level properties like spawn rates and difficulty
To install VibeTide Level Editor Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @banjtheman/vibe_tide_mcp --client claude
If you have uvx
installed, you can run the server directly without local installation:
uvx --from vibe-tide-mcp-server vibe-tide-mcp-server
- Clone the repository:
git clone https://github.com/banjtheman/vibe_tide_mcp.git
cd vibe_tide_mcp
- Install dependencies:
pip install -r requirements.txt
- Make the server executable:
chmod +x vibe_tide_mcp_server.py
Add the server to your MCP client configuration:
{
"mcpServers": {
"vibe-tide": {
"command": "python",
"args": ["/path/to/vibe_tide_mcp_server.py"],
"env": {}
}
}
}
{
"mcpServers": {
"vibe-tide": {
"command": "uvx",
"args": [
"--from", "vibe-tide-mcp-server", "vibe-tide-mcp-server"
],
"env": {}
}
}
}
- view_level: View level data with ASCII visualization
- view_level_image: Generate beautiful PNG visualizations
- decode_level_from_url: Decode levels from sharing URLs
- get_tile_reference: Get reference guide for tile types
- play_level: Get URL to play level in web player
- edit_level_tile: Edit a single tile
- edit_level_row: Edit an entire row
- edit_entire_level: Replace all tiles in a level
- edit_level_metadata: Edit level properties (name, spawn rates, etc.)
- create_level: Create new levels with AI assistance
Type | Symbol | Name | Description |
---|---|---|---|
0 | ⬜ | Empty | Walkable air space |
1 | 🌱 | Grass | Standard ground platform |
2 | 🗿 | Rock | Solid stone platform |
3 | ⭐ | Yellow | Special yellow platform |
4 | ❄️ | Ice | Slippery ice platform |
5 | 🔥 | Red | Dangerous red platform |
6 | Spikes | Hazardous spikes | |
7 | 💧 | Water | Water tiles |
# Create a simple level with platforms
level_tiles = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # Empty top row
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # Empty row
[0, 0, 0, 1, 1, 1, 0, 0, 0, 0], # Grass platform
[1, 1, 0, 0, 0, 0, 0, 1, 1, 1], # Ground platforms
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2], # Rock foundation
]
result = create_level(
level_name="My First Level",
description="A simple starter level",
tiles=level_tiles,
width=10,
height=5,
maxEnemies=3,
enemySpawnChance=10.0,
coinSpawnChance=20.0
)
# Edit a single tile
result = edit_level_tile(
encoded_level="your_encoded_level_here",
row=2,
col=5,
new_tile_type=6 # Add spikes
)
# Edit level metadata
result = edit_level_metadata(
encoded_level="your_encoded_level_here",
new_name="Updated Level",
max_enemies=5,
enemy_spawn_chance=15.0
)
# View level visualization
result = view_level("your_encoded_level_here")
print(result["visualization"])
# Generate PNG image
image_path = view_level_image("your_encoded_level_here")
# Get play URL
result = play_level("your_encoded_level_here")
print(f"Play at: {result['play_url']}")
python vibe_tide_mcp_server.py
The server includes comprehensive error handling and validation for all level operations.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Model Context Protocol - Learn more about MCP