chess-results
Click on "Deploy 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., "@chess-resultssearch players with last name Huber in AUT"
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.
chess-results
Tools for Chess-Results — for AI agents and the terminal.
Queries — players (tournament appearances, national idents, FIDE ids, ratings, player cards), tournaments, any tournament page as data (rankings, pairings, round results, team compositions, tables), and the leagues of an Austrian championship season. No login needed.
Team result entry — from a photographed paper match report to saved results. Every player is checked against both clubs' member lists and the teams' rosters on Chess-Results, missing idents are looked up, Chess-Results' own check runs, and results are saved only after explicit confirmation.
One folder, four ways in: a Claude Code plugin, an OpenClaw plugin or skill, an MCP server for any MCP client (Codex, …), and a command line.
Chess-Results has no API. The client reads its public pages and replays the website's own forms, spacing and caching its requests.
Install
You need Python 3.11+ and the packages in requirements.txt:
pip install -r requirements.txtClaude Code
/plugin marketplace add odrobnik/chess-results-skill
/plugin install chess-results@chess-results-skillOpenClaw — as a plugin (MCP tools plus the skill), or as a skill only:
openclaw plugins install git:github.com/odrobnik/chess-results-skill@v0.1.0
openclaw skills install @odrobnik/chess-resultsCodex or another MCP client — start scripts/server.py over stdio:
[mcp_servers.chess-results]
command = "python3"
args = ["/path/to/chess-results/scripts/server.py"]Command line
python3 scripts/cli.py tournaments --name "Landesliga" --country AUT
python3 scripts/cli.py players --last-name Huber --federation AUTSee SETUP.md for every option, including the OpenClaw details.
Related MCP server: livetennisapi-mcp
Tools
MCP tool | Command line | What it does |
|
| Players and their tournament appearances |
|
| Birth year, ratings and games in one tournament |
|
| Tournaments by name, place, organiser, country |
|
| Any tournament page as tables, with links to the other views |
|
| The leagues of an Austrian championship season |
|
| Check a match report against Chess-Results; saves nothing |
|
| Check and save, only with |
|
| Whether a login is stored and works |
SKILL.md describes the match-report workflow the agent follows.
Login and club settings
The queries are public. Result entry needs a Chess-Results login and your club's settings:
Login — run
python3 scripts/cli.py loginonce, in your own terminal. It asks for your personal number and password (hidden) and stores them in the system credential store: macOS Keychain, Windows Credential Manager or Linux Secret Service. On a machine without one,cli.py login --filewrites a private file (mode 600) instead. The password never goes into a config file or a chat.Club settings — copy
examples/chess-results.example.jsontochess-results.jsonand adapt it (your club's name, its leagues, the entry deadline). It stays out of the repository.
Good to know
Be gentle with the server. Requests are spaced and retried with back-off, and public pages are cached. Ask for what you need, not whole seasons in a loop.
Appearances are not a register. A player found by name alone may be several people, and one person may appear under several spellings.
Saved results are public to the whole league. The agent only saves after the check came back clean and you said yes.
Tests
python3 -m unittest discover -s testsThe tests run offline. Every club, player and number in them is made up.
Changes
0.2.0 — Query results are consistent data: ISO dates everywhere, the last update
of a tournament as a timestamp (updatedAt, was "19 Hours 24 Min."), numbers as
integers, full tournament names in player searches (the site cuts them to 30
characters), a typed player block on player cards, start/end on tournament
pages, unique column names (a schedule's two "Team" columns no longer collapse into
one), match headings on round pages, and no menu entries among tournament details.
cli.py enter saves only after a typed yes (or --yes). SECURITY.md describes what
the skill accesses.
0.1.0 — First release.
License
MIT — see LICENSE. Not affiliated with Chess-Results or its operators; use it within the site's terms.
This server cannot be deployed
Maintenance
Related MCP Connectors
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Grounded sports predictions plus European soccer and tennis arbitrage data for AI agents.
Live competitive-game predictions, meta data and decision tools for AI agents.
Round-robin ladders and match scores for small clubs. Players join by QR poster; no app, no account.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI tools to query sports tournaments, leaderboards, predictions, and match stats from the Tulidu Sport platform.7 npmMIT- AlicenseAqualityAmaintenanceReal-time tennis data for ATP, WTA, Challenger and ITF: live scores, player rankings, match-winner odds, and model win-probability. 12 read-only tools; a tier-gated endpoint returns a plain-English explanation of which plan it needs rather than a bare 403. Requires a paid API key.2491 npm152MIT
- AlicenseBqualityCmaintenanceProvides AI agents with live, grounded sports data including model probabilities, track records, and European soccer and tennis arbitrage opportunities, so they answer from real numbers instead of stale guesses.1344 npm1MIT
- FlicenseAqualityCmaintenanceEnables AI agents and LLMs to query SportLink data through natural language, including searching for events, trainings, jobs, clubs, and coaches, as well as viewing profiles and calculating matches.7-