puzzlebox logo

puzzlebox

by cliffhall

Puzzlebox is an MCP server that hosts finite state machines as dynamic resources. Clients can subscribe to these state machines and receive updates when their state changes, enabling coordination among agents.

View on GitHub

Last updated: N/A

What is puzzlebox?

Puzzlebox is an MCP Server implementation that supports multiple client connections for creating and monitoring shared, dynamic resources (finite state machines or 'puzzles'). It provides tools for managing puzzle instances and exposes them as resources that clients can subscribe to for state change updates.

How to use puzzlebox?

  1. Clients connect to the puzzlebox SSE server.
  2. Clients register puzzles with the server.
  3. Clients subscribe to puzzles to receive state change updates.
  4. Clients perform actions on puzzles, potentially triggering state transitions.
  5. The server validates actions against the current state.
  6. Valid actions initiate transitions, potentially involving exit/enter guards for client sampling requests.
  7. State transitions complete if guards pass.
  8. Clients receive resource update notifications and can fetch the current state and available actions.

Key features of puzzlebox

  • Supports multiple client connections

  • Manages puzzle instances (finite state machines)

  • Exposes tools for adding, getting snapshots, and performing actions on puzzles

  • Exposes registered puzzles as dynamic resources

  • Supports client subscriptions for state change updates

Use cases of puzzlebox

  • Coordinating teams in enterprise-level software development processes

  • Managing state transitions in complex workflows

  • Enabling process-aware agentic teams

  • Implementing game state management

  • Orchestrating multi-agent systems

FAQ from puzzlebox

What is an MCP server?

An MCP (Model Context Protocol) server facilitates communication and interaction between agents by providing a standardized protocol for sharing and managing contextual information.

What is a puzzle in the context of puzzlebox?

A puzzle is a finite state machine representing a stateful process or system with discrete states, actions to transition between states, and optional guards to control transitions.

How does puzzlebox ensure valid state transitions?

Puzzlebox validates attempted actions against the current state of the puzzle, ensuring that only valid actions can initiate a state transition.

What are exit and enter guards?

Exit and enter guards are optional checks performed during state transitions. They can involve client sampling requests (e.g., using LLMs) to determine if the transition should proceed or be canceled.

How do clients receive state updates?

Clients subscribe to individual puzzle resources and receive resource updated notifications via SSE (Server-Sent Events) whenever the state of the puzzle changes.