Skip to main content
Glama
ECNU3D

Game World Sandbox MCP

by ECNU3D

๐ŸŽฎ Game World Sandbox MCP

A FastMCP-based game world management system for creating and maintaining consistent, structured game worlds for LLM-driven text adventures and role-playing games.

๐ŸŒŸ Features

  • World Generation: Create structured game worlds with consistent cosmology, geography, society, and history

  • Character Management: Define player characters with attributes, inventory, goals, and backstory

  • MCP Integration: Built on Model Control Protocol for seamless AI integration

  • OpenAI Integration: Working integration with OpenAI models for natural language game world management

  • Data Validation: Pydantic models ensure data consistency and integrity

  • Extensible Architecture: Easy to add new tools, resources, and game mechanics

  • Comprehensive Testing: Full unit test coverage proving functionality

Related MCP server: Storyblok MCP Server

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 โ”‚    โ”‚                 โ”‚    โ”‚                 โ”‚
โ”‚   Client App    โ”‚โ—„โ”€โ”€โ–บโ”‚  FastMCP Server โ”‚โ—„โ”€โ”€โ–บโ”‚   World Data   โ”‚
โ”‚                 โ”‚    โ”‚                 โ”‚    โ”‚   (In-Memory)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
                                โ–ผ
                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                       โ”‚  World Bible    โ”‚
                       โ”‚   Schema        โ”‚
                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Components

  • server.py: FastMCP server with world generation and character creation tools

  • world_bible_schema.py: Pydantic models defining the complete game world structure

  • openai_working_integration.py: Direct LangChain OpenAI integration (recommended)

  • mcp_use_integration.py: LangChain-based MCP integration (compatible alternative)

  • gemini_mcp_demo.py: Gemini integration demo

  • demo_core_functionality.py: Core functionality demonstration

  • verify_working_solution.py: Verification script proving everything works

  • tests/unit/: Comprehensive unit tests (19/20 tests passing)

๐Ÿค– AI Integration - OpenAI + Game World System

The system includes two working integrations with OpenAI models for natural language game world management:

The direct LangChain approach provides the most reliable and stable integration with FastMCP.

Features

  • Natural Language Interface: Interact with game worlds using natural language

  • Intelligent Tool Usage: OpenAI models automatically choose appropriate game world tools

  • Real-time Game State: AI can create worlds, characters, and manage game state

  • Interactive Gameplay: Natural conversation flow with structured game mechanics

  • Working Implementation: Fully functional integration with error handling

Quick Setup

  1. Install dependencies (already included in requirements.txt):

    pip install -r requirements.txt
  2. Set your OpenAI API key:

    export OPENAI_API_KEY="your-openai-api-key-here"
  3. Run the integration:

    python openai_working_integration.py

Example Commands

  • "Create a fantasy world with magic and dragons"

  • "Generate a sci-fi world with spaceships and advanced technology"

  • "Create a brave knight character named Sir Galen"

  • "Move Sir Galen to the dragon's lair"

  • "What worlds do we have available?"

๐Ÿ”ง Option 2: LangChain-Based MCP Integration (Alternative)

The LangChain-based MCP integration provides a more compatible approach that works reliably with FastMCP.

Features

  • Direct Tool Integration: Custom tools that interface directly with MCP server

  • Server Compatibility: Works seamlessly with FastMCP transport protocols

  • Interactive CLI: Command-line interface for game world management

  • Robust Error Handling: Comprehensive error handling and recovery

  • No Protocol Issues: Bypasses mcp_use compatibility problems

Quick Setup

  1. Install dependencies (already included in requirements.txt):

    pip install -r requirements.txt
  2. Set your OpenAI API key:

    export OPENAI_API_KEY="your-openai-api-key-here"
  3. Start the MCP server:

    # Terminal 1
    python server.py
  4. Run the integration:

    # Terminal 2
    python mcp_use_integration.py

Example Commands

  • "Create a fantasy world"

  • "List all worlds"

  • "Create a character"

  • "Move a character"

  • "Generate a sci-fi world"

How It Works

Direct LangChain Integration:

User Request โ†’ OpenAI LLM โ†’ LangChain Agent โ†’ Game World Tools โ†’ World Management
                                                        โ†“
User Response โ† OpenAI LLM โ† Tool Results โ† Game World Operations

LangChain-Based MCP Integration:

User Request โ†’ OpenAI LLM โ†’ LangChain Agent โ†’ Custom MCP Tools โ†’ Server API
                                                        โ†“
