Skip to main content

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.

License: MIT Python 3.10+ smithery badge

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

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.

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)

Source distribution for vibe-tide-mcp-server 0.1.0
File Size Uploaded Provenance
vibe_tide_mcp_server-0.1.0.tar.gz 49.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vibe-tide-mcp-server 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page