Spaces:
Sleeping
Sleeping
| title: Tic-Tac-Toe MCP Server | |
| emoji: ๐ฎ | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: docker | |
| pinned: false | |
| # ๐ฎ Tic-Tac-Toe MCP Server for LeChat | |
| A sophisticated tic-tac-toe game server with **MCP (Model Context Protocol)** integration for use with LeChat. | |
| ## ๐ Features | |
| - **MCP Tools Integration** - Direct use with LeChat via MCP | |
| - **Room-based Gameplay** - Multiple isolated game sessions | |
| - **AI Opponent** - Powered by Mistral AI with personality | |
| - **Real-time Chat** - Interactive conversations with the AI | |
| - **Live Markdown State** - Perfect representation for AI consumption | |
| - **Multi-room Support** - Create and switch between multiple games | |
| ## ๐ง MCP Tools Available | |
| ### Core Game Tools | |
| - `create_room()` - Create a new tic-tac-toe game room | |
| - `make_move(position)` - Make your move (0-8) and get AI response | |
| - `send_chat(message)` - Chat with Mistral AI in your game | |
| - `get_room_state()` - Get current game state in markdown | |
| - `list_rooms()` - See all your active games | |
| - `switch_room(room_id)` - Change between games | |
| ### Utility Tools | |
| - `get_help()` - Game instructions and board layout | |
| - `wait_5_seconds()` - Timing utility for operations | |
| ## ๐ฏ How to Play with LeChat | |
| 1. **Connect to this MCP server** in LeChat | |
| 2. **Start a game**: `create_room()` | |
| 3. **Make moves**: `make_move(4)` (center square) | |
| 4. **Chat with AI**: `send_chat("Good move!")` | |
| 5. **Check state**: `get_room_state()` | |
| ### Board Layout (Positions 0-8): | |
| ``` | |
| 0 | 1 | 2 | |
| --------- | |
| 3 | 4 | 5 | |
| --------- | |
| 6 | 7 | 8 | |
| ``` | |
| ## ๐ Example Game Flow | |
| ```python | |
| # Start a new game | |
| create_room() | |
| # Output: Created room abc12345, you are X, AI is O | |
| # Make your first move (center) | |
| make_move(4) | |
| # Output: You played X at 4, AI played O at 2 with trash talk! | |
| # Chat with the AI | |
| send_chat("Nice try, but I've got this!") | |
| # Output: Your message + AI's witty response | |
| # Check current state anytime | |
| get_room_state() | |
| # Output: Full markdown representation of game | |
| ``` | |
| ## ๐ Markdown State Format | |
| The AI receives game state in this format: | |
| ```markdown | |
| # Game Room: abc12345 | |
| ## Status: Your turn (X to play) | |
| Moves: 4/9 | |
| ``` | |
| X | | O | |
| ----------- | |
| | X | | |
| ----------- | |
| O | | | |
| ``` | |
| ## Recent Chat | |
| **You:** Nice try! | |
| **Mistral AI:** Just wait and see! ๐ | |
| ``` | |
| ## ๐ Setup Requirements | |
| 1. **Mistral API Key**: Required for AI functionality | |
| - Get from [console.mistral.ai](https://console.mistral.ai) | |
| - Set as `MISTRAL_API_KEY` environment variable | |
| 2. **MCP Connection**: Configure in LeChat | |
| - Server URL: This Hugging Face Space URL | |
| - Transport: SSE (Server-Sent Events) | |
| - Port: 7860 | |
| ## ๐ Web UI (Optional) | |
| While designed for MCP, there's also a web interface at `/rooms-ui` for testing and manual play. | |
| ## ๐๏ธ Technical Details | |
| - **Backend**: Python Flask + FastMCP | |
| - **AI**: Mistral AI with competitive personality | |
| - **Protocol**: MCP (Model Context Protocol) | |
| - **Transport**: SSE for real-time communication | |
| - **State Management**: In-memory room storage | |
| - **Format**: Markdown for AI-friendly representation | |
| ## ๐ฎ Game Features | |
| - **Competitive AI**: Mistral trash talks and celebrates | |
| - **Multiple Rooms**: Play several games simultaneously | |
| - **Chat Integration**: Full conversation with game context | |
| - **State Persistence**: Games persist during session | |
| - **Error Handling**: Graceful handling of invalid moves | |
| - **Turn Management**: Automatic turn switching and validation | |
| ## ๐ค Perfect for AI Assistants | |
| This MCP server is specifically designed for LeChat: | |
| - **Structured Output**: All responses in consistent JSON format | |
| - **Markdown Representation**: Perfect for AI understanding | |
| - **Context Preservation**: Room state maintained between calls | |
| - **Error Messages**: Clear feedback for invalid operations | |
| - **Multi-session**: Each AI conversation can have multiple games | |
| ## ๐ Get Started | |
| 1. **In LeChat**: Connect to this MCP server | |
| 2. **Type**: `create_room()` to start your first game | |
| 3. **Play**: Use `make_move(position)` to play | |
| 4. **Enjoy**: Chat and compete with Mistral AI! | |
| --- | |
| **Built for the MCP ecosystem** ๐ค **Ready for AI-powered gaming** ๐ฎ |