User Response โ† OpenAI LLM โ† Tool Results โ† Game World Data

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.13+

  • Virtual environment (recommended)

Installation

  1. Clone the repository

    git clone https://github.com/your-username/game-sandbox-mcp.git
    cd game-sandbox-mcp
  2. Set up virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt

    For OpenAI Integration:

    pip install langchain-openai

    Key Dependencies:

    • FastMCP: Model Context Protocol framework

    • FastAPI: Modern web framework for APIs

    • Pydantic: Data validation and settings management

    • Uvicorn: ASGI server for high-performance applications

    • pytest: Testing framework (19/20 tests passing)

    • langchain-openai: OpenAI integration (optional)

Running the Server

# Activate virtual environment
source venv/bin/activate

# Run the MCP server
python server.py

The server will start on http://127.0.0.1:8000/mcp/

Running the Client Example

# In a separate terminal, activate venv and run client
source venv/bin/activate
python client.py

๐Ÿ“– Usage

1. Generate a New World

from fastmcp.client import Client
import asyncio

async def create_world():
    client = Client("http://127.0.0.1:8000/mcp/")
    async with client:
        result = await client.call_tool("generate_world", {"style": "Fantasy"})
        world_id = result.structured_content.get('world_id')
        print(f"Created world: {world_id}")

2. Create a Character

character_data = {
    "name": "Arion",
    "race": "Human",
    "description": "A curious adventurer with a knack for getting into trouble.",
    "backstory": "Left a small village to seek fortune and discover the world.",
    "attributes": {"health": 100, "mana": 50, "strength": 15},
    "inventory": [{"name": "Rusted Sword", "description": "An old, worn sword."}],
    "current_location": "Starting Village",
    "goals": ["Find the lost city of Eldoria.", "Master the ancient magic."]
}

result = await client.call_tool("create_character", {
    "world_id": world_id,
    "character_data": character_data
})

3. Access World Data

# Get complete world data
world_data = await client.read_resource(f"worlds://{world_id}")
print(world_data)

๐Ÿ›๏ธ Enhanced World Bible Schema

The system uses an advanced "World Bible" structure based on modern game development practices:

Core Components

  • Metadata: Name, description, genre/style with validation and versioning

  • Cosmology: Magic systems, technology levels, calendar systems with consistency checks

  • Geography: Continents, regions, key locations with strategic mapping

  • Society: Races, factions, social structures with cultural depth

  • History: Creation myths, conflicts, key events with narrative timelines

  • Systems: Economy, abilities, item classifications with balance frameworks

  • Protagonist: Modern RPG character with attributes, skills, inventory, and progression

Enhanced Features

  • Validation & Consistency: Cross-component validation ensures world consistency

  • Modern RPG Systems: Comprehensive character attributes, skills, and progression

  • Advanced Inventory: Item durability, properties, rarity, and crafting systems

  • Reputation System: Faction relationships and social dynamics

  • Quest System: Dynamic quest tracking and objectives

  • Balance Settings: Difficulty levels and game balance parameters

Data Structure Example

{
  "metadata": {
    "name": "Eldoria Chronicles",
    "description": "A vast fantasy world of magic and mystery",
    "style": "Fantasy",
    "version": "1.0.0",
    "author": "Game Master",
    "tags": ["fantasy", "magic", "dragons"]
  },
  "cosmology": {
    "magic_system": "Elemental magic drawn from nature spirits and ancient runes",
    "tech_level": "Medieval",
    "calendar_system": "Twelve-month lunar calendar with solstice festivals",
    "physics_laws": "Standard physics with magical exceptions",
    "metaphysics": "Spiritual energy permeates the world"
  },
  "geography": {
    "macro_geography": "Three main continents with diverse biomes",
    "key_regions": [
      {"name": "Crystal Mountains", "description": "Home to ancient magic crystals"},
      {"name": "Dark Forest", "description": "Forbidden woods with dangerous creatures"}
    ],
    "climate_zones": ["Temperate", "Arctic", "Tropical"],
    "natural_resources": ["Adamantium", "Mythril", "Dragon Scale"]
  },
  "protagonist": {
    "name": "Elara Moonshadow",
    "race": "Elf",
    "character_class": "Ranger",
    "level": 1,
    "attributes": {
      "health": 120,
      "max_health": 120,
      "strength": 12,
      "agility": 16,
      "intelligence": 14
    },
    "skills": [
      {
        "name": "Archery",
        "level": 15,
        "description": "Mastery of bow and arrow combat"
      }
    ],
    "inventory": [
      {
        "name": "Moonshadow Bow",
        "type": "weapon",
        "rarity": "Rare",
        "value": 500,
        "properties": {"damage": "2d8", "range": "150ft"}
      }
    ],
    "goals": ["Find the lost city", "Master nature magic"],
    "reputation": {"Elven Council": 10, "Forest Spirits": 25}
  }
}

