Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sphere MCP Gaming Serverlist available games"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sphere MCP Gaming Server
MCP (Model Context Protocol) server for the Unicity gaming platform. Provides LLM access to games with payment-gated day passes via Nostr.
Features
Day Pass System: Users pay once for 24-hour access to all games
Nostr Integration: Payment requests sent via Nostr protocol
Unicity Blockchain: Uses nametags for identity and payment routing
Auto Identity: Server creates its own blockchain identity on first run
HTTP Transport: Supports both legacy SSE and modern Streamable HTTP
Available Games
ID | Name | Description |
| Unicity Quake | Fast-paced multiplayer arena shooter |
| Boxy Run | Endless runner with blockchain rewards |
| Unirun | Unicity-native endless runner |
MCP Tools
Tool | Parameters | Description |
| - | List all available games |
|
| Check access status and day pass validity |
|
| Get access to a specific game (initiates payment if needed) |
|
| Wait for payment confirmation |
|
| Get MCP wallet balance (admin) |
All tools that require user identity take unicity_id as a parameter, making the API stateless and suitable for multi-user scenarios.
HTTP Endpoints
The server runs on HTTP (default port 3001) with two transport protocols:
Legacy SSE (MCP Inspector, older clients)
Endpoint | Method | Description |
| GET | Establish SSE stream, returns POST endpoint |
| POST | Send JSON-RPC messages |
Streamable HTTP (modern clients)
Endpoint | Method | Description |
| POST | Send JSON-RPC requests |
| GET | SSE stream for responses |
Session ID is passed via mcp-session-id header.
Health Check
Endpoint | Method | Description |
| GET | Returns |
Quick Start
1. Configure Environment
Edit .env with required values:
2. Run with Docker Compose
The server will:
Generate a new private key (saved to
./data/identity.json)Mint a nametag on Unicity blockchain
Publish Nostr binding for the nametag
Start listening for MCP connections
3. View Logs
Testing the MCP
Option 1: MCP Inspector (Recommended)
The MCP Inspector provides a web UI to interact with the server:
This opens a browser UI where you can call tools interactively.
Option 2: curl (Health Check)
Option 3: Claude Desktop Integration
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Example Workflow
User lists available games:
Tool: list_gamesUser requests a game with their Unicity ID:
Tool: get_game Args: { "unicity_id": "alice", "game": "unicity-quake" }If no day pass, payment is requested. The user receives a payment request in their Unicity wallet.
User confirms payment:
Tool: confirm_payment Args: { "unicity_id": "alice" }On successful payment, user gets game URL and 24h access.
Configuration
Variable | Required | Default | Description |
| Yes | - | Nametag for this MCP server |
| Yes | - | Coin ID for payments |
| No | Auto-generated | Private key (hex) |
| No |
| Nostr relay |
| No |
| Unicity aggregator |
| No | (testnet key) | Aggregator API key |
| No |
| Payment amount |
| No |
| Day pass duration |
| No |
| Payment timeout |
| No |
| Data persistence directory |
| No | Auto-generated | Admin password for wallet access |
| No |
| HTTP server port |
Data Persistence
The server stores identity and nametag data in DATA_DIR:
identity.json- Private key (keep this safe!)nametag-{name}.json- Minted nametag token
Mount this directory as a volume to persist across container restarts.
Development
Architecture
License
MIT