PlyMove
Pedagogical chess intelligence for AI agents: explain positions and games for a target Elo.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.plymove.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.plymove.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (6)
🟢build_game_storyboard(pgn, target_elo, language, max_moments, include_rendered_story, ...)
Build a verified Elo-aware game storyboard: opening, story arc, ranked moments, branches, and main lesson. Read-only analysis — does not modify user files or external systems.
Esquema de entrada
{
"type": "object",
"properties": {
"pgn": {
"type": "string",
"description": "Full game PGN"
},
"target_elo": {
"type": "integer",
"description": "Learner Elo rating",
"minimum": 400,
"maximum": 3500
},
"language": {
"type": "string",
"description": "Output language (e.g. en)",
"default": "en"
},
"max_moments": {
"type": "integer",
"description": "Maximum storyboard chapters",
"minimum": 1,
"maximum": 12,
"default": 5
},
"include_rendered_story": {
"type": "boolean",
"description": "Include accessible recap prose",
"default": true
},
"engine_depth": {
"type": "integer",
"description": "Stockfish depth for deep analysis",
"minimum": 4,
"maximum": 24
},
"shallow_depth": {
"type": "integer",
"description": "Stockfish depth for selective shallow scan (defaults to min(engine_depth, 10))",
"minimum": 4,
"maximum": 20
},
"output_format": {
"type": "string",
"enum": [
"annotated_pgn",
"storyboard_json",
"both"
],
"description": "Return annotated PGN, JSON storyboard, or both (default both).",
"default": "both"
}
},
"required": [
"pgn",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"storyboard"
]
},
"target_elo": {
"type": "integer",
"minimum": 400,
"maximum": 3500
},
"analysis_id": {
"type": "string"
},
"annotated_pgn": {
"type": "string",
"description": "Legal annotated PGN when output_format includes annotated_pgn or both."
},
"main_lesson": {
"type": "string"
},
"rendered_story": {
"type": "string"
},
"human_model_available": {
"type": "boolean"
},
"build": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"storyboard_pipeline_version": {
"type": "string"
},
"git_sha": {
"type": "string"
},
"core_git_sha": {
"type": "string"
},
"adapter_git_sha": {
"type": "string"
},
"adapter_version": {
"type": "string"
},
"deployment_id": {
"type": "string"
},
"upstream_mcp_url": {
"type": "string"
}
}
},
"game": {
"type": "object",
"properties": {
"white": {
"type": "string"
},
"black": {
"type": "string"
},
"result": {
"type": "string"
},
"event": {
"type": "string"
}
}
},
"opening": {
"type": "object",
"properties": {
"recognized": {
"type": "boolean"
},
"eco": {
"type": "string"
},
"family": {
"type": "string"
},
"name": {
"type": "string"
},
"variation": {
"type": "string"
},
"confidence": {
"type": "number"
},
"source": {
"type": "string"
},
"source_pin": {
"type": "string"
},
"matched_ply": {
"type": "integer"
}
}
},
"story_arc": {
"type": "object",
"properties": {
"premise": {
"type": "string"
},
"first_imbalance": {
"type": "string"
},
"climax_event_id": {
"type": "string"
},
"resolution": {
"type": "string"
},
"main_lesson": {
"type": "string"
}
}
},
"moments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"event_id": {
"type": "string"
},
"category": {
"type": "string"
},
"anchor_ply": {
"type": "integer"
},
"move_label": {
"type": "string"
},
"title": {
"type": "string"
},
"reason_selected": {
"type": "string"
},
"sequence": {
"type": "object",
"additionalProperties": true
},
"branches": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"engine": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"depth": {
"type": "integer"
}
}
},
"human_model": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"available",
"degraded",
"unavailable"
]
},
"target_elo": {
"type": "integer"
}
}
},
"verification": {
"type": "object",
"properties": {
"pgn_legal": {
"type": "boolean"
},
"all_variations_legal": {
"type": "boolean"
},
"mainline_legal": {
"type": "boolean"
},
"branches_legal": {
"type": "boolean"
},
"mainline_preserved": {
"type": "boolean"
},
"opening_verified": {
"type": "boolean"
},
"claims_verified": {
"type": "boolean"
},
"claim_count": {
"type": "integer"
},
"verified_claim_count": {
"type": "integer"
},
"branch_count": {
"type": "integer"
},
"pedagogical_branch_count": {
"type": "integer"
},
"chapters_requiring_branches": {
"type": "integer"
},
"chapters_with_branches": {
"type": "integer"
},
"branch_coverage_ratio": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"diagnostics": {
"type": "object",
"additionalProperties": true,
"properties": {
"runtime_ms": {
"type": "integer"
},
"positions_scanned": {
"type": "integer"
},
"events_detected": {
"type": "integer"
},
"moments_selected": {
"type": "integer"
},
"cache_hit": {
"type": "boolean"
},
"degraded": {
"type": "boolean"
},
"opening_explanation": {
"type": "string"
},
"branch_coverage": {
"type": "object",
"additionalProperties": true
},
"stage_timings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"output_format": {
"type": "string"
}
}
}
},
"required": [
"kind",
"target_elo",
"verification"
],
"description": "Elo-aware game storyboard with optional annotated PGN, opening, story arc, ranked moments, and verification."
}🟢explain_game(pgn, target_elo, verbosity)
Legacy alias for build_game_storyboard — Elo-aware game storyboard (read-only analysis; does not write files).
Esquema de entrada
{
"type": "object",
"properties": {
"pgn": {
"type": "string",
"description": "Full game PGN"
},
"target_elo": {
"type": "integer",
"description": "Learner Elo rating",
"minimum": 400,
"maximum": 3500
},
"verbosity": {
"type": "string",
"enum": [
"minimal",
"standard",
"detailed"
],
"description": "Storyboard chapter count: minimal (~3), standard (~5), detailed (~8)."
}
},
"required": [
"pgn",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"storyboard"
]
},
"target_elo": {
"type": "integer",
"minimum": 400,
"maximum": 3500
},
"analysis_id": {
"type": "string"
},
"annotated_pgn": {
"type": "string",
"description": "Legal annotated PGN when output_format includes annotated_pgn or both."
},
"main_lesson": {
"type": "string"
},
"rendered_story": {
"type": "string"
},
"human_model_available": {
"type": "boolean"
},
"build": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"storyboard_pipeline_version": {
"type": "string"
},
"git_sha": {
"type": "string"
},
"core_git_sha": {
"type": "string"
},
"adapter_git_sha": {
"type": "string"
},
"adapter_version": {
"type": "string"
},
"deployment_id": {
"type": "string"
},
"upstream_mcp_url": {
"type": "string"
}
}
},
"game": {
"type": "object",
"properties": {
"white": {
"type": "string"
},
"black": {
"type": "string"
},
"result": {
"type": "string"
},
"event": {
"type": "string"
}
}
},
"opening": {
"type": "object",
"properties": {
"recognized": {
"type": "boolean"
},
"eco": {
"type": "string"
},
"family": {
"type": "string"
},
"name": {
"type": "string"
},
"variation": {
"type": "string"
},
"confidence": {
"type": "number"
},
"source": {
"type": "string"
},
"source_pin": {
"type": "string"
},
"matched_ply": {
"type": "integer"
}
}
},
"story_arc": {
"type": "object",
"properties": {
"premise": {
"type": "string"
},
"first_imbalance": {
"type": "string"
},
"climax_event_id": {
"type": "string"
},
"resolution": {
"type": "string"
},
"main_lesson": {
"type": "string"
}
}
},
"moments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"event_id": {
"type": "string"
},
"category": {
"type": "string"
},
"anchor_ply": {
"type": "integer"
},
"move_label": {
"type": "string"
},
"title": {
"type": "string"
},
"reason_selected": {
"type": "string"
},
"sequence": {
"type": "object",
"additionalProperties": true
},
"branches": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"engine": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"depth": {
"type": "integer"
}
}
},
"human_model": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"available",
"degraded",
"unavailable"
]
},
"target_elo": {
"type": "integer"
}
}
},
"verification": {
"type": "object",
"properties": {
"pgn_legal": {
"type": "boolean"
},
"all_variations_legal": {
"type": "boolean"
},
"mainline_legal": {
"type": "boolean"
},
"branches_legal": {
"type": "boolean"
},
"mainline_preserved": {
"type": "boolean"
},
"opening_verified": {
"type": "boolean"
},
"claims_verified": {
"type": "boolean"
},
"claim_count": {
"type": "integer"
},
"verified_claim_count": {
"type": "integer"
},
"branch_count": {
"type": "integer"
},
"pedagogical_branch_count": {
"type": "integer"
},
"chapters_requiring_branches": {
"type": "integer"
},
"chapters_with_branches": {
"type": "integer"
},
"branch_coverage_ratio": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"diagnostics": {
"type": "object",
"additionalProperties": true,
"properties": {
"runtime_ms": {
"type": "integer"
},
"positions_scanned": {
"type": "integer"
},
"events_detected": {
"type": "integer"
},
"moments_selected": {
"type": "integer"
},
"cache_hit": {
"type": "boolean"
},
"degraded": {
"type": "boolean"
},
"opening_explanation": {
"type": "string"
},
"branch_coverage": {
"type": "object",
"additionalProperties": true
},
"stage_timings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"output_format": {
"type": "string"
}
}
}
},
"required": [
"kind",
"target_elo",
"verification"
],
"description": "Elo-aware game storyboard with optional annotated PGN, opening, story arc, ranked moments, and verification."
}🟢find_teaching_moments(pgn, target_elo, verbosity)
Legacy alias for build_game_storyboard — ranked storyboard chapters from a PGN (read-only analysis).
Esquema de entrada
{
"type": "object",
"properties": {
"pgn": {
"type": "string",
"description": "Full game PGN"
},
"target_elo": {
"type": "integer",
"description": "Learner Elo rating",
"minimum": 400,
"maximum": 3500
},
"verbosity": {
"type": "string",
"enum": [
"minimal",
"standard",
"detailed"
],
"description": "Storyboard chapter count: minimal (~3), standard (~5), detailed (~8)."
}
},
"required": [
"pgn",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"storyboard"
]
},
"target_elo": {
"type": "integer",
"minimum": 400,
"maximum": 3500
},
"analysis_id": {
"type": "string"
},
"annotated_pgn": {
"type": "string",
"description": "Legal annotated PGN when output_format includes annotated_pgn or both."
},
"main_lesson": {
"type": "string"
},
"rendered_story": {
"type": "string"
},
"human_model_available": {
"type": "boolean"
},
"build": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"storyboard_pipeline_version": {
"type": "string"
},
"git_sha": {
"type": "string"
},
"core_git_sha": {
"type": "string"
},
"adapter_git_sha": {
"type": "string"
},
"adapter_version": {
"type": "string"
},
"deployment_id": {
"type": "string"
},
"upstream_mcp_url": {
"type": "string"
}
}
},
"game": {
"type": "object",
"properties": {
"white": {
"type": "string"
},
"black": {
"type": "string"
},
"result": {
"type": "string"
},
"event": {
"type": "string"
}
}
},
"opening": {
"type": "object",
"properties": {
"recognized": {
"type": "boolean"
},
"eco": {
"type": "string"
},
"family": {
"type": "string"
},
"name": {
"type": "string"
},
"variation": {
"type": "string"
},
"confidence": {
"type": "number"
},
"source": {
"type": "string"
},
"source_pin": {
"type": "string"
},
"matched_ply": {
"type": "integer"
}
}
},
"story_arc": {
"type": "object",
"properties": {
"premise": {
"type": "string"
},
"first_imbalance": {
"type": "string"
},
"climax_event_id": {
"type": "string"
},
"resolution": {
"type": "string"
},
"main_lesson": {
"type": "string"
}
}
},
"moments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "integer"
},
"event_id": {
"type": "string"
},
"category": {
"type": "string"
},
"anchor_ply": {
"type": "integer"
},
"move_label": {
"type": "string"
},
"title": {
"type": "string"
},
"reason_selected": {
"type": "string"
},
"sequence": {
"type": "object",
"additionalProperties": true
},
"branches": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"engine": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"depth": {
"type": "integer"
}
}
},
"human_model": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"available",
"degraded",
"unavailable"
]
},
"target_elo": {
"type": "integer"
}
}
},
"verification": {
"type": "object",
"properties": {
"pgn_legal": {
"type": "boolean"
},
"all_variations_legal": {
"type": "boolean"
},
"mainline_legal": {
"type": "boolean"
},
"branches_legal": {
"type": "boolean"
},
"mainline_preserved": {
"type": "boolean"
},
"opening_verified": {
"type": "boolean"
},
"claims_verified": {
"type": "boolean"
},
"claim_count": {
"type": "integer"
},
"verified_claim_count": {
"type": "integer"
},
"branch_count": {
"type": "integer"
},
"pedagogical_branch_count": {
"type": "integer"
},
"chapters_requiring_branches": {
"type": "integer"
},
"chapters_with_branches": {
"type": "integer"
},
"branch_coverage_ratio": {
"type": "number"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"diagnostics": {
"type": "object",
"additionalProperties": true,
"properties": {
"runtime_ms": {
"type": "integer"
},
"positions_scanned": {
"type": "integer"
},
"events_detected": {
"type": "integer"
},
"moments_selected": {
"type": "integer"
},
"cache_hit": {
"type": "boolean"
},
"degraded": {
"type": "boolean"
},
"opening_explanation": {
"type": "string"
},
"branch_coverage": {
"type": "object",
"additionalProperties": true
},
"stage_timings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"output_format": {
"type": "string"
}
}
}
},
"required": [
"kind",
"target_elo",
"verification"
],
"description": "Elo-aware game storyboard with optional annotated PGN, opening, story arc, ranked moments, and verification."
}🟢explain_position(fen, target_elo)
Explain a single position for a target learner Elo (read-only analysis).
Esquema de entrada
{
"type": "object",
"properties": {
"fen": {
"type": "string",
"description": "Position FEN"
},
"target_elo": {
"type": "integer",
"description": "Learner Elo rating",
"minimum": 400,
"maximum": 3500
}
},
"required": [
"fen",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"target_elo": {
"type": "integer"
},
"fen": {
"type": "string"
},
"explanation": {
"type": "string"
},
"teaching_reason": {
"type": "string"
},
"task": {
"type": "object",
"additionalProperties": true
},
"evidence": {
"type": "object",
"additionalProperties": true
},
"diagnostics": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"target_elo",
"fen"
],
"description": "Learner-specific position explanation."
}🟢compare_moves(fen, moves, target_elo)
Compare candidate moves at a position for a learner (read-only analysis).
Esquema de entrada
{
"type": "object",
"properties": {
"fen": {
"type": "string",
"description": "Position FEN"
},
"moves": {
"type": "array",
"items": {
"type": "string"
},
"description": "Candidate moves in SAN"
},
"target_elo": {
"type": "integer",
"description": "Learner Elo rating",
"minimum": 400,
"maximum": 3500
}
},
"required": [
"fen",
"moves",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"target_elo": {
"type": "integer"
},
"fen": {
"type": "string"
},
"comparisons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"move_san": {
"type": "string"
},
"legal": {
"type": "boolean"
},
"teaching_score": {
"type": "number"
},
"explanation": {
"type": "string"
},
"task": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"move_san",
"legal"
]
}
},
"diagnostics": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"target_elo",
"fen",
"comparisons"
],
"description": "Pedagogical comparison of candidate moves at a position."
}🟢analyze_what_if(pgn, analysis_id, anchor_ply, move_label, alternative_move_san, ...)
Analyze a user-requested alternative at a mainline decision point: legal SAN validation, Stockfish continuation, Maia naturalness, teaching point, and annotated RAV PGN (read-only).
Esquema de entrada
{
"type": "object",
"properties": {
"pgn": {
"type": "string",
"description": "Full game PGN (or use analysis_id from a prior storyboard)"
},
"analysis_id": {
"type": "string",
"description": "Stored analysis id when PGN is omitted"
},
"anchor_ply": {
"type": "integer",
"description": "Mainline ply of the played move (decision point)"
},
"move_label": {
"type": "string",
"description": "Human move label e.g. 17...Be6 or 24.Rxd4"
},
"alternative_move_san": {
"type": "string",
"description": "Requested alternative in SAN — never auto-substituted"
},
"target_elo": {
"type": "integer",
"minimum": 400,
"maximum": 3500
},
"analysis_profile": {
"type": "string",
"enum": [
"fast",
"chatgpt",
"standard",
"deep"
],
"description": "Time/depth budget profile"
},
"max_branch_plies": {
"type": "integer",
"minimum": 2,
"maximum": 16,
"description": "Max continuation plies"
},
"engine_depth": {
"type": "integer",
"minimum": 4,
"maximum": 20
}
},
"required": [
"alternative_move_san",
"target_elo"
]
}Esquema de salida
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"kind": {
"type": "string"
},
"target_elo": {
"type": "integer"
},
"anchor_ply": {
"type": "integer"
},
"move_label": {
"type": "string"
},
"fen_before": {
"type": "string"
},
"played_move": {
"type": "string"
},
"alternative_move": {
"type": "string"
},
"evaluation_delta_cp": {
"type": "integer"
},
"maia_probability": {
"type": "number"
},
"continuation_sans": {
"type": "array",
"items": {
"type": "string"
}
},
"teaching_point": {
"type": "string"
},
"rav_pgn": {
"type": "string"
},
"branches_legal": {
"type": "boolean"
},
"branch_semantically_attached": {
"type": "boolean"
},
"mainline_preserved": {
"type": "boolean"
},
"diagnostics": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"target_elo",
"played_move",
"alternative_move",
"continuation_sans",
"teaching_point",
"rav_pgn",
"branches_legal",
"branch_semantically_attached"
],
"description": "User-requested what-if branch with legal RAV and teaching comparison."
}Comunidad
Evidencia