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., "@VibeTide MCP Servercreate a beginner-friendly level with grass platforms and a few coins"
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.
VibeTide MCP Server
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.

🎮 Screenshots & Demo
Level Creation and Editing
Create beautiful 2D platformer levels with AI assistance
Gameplay Preview
Play your created levels in the web player
Features
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
Installation
Installing via Smithery
To install VibeTide Level Editor Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @banjtheman/vibe_tide_mcp --client claudeOption 1: Using UVX (Recommended)
If you have uvx installed, you can run the server directly without local installation:
uvx --from vibe-tide-mcp-server vibe-tide-mcp-serverOption 2: Local Installation
Clone the repository:
git clone https://github.com/banjtheman/vibe_tide_mcp.git
cd vibe_tide_mcpInstall dependencies:
pip install -r requirements.txtMake the server executable:
chmod +x vibe_tide_mcp_server.pyConfiguration
MCP Client Configuration
Add the server to your MCP client configuration:
Local Python Server
{
"mcpServers": {
"vibe-tide": {
"command": "python",
"args": ["/path/to/vibe_tide_mcp_server.py"],
"env": {}
}
}
}Using UVX
{
"mcpServers": {
"vibe-tide": {
"command": "uvx",
"args": [
"--from", "vibe-tide-mcp-server", "vibe-tide-mcp-server"
],
"env": {}
}
}
}Available Tools
Level Viewing Tools
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
Level Playing Tools
play_level: Get URL to play level in web player
Level Editing Tools
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.)
Level Creation Tools
create_level: Create new levels with AI assistance
Tile Types
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 |
Examples
Creating a New Level
# 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
)Editing a Level
# 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
)Viewing and Playing Levels
# 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']}")Development
Running the Server
python vibe_tide_mcp_server.pyTesting
The server includes comprehensive error handling and validation for all level operations.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Related Projects
Model Context Protocol - Learn more about MCP