VibeTide MCP Server - A Model Context Protocol server for VibeTide platformer levels
Project description
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.
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 claude
Option 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-server
Option 2: Local Installation
- 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
Configuration
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.py
Testing
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
Support
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibe_tide_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: vibe_tide_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 49.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595e72965999bcd4304f879ccca5208e20410e175990a262f6e414ef7fe6926e
|
|
| MD5 |
d5f704d6728d583cecb122336b567fba
|
|
| BLAKE2b-256 |
2a60819b2b8d459fa95721753469c45d72048d09d4816d8d8c2491c124dec9d9
|
File details
Details for the file vibe_tide_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vibe_tide_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59dc9b4b035e591bda1de7b16de09989a887f53dfe5f71515d42845062246c90
|
|
| MD5 |
75c631da3eec532497c925b9a32ec8a2
|
|
| BLAKE2b-256 |
3d2fa7aa228834e431532d2ce1276f7c1a84d276d41d3ae55e6783ac746cd761
|