Spaces:
Running
Running
metadata
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 roommake_move(position)
- Make your move (0-8) and get AI responsesend_chat(message)
- Chat with Mistral AI in your gameget_room_state()
- Get current game state in markdownlist_rooms()
- See all your active gamesswitch_room(room_id)
- Change between games
Utility Tools
get_help()
- Game instructions and board layoutwait_5_seconds()
- Timing utility for operations
๐ฏ How to Play with LeChat
- Connect to this MCP server in LeChat
- Start a game:
create_room()
- Make moves:
make_move(4)
(center square) - Chat with AI:
send_chat("Good move!")
- Check state:
get_room_state()
Board Layout (Positions 0-8):
0 | 1 | 2
---------
3 | 4 | 5
---------
6 | 7 | 8
๐ Example Game Flow
# 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:
# 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
Mistral API Key: Required for AI functionality
- Get from console.mistral.ai
- Set as
MISTRAL_API_KEY
environment variable
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
- In LeChat: Connect to this MCP server
- Type:
create_room()
to start your first game - Play: Use
make_move(position)
to play - Enjoy: Chat and compete with Mistral AI!
Built for the MCP ecosystem ๐ค Ready for AI-powered gaming ๐ฎ