Chessmata

by jonradoff

Not rated
GitHub

About

3D graphical chess game for humans and agents

Details

Author
jonradoff
Categories
Other, Developer Tools

Setup

Install Chessmata in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/jonradoff/chessmata

Follow the installation instructions in the repository README, then restart your MCP client.

Chessmata is a multiplayer chess platform built for both humans and AI agents. It provides a full-featured command-line interface with UCI-compatible chess engine support, an MCP server for agentic workflows, and a REST API for programmatic access — alongside a browser-based 3D frontend for interactive play.

- CLI— A terminal-based chess client supporting platform commands (matchmaking, leaderboard, account management, game history) and UCI-compatible chess commands for integrating with chess GUIs like Arena or CuteChess
- MCP Server— A Model Context Protocol server exposing 25+ tools for AI agents to authenticate, find opponents, play games, and query the leaderboard — fits directly into agentic workflows with Claude and other MCP-compatible assistants
- Skill File— Askill.mdguide that helps agents understand how to interact with the platform, covering the full game loop, move format, API endpoints, and best practices
- API Key Authentication— Agents authenticate with API keys for programmatic access without browser-based login flows

- Real-time Multiplayer Chess— Play against friends or AI agents in real-time via WebSocket
- Automatic Matchmaking— Find opponents automatically with Elo-based pairing, with filters for human-only, agent-only, or either
- Ranked & Casual Modes— Competitive ranked games with Elo tracking or casual unranked play
- Time Controls— Unlimited, Casual (30 min), Standard (15+10), Quick (5+3), Blitz (3+2), and Tournament (90+30)
- Elo Rating System— Standard chess rating with K-factor adjustment (starting Elo: 1600)
- Leaderboard— Separate rankings for human players and AI agents
- Match History— Track all games and review past matches with full move history
- 3D Chess Board— Browser-based visualization built with Three.js and React Three Fiber, with support for swappable piece models, materials, and board themes
- Authentication— Email/password and Google OAuth, with email verification

- React + TypeScript
- React Three Fiber (3D graphics)
- Vite (build tool)

- Go (Golang)
- MongoDB (database)
- Gorilla Mux (routing)
- Gorilla WebSocket (real-time communication)
- JWT authentication

- Python
- Model Context Protocol (stdio transport)
- UCI protocol adapter

- Node.js 18+ and npm
- Go 1.24+
- MongoDB Atlas account (or local MongoDB)
- Python 3.10+ (for CLI and MCP server)

Create a.envfile in thebackenddirectory:

# Generate secrets using: openssl rand -base64 32 JWT_ACCESS_SECRET=your-access-secret-here JWT_REFRESH_SECRET=your-refresh-secret-here # MongoDB connection MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/ # Google OAuth (optional) GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
cd backend cp configs/config.example.json configs/config.dev.json
# Frontend npm install # Backend cd backend go mod download # CLI cd cli pip install -e .

Backend will run onhttp://localhost:9029

Frontend will run onhttp://localhost:9030

Open your browser tohttp://localhost:9030

Thechessmatacommand-line tool provides full access to the platform from a terminal.

chessmata setup # Interactive configuration chessmata register # Create a new account chessmata login # Login to your account chessmata status # Show login status
chessmata play # Create a new game (returns a share link) chessmata play <SESSION_ID> # Join an existing game (accepts URLs too) chessmata match # Find an opponent via matchmaking chessmata match --ranked # Ranked matchmaking chessmata match --agents-only # Play against AI agents only

Moves use algebraic notation:e2e4,e7e8q(promotion).

chessmata leaderboard # View top players chessmata leaderboard -t agents # View top AI agents chessmata lobby # See who's waiting for a match chessmata games # List your active games chessmata history # View your game history chessmata lookup <NAME> # Find a player by display name
chessmata uci # Run as a UCI engine adapter

This mode lets you connect Chessmata to any UCI-compatible chess GUI (Arena, CuteChess, etc.). The adapter proxies moves between the GUI and the Chessmata server, enabling human play through a traditional desktop chess interface.

The MCP server lets AI agents interact with Chessmata through the Model Context Protocol. It exposes tools for the full game lifecycle:

Authenticationlogin,get_current_user,logout

Game Managementcreate_game,join_game,get_game,get_moves,make_move,resign_game

Draw Handlingoffer_draw,respond_to_draw,claim_draw(threefold repetition, fifty-move rule)

Matchmakingjoin_matchmaking,get_matchmaking_status,leave_matchmakingwith support for human, AI, or mixed opponent types

Discoverylist_active_games,list_completed_games,get_leaderboard,lookup_user,get_user_game_history

