Browser

chess-results

Try it

Work with Chess-Results (chess-results.com) — look up players (appearances, national idents, FIDE ids, ratings, player cards), find tournaments, read any tournament page (rankings, pairings, round results, team compositions, tables), list a season's Austrian championship leagues, and turn photographed team match reports into entered results — check every player against the clubs' member lists and team rosters on Chess-Results, and save them through Chess-Results' online result entry without a browser. Use for questions about chess tournaments, players or team results on Chess-Results, and when the user sends photos of team match reports (Spielberichte).

What it does

Tools for Chess-Results, as an MCP server () and as a command line (, relative to this skill's folder — in OpenClaw). Chess-Results has no API: everything is read off its pages, and result entry replays the website's own forms. Quote what the tools return; don't fill gaps from memory.

The skill document

chess-results

Tools for Chess-Results, as an MCP server (chess-results) and as a command line (scripts/cli.py, relative to this skill's folder — {baseDir} in OpenClaw). Chess-Results has no API: everything is read off its pages, and result entry replays the website's own forms. Quote what the tools return; don't fill gaps from memory.

Setup

See SETUP.md: Python packages, the one-time login (stored in the system credential store, never in a file), and the club settings for result entry.

Queries

QuestionMCP toolCommand line
Who is this player, where did they play, what are their ident/FIDE id?search_playerscli.py players --last-name …
Birth year, ratings, games in one tournamentplayer_card(tnr, snr)cli.py player
Which tournaments match a name, place, organiser, country?search_tournamentscli.py tournaments --name … --country AUT
Ranking, pairings, round results, line-ups, final tabletournament(tnr), then follow its viewscli.py tournament [--art N --rd N]
The leagues of an Austrian championship seasonchampionship_leagues(year, prefix)cli.py leagues --prefix …
Is a login stored, does it work?statuscli.py status
  • search_players needs a last_name, ident, fide_id or federation. It returns tournament appearances, not a membership register: a player grouped by name only (no FIDE id or ident) may be several people, and one person may appear under several spellings. Say so.
  • Chess-Results throttles bursts. Ask for what the question needs; the tools space, retry and cache requests.

Team match reports → Chess-Results

1. Transcribe the photos

One entry per match, exactly as written — do not correct names or numbers:

{"date": "2026-10-04", "matches": [
  {"division": "2. Klasse Nord", "round": 2,
   "home": {"team": "Musterdorf 2"}, "away": {"team": "Beispielstadt 1"}, "total": "1:3",
   "boards": [
     {"home": ["900101", "HUBER K."], "result": "1-0", "away": ["", "Lang Eva"]},
     {"home": null, "result": "--+", "away": ["900204", "Wolff"]}]}]}
  • A player is [ident, name as written]; "" where the sheet has no ident (often the opponents) — it is looked up. null is a board nobody sat at (a no-show).
  • Results from the home side: 1-0, 0-1, ½-½; forfeits +--, --+, ---; ? for not known yet. A blank result with both players present: ask the user.
  • Read digits carefully (1/7, 3/8, 0/6); say where a digit was unclear.
  • Home and guest written the wrong way round is fine: Chess-Results' pairing decides and the report is turned around (a NOTE in the log). Tell the user.

2. Check — check_match_report(report) / cli.py check report.json

Logs in, finds the pairing by date and the club's team, reads both clubs' member lists on the round date and the team compositions, and checks every player: the ident belongs to that club; the written name fits; no other player of the same team fits it better (catches a relative's ident). Missing idents are filled in from the team roster, then the club. Results, no-shows, total and board order are checked, then Chess-Results' own "Eingabe Prüfen" runs. Nothing is saved. Show the user the log and every STOP, NOTICE and warn.

3. Enter — enter_match_report(completed, confirm=true) / cli.py enter — only after a clear yes

Pass the completed report from the check. Saved results are visible to the whole league (changeable later; Chess-Results logs who saved them). Unclean matches and matches outside the entry window are not saved; the overview is re-read to confirm. The entry page only offers the round currently open.

Credentials

The login lives in the system credential store — or, on a machine without one, a private file (cli.py login --file) — and is written only by the user, in their own terminal (python3 scripts/cli.py login). Never ask for the password in chat, never read or print it. Only result entry needs it; all queries are public.

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

More from odrobnik

Browse all skills

Automate George banking (Erste/Sparkasse AT): balances, transactions, and SEPA file upload in JSON.

by odrobnik132 installs1 stars

Text-to-speech, sound effects, music generation, voice management, and quota checks via the ElevenLabs API. Use when generating audio with ElevenLabs or mana...

by Oliver Drobnik211 installs2 stars

Manage multiple OpenAI Codex accounts by capturing current login tokens, switching between saved accounts, and auto-selecting the best one based on quota bud...

by odrobnik141 installs3 stars

Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehic...

by odrobnik151 installs1 stars

Fetches health data from the Withings API for multiple family members including weight, body composition (fat, muscle, bone, water), activity, and sleep. Use...

by odrobnik96 installs1 stars

Control and monitor Snapmaker 2.0 3D printers via their HTTP API. Status, job management, progress watching, and event monitoring.

by odrobnik82 installs1 stars