@chessceo/mcp 0.49.7 → 0.49.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -2
- package/docs/engine-usage.md +37 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -122,8 +122,9 @@ const EXAMPLE_REPERTOIRE_PGN = loadBundledDoc("examples/najdorf-6-f4-white.pgn",
|
|
|
122
122
|
// putting it there would surface this to any caller who can list tools,
|
|
123
123
|
// not just ones who actually hold a token.
|
|
124
124
|
const ENGINE_GUIDE = {
|
|
125
|
-
stockfish: "Objective calculation
|
|
126
|
-
lc0: "Neural-net engine trained on
|
|
125
|
+
stockfish: "Objective calculation, the default cloud engine at about 100 million nodes per second. A few seconds gives a very strong view of the position. Use it on every position, including when steering by lc0 or human. Its score is the objective value with best defense: 0.00 means objectively a draw with best play, not that nothing is happening or that neither side has chances. Many positions that are very hard to play for a human score 0.00. Scores drift toward 0.00 as the search deepens, especially in drawn positions. Use it to check whether a tactic is real, whether a defense holds, and whether a move loses material or the game.",
|
|
126
|
+
lc0: "Neural-net engine trained on self-play games, not human games. It is better than Stockfish at long-term ideas and at judging which side is practically on top. Never gives 0.00: it always says which side prefers the position, at least a little. Use it when Stockfish gives 0.00 to see who still has the practical edge, and to find where the long-term ideas are. Contempt changes how it values a draw and which side it plays for: contempt at -20 makes Black play for a win, which is useful for finding ideas, including in openings. It is much weaker tactically than Stockfish, so confirm any concrete line with Stockfish.",
|
|
127
|
+
human: "Neural net trained only on human games, about 11 million rated games. Its moves and evaluations are practical, not objective: the moves it suggests are the ones a human would find and play. It punishes dubious moves less than Stockfish, because human games contain many imperfect moves that still work in practice, so a move with a sound idea behind it can score well here. Use it to predict how a person will respond to an idea, to find ideas (it may like a move that only fails to a refutation no human would find; Stockfish shows whether that refutation exists), and to see how a human would evaluate a position, especially positional or unclear ones. Like lc0 it is weaker in very unusual positions, and its evaluations there can be trusted much less. Stockfish remains the check on tactics and on whether a practical idea is objectively sound.",
|
|
127
128
|
combo: "Runs Stockfish and Lc0 together — use when you want both the objective read and the practical/human-feel read on the same position.",
|
|
128
129
|
};
|
|
129
130
|
// Modern engines give equality very often, so small numbers are not "equal".
|
package/docs/engine-usage.md
CHANGED
|
@@ -34,7 +34,7 @@ Concrete failure this rule blocks: the LLM says *"9...Bb7: both engines 0.00"* a
|
|
|
34
34
|
|
|
35
35
|
### Stockfish — objective source of truth
|
|
36
36
|
|
|
37
|
-
Stockfish is
|
|
37
|
+
Stockfish is the default cloud engine, searching about 100 million nodes per second. A few seconds gives a very strong view of the position. Use it on every position, including when steering by Lc0 or the human engine. Its score is objective: *"is this position a draw, a win, or a loss with best play from both sides?"* 0.00 means objectively a draw with best play, not that nothing is happening.
|
|
38
38
|
|
|
39
39
|
Trust Stockfish for questions like:
|
|
40
40
|
- Does this defensive line actually hold?
|
|
@@ -44,11 +44,11 @@ Trust Stockfish for questions like:
|
|
|
44
44
|
|
|
45
45
|
**Watch out for:** Stockfish gives 0.00 to a *lot* of positions in the opening and early middlegame. 0.00 does not mean "trivial draw" — it means "objectively drawn with best play." Practically, one side can still be much harder to defend for a human. Every top-level classical game past move 8 typically shows 0.00 in Stockfish's eyes, yet real players win and lose those games all the time.
|
|
46
46
|
|
|
47
|
-
### Lc0 — practical eval,
|
|
47
|
+
### Lc0 — practical eval, long-term ideas
|
|
48
48
|
|
|
49
|
-
Lc0 is a neural net trained on self-play games.
|
|
49
|
+
Lc0 is a neural net trained on self-play games, not human games. It is better than Stockfish at long-term ideas and at judging which side is practically on top. It never gives 0.00: it always says which side prefers the position, at least a little.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Use it when Stockfish gives 0.00 to see who still has the practical edge, and to find where the long-term ideas are. Contempt changes how it values a draw and which side it plays for: contempt at -20 makes Black play for a win, which is useful for finding ideas, including in openings.
|
|
52
52
|
|
|
53
53
|
Trust Lc0 for:
|
|
54
54
|
- Which side has practical chances in an opening structure
|
|
@@ -56,7 +56,20 @@ Trust Lc0 for:
|
|
|
56
56
|
- Whether a slow positional idea has long-term venom
|
|
57
57
|
- Ranking candidate moves when Stockfish sees several as equal
|
|
58
58
|
|
|
59
|
-
**Watch out for:** Lc0
|
|
59
|
+
**Watch out for:** Lc0 is much weaker tactically than Stockfish. If Lc0 loves a line but Stockfish doesn't, look for a concrete tactical justification (or a refutation). Confirm any concrete line with Stockfish.
|
|
60
|
+
|
|
61
|
+
### Human engine — the practical read
|
|
62
|
+
|
|
63
|
+
The human engine is a neural net trained only on human games, about 11 million rated games. Its moves and evaluations are practical, not objective: the moves it suggests are the ones a human would find and play.
|
|
64
|
+
|
|
65
|
+
It punishes dubious moves less than Stockfish. Human games contain many imperfect moves that still work in practice, so a move with a sound idea behind it can score well here.
|
|
66
|
+
|
|
67
|
+
Use it to:
|
|
68
|
+
- Predict how a person will respond to an idea.
|
|
69
|
+
- Find ideas. It may like a move that only fails to a refutation no human would find. Stockfish shows whether that refutation exists.
|
|
70
|
+
- See how a human would evaluate a position, especially positional or unclear ones.
|
|
71
|
+
|
|
72
|
+
**Watch out for:** like Lc0, it is weaker in very unusual positions, and its evaluations there can be trusted much less. Stockfish remains the check on tactics and on whether a practical idea is objectively sound.
|
|
60
73
|
|
|
61
74
|
### Rule of thumb
|
|
62
75
|
|
|
@@ -192,6 +205,25 @@ Override the defaults with `stockfish_multipv` / `lc0_multipv` when a specific p
|
|
|
192
205
|
|
|
193
206
|
The skipped engine's field is omitted from the response (not present as an empty object).
|
|
194
207
|
|
|
208
|
+
## Renting and choosing engines
|
|
209
|
+
|
|
210
|
+
Analysis needs a running rental. Start one with `start_cloud_engine`, using a `machine_type` SKU from `list_cloud_machine_options`. Each SKU provides one of three shapes, shown in its `engine` field:
|
|
211
|
+
|
|
212
|
+
- **`stockfish`**: Stockfish only. Fits when the question is objective (is this tactic real, does this defense hold).
|
|
213
|
+
- **`lc0`**: Lc0 only. Fits the practical, human-feel read, or running alongside a `deep_analyse` that holds the Stockfish side.
|
|
214
|
+
- **`combo`**: both engines in one container. The default, and the right choice for prep decisions, where both reads are needed on the same position.
|
|
215
|
+
|
|
216
|
+
Rule of thumb: start a `combo` rental unless the task only needs one engine. A single-engine rental gives one read per position, so a prep walk that needs both reads on a single-engine rental takes two passes.
|
|
217
|
+
|
|
218
|
+
`list_cloud_machine_options` returns the price for each SKU. Show the user the price and get their confirmation before starting a rental; every rental bills per second until `stop_cloud_engine`.
|
|
219
|
+
|
|
220
|
+
Routing to a rental:
|
|
221
|
+
|
|
222
|
+
- `cloud_analyse`, `auto_evaluate`, and `deep_analyse` each take an optional `contract_id` (from `list_cloud_engines`).
|
|
223
|
+
- Without `contract_id`, the call uses the only running rental that can serve the request. If several can, the error lists their contract ids, and you pick one.
|
|
224
|
+
- Any shape works. With `engines` set, the rental must provide those engines: asking for `engines: ["lc0"]` on a stockfish-only rental fails.
|
|
225
|
+
- Do not guess contract ids. Call `list_cloud_engines` first if more than one rental is running.
|
|
226
|
+
|
|
195
227
|
## Worked example
|
|
196
228
|
|
|
197
229
|
User is preparing Black against a 2600 opponent who plays 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5. You want to know if 7.Nb3 or 7.Nf3 is more testing.
|
package/package.json
CHANGED