MCP Server implementing Monte Carlo Tree Search (MCTS) for multi-step agent reasoning and action planning with UCB1 selection, expansion, rollout evaluation, and backpropagation
The run_mcts tool has a critical structural flaw: its input schema declares 'possible_actions_fn' and 'evaluate_state_fn' as type 'callable', which is not a valid JSON Schema type. JSON Schema does not support callable/function types, these cannot be serialized, validated, or passed over JSON-RPC. The tool description is minimal (67 chars) and lacks guidance on when to use it or what the output structure contains. Parameters lack descriptions entirely. The schema is fundamentally broken for MCP transport.
Executes MCTS search and returns optimal sequence of actions
Input schema uses invalid JSON Schema type 'callable' for possible_actions_fn and evaluate_state_fn. JSON Schema does not support function types, these cannot be serialized over JSON-RPC. This breaks tool invocation entirely.
Tool description is 67 characters and lacks actionable context. Does not explain WHEN to use MCTS planning vs other reasoning strategies, what the output fields mean, or how to interpret q_value and visits. LLMs cannot determine tool selection from this description.
No parameter descriptions. 'initial_state', 'iterations' lack guidance on format, range, or constraints. 'possible_actions_fn' and 'evaluate_state_fn' have no explanation of expected signatures or return types. Parameters are undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 22 | 2026-07-28+ | v2 |
Output schema is not documented. The response includes 'best_action', 'q_value', 'visits', 'total_candidates' but LLMs have no specification of field types, ranges, or meaning. Downstream tool chaining is impossible without guessing.
Tool name 'run_mcts' is generic and does not follow verb_noun convention. 'run' is vague, does it execute, simulate, or plan? Better names: 'plan_with_mcts', 'search_mcts_tree', or 'find_optimal_action_mcts'. Current name does not convey intent.