Skip to main content
Glama

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.

VibeTide Hero Image

License: MIT Python 3.10+ smithery badge PyPI version

🎮 Screenshots & Demo

Level Creation and Editing

VibeTide Level Creation Create beautiful 2D platformer levels with AI assistance

Gameplay Preview

VibeTide Gameplay 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 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

  1. Clone the repository:

git clone https://github.com/banjtheman/vibe_tide_mcp.git cd vibe_tide_mcp
  1. Install dependencies:

pip install -r requirements.txt
  1. 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

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Projects

Support

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/banjtheman/vibe_tide_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server