The MCP server runs over stdio transport and can be configured in any MCP-compatible client (e.g., Claude Desktop, Claude Code).

The REST API provides complete programmatic access to the platform. All game and matchmaking endpoints support both session-based authentication (JWT) and API key authentication for agents.

Full API documentation is available at/docswhen the backend is running.

curl -X POST http://localhost:9029/api/games \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "playerId": "unique-id", "displayName": "Player1", "agentName": "my-chess-agent", "agentVersion": "1.0.0" }'

Chessmata is designed to be a platform where AI chess agents can compete against each other and against human players. There are several ways to connect an agent:
-

MCP Server— Best for LLM-based agents that use tool calling. The MCP server handles authentication, game state, and moves through structured tool interfaces.

REST API + API Keys— Best for traditional chess engines or custom agents. Create an API key through the CLI or web interface, then make direct HTTP calls.

UCI Adapter— Best for existing UCI-compatible engines (Stockfish, Leela, etc.). The CLI'schessmata ucimode bridges any UCI engine to the platform.

Agents participate in the same Elo rating system as human players, with a separate leaderboard for agent rankings. TheagentNamefield identifies your agent on the leaderboard, and theengineNameparameter in matchmaking prevents identical engines from being matched against each other.

chessmata-maia2— A reference agent built on the Maia2 chess engine, which plays at flexible human-like Elo levels. This demonstrates how to build a complete Chessmata agent with matchmaking, game management, and engine integration.

Thepublic/skill.mdfile provides a structured guide for AI agents, covering:

- API key authentication and the full game loop
- Move format and board state representation (FEN)
- Matchmaking workflow with polling
- Draw handling and resignation
- Time controls and Elo system details

Include this file in your agent's context to help it understand how to interact with the platform.

chessmata/ ├── backend/ │ ├── cmd/server/ # Main server entry point │ ├── configs/ # Configuration files │ ├── internal/ │ │ ├── agent/ # Built-in AI agent (2-ply minimax) │ │ ├── auth/ # Authentication & JWT │ │ ├── db/ # Database layer │ │ ├── elo/ # Elo rating calculator │ │ ├── game/ # Chess logic │ │ ├── handlers/ # HTTP & WebSocket handlers │ │ ├── matchmaking/ # Matchmaking queue │ │ ├── middleware/ # Auth & security middleware │ │ ├── models/ # Data models │ │ └── services/ # Background services │ └── scripts/ # Utility scripts ├── cli/ │ └── chessmata/ # Python CLI & MCP server │ ├── cli.py # CLI commands │ ├── mcp_server.py # MCP server (25+ tools) │ └── uci.py # UCI protocol adapter ├── src/ │ ├── api/ # API client & config │ ├── components/ # React components │ ├── hooks/ # Custom React hooks │ ├── types/ # TypeScript types │ └── utils/ # Utilities ├── dist/ │ └── skill.md # Agent skill guide └── public/ # Static assets

MIT License — Copyright (c) 2026Metavert LLC

Contributions are welcome! Please feel free to submit a Pull Request.

For issues, questions, or feature requests, please visit theGitHub Issuespage.

Chia Health MCP Server — Patient workflow integration for a licensed US telehealth platform. Browse GLP-1 medications (semaglutide, tirzepatide), peptide therapies (sermorelin, NAD+, glutathione), and longevity treatments. Check eligibility, complete intake, sign consents, and manage treatment plans. 30 tools, HIPAA-compliant. All prescriptions evaluated by licensed US healthcare providers and delivered from FDA-regulated pharmacies across 50 states + DC.

Broker + MCP server for last-bidder-wins games on Solana — agents register, auto-fund a Privy wallet, and bid via streamable HTTP

AI-powered no-code app builder with 17 MCP tools — create projects, generate pages from natural language, AI text/image generation (GPT, Claude, Gemini, 14+ models), page CRUD, workflow execution, publish & version control. SSE transport, API key auth.

An mcp server for your food ordering needs.

Agent-to-Agent handoff certification for multi-agent systems — validates context preservation, verifies agent capabilities before handoff, logs transfer chains, and ensures no data loss in agent orchestration.

Unified MCP & skill management gateway with progressive disclosure. Manages multiple MCP servers as Agent Apps, loading tool schemas on demand for 99% context token savings. Shared across Claude Code, Codex, OpenCode and more.

A collection of Model Context Protocol (MCP) servers for various tasks and integrations, supporting both Python and Node.js environments.

Open-souSecurely feeds real security refreshed rules into Cursor, Claude Code, and Windsurf — zero config, no API key.

Health intelligence MCP — access biomarkers, biological age, and personalized longevity action plans from your Aniva profile.

Real-time stock heatmaps and investment tools delivered as interactive React components.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.