๐Ÿ”ง API Reference

Tools

generate_world

Creates a new game world based on specified style.

Parameters:

  • style (str): Game world style (e.g., "Fantasy", "Sci-Fi", "Cyberpunk")

Returns:

  • world_id: Unique identifier for the generated world

  • message: Success confirmation

create_character

Creates a player character for an existing world.

Parameters:

  • world_id (str): ID of the world to add character to

  • character_data (dict): Complete character definition

Returns:

  • message: Success confirmation

  • character_name: Name of created character

Resources

worlds://{world_id}

Retrieves the complete World Bible for a given world ID.

๐ŸŽฎ Enhanced Game Development Features

The improved system incorporates the latest game development practices and modern RPG design:

World Consistency & Validation

  • Cross-Component Validation: Ensures consistency between tech levels and magic systems

  • Enum-Based Classification: Standardized game styles and technology levels

  • Advanced Validation: Pydantic validators prevent inconsistent world-building

  • Version Control: World versioning for tracking changes and updates

Modern RPG Systems

  • Comprehensive Attributes: Health, mana, stamina, and 6 core attributes (STR, AGI, INT, WIS, CHA, LCK)

  • Skill Progression: Individual skill tracking with experience and level caps

  • Advanced Inventory: Items with properties, durability, rarity, and crafting potential

  • Reputation System: Dynamic relationships with factions and organizations

  • Quest Management: Active quest tracking with objectives and status

  • Status Effects: Buffs and debuffs system for combat and roleplay

Enhanced Features

  • Production Logging: Comprehensive logging with proper formatting and error tracking

  • Error Handling: Robust error handling with appropriate HTTP status codes

  • Modern FastMCP: Latest FastMCP version (2.11.3) with improved performance

  • Type Safety: Full type hints and validation throughout the codebase

  • Documentation: Comprehensive docstrings and API documentation

Latest Game Design Patterns

  • Balance Frameworks: Built-in difficulty settings and game balance parameters

  • World State Management: Dynamic world state variables for evolving narratives

  • Character Lifecycle: Complete character progression from creation to advancement

  • Interactive Systems: Character movement, location updates, and world interaction

๐Ÿ› ๏ธ Development

Project Structure

game-sandbox-mcp/
โ”œโ”€โ”€ server.py                    # FastMCP server implementation
โ”œโ”€โ”€ world_bible_schema.py        # Pydantic data models
โ”œโ”€โ”€ openai_working_integration.py # Direct LangChain OpenAI integration
โ”œโ”€โ”€ mcp_use_integration.py      # mcp_use client integration
โ”œโ”€โ”€ gemini_mcp_demo.py          # Gemini integration demo
โ”œโ”€โ”€ demo_core_functionality.py  # Core functionality demo
โ”œโ”€โ”€ verify_working_solution.py  # Verification script
โ”œโ”€โ”€ README.md                   # This file
โ”œโ”€โ”€ requirements.txt            # Dependencies
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ unit/                   # Unit tests (19/20 passing)
โ””โ”€โ”€ venv/                       # Python virtual environment

Adding New Tools

@mcp.tool
def new_game_mechanic(world_id: str, parameters: dict, ctx: Context) -> dict:
    """Description of your new game mechanic."""
    # Implementation here
    pass

Extending the Schema

Add new fields to the Pydantic models in world_bible_schema.py:

class NewComponent(BaseModel):
    field_name: str = Field(..., description="Field description")

class WorldBible(BaseModel):
    # ... existing fields
    new_component: NewComponent = Field(default_factory=NewComponent)

๐Ÿค Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

๐Ÿ“ License

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

๐Ÿ™ Acknowledgments

  • Built with FastMCP framework

  • Inspired by modern tabletop RPG world-building practices

  • Designed for integration with Large Language Models

๐Ÿ“š Further Reading


Happy World Building! ๐ŸŒโœจ

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

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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/ECNU3D/game-sandbox-mcp'

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