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
Metadata
Release files for vibe-tide-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vibe_tide_mcp_server-0.1.0.tar.gz | 49.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vibe_tide_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.8 kB
Release files / vibe_tide_mcp_server-0.1.0.tar.gz
| Download URL | vibe_tide_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 49.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
595e72965999bcd4304f879ccca5208e20410e175990a262f6e414ef7fe6926e
|
|
BLAKE2b-256 checksum How to use checksums |
2a60819b2b8d459fa95721753469c45d72048d09d4816d8d8c2491c124dec9d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / vibe_tide_mcp_server-0.1.0-py3-none-any.whl
| Download URL | vibe_tide_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
59dc9b4b035e591bda1de7b16de09989a887f53dfe5f71515d42845062246c90
|
|
BLAKE2b-256 checksum How to use checksums |
3d2fa7aa228834e431532d2ce1276f7c1a84d276d41d3ae55e6783ac746cd761
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Security for vibe-tide-mcp-server 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.