{"type":"mcp_server","name":"puzzlebox","description":"Puzzlebox is an MCP server hosting finite state machines as dynamic resources, enabling clients to subscribe and receive updates on state changes, facilitating agent coordination for complex, long-term projects.","category":"Communication","language":"TypeScript","stars":29,"forks":0,"owner":"cliffhall","github_url":"https://github.com/cliffhall/puzzlebox","homepage":null,"setup":"## Setup\n\nRunning locally requires [Node and npm be installed](https://nodejs.org/en/download).\n\n### Install Dependencies\n\n- `cd /path/to/puzzlebox/`\n- `npm install`\n\n### Build\n\n- `npm run build`\n- Builds the MCP server runtime at `/dist/index.js`\n\n### Start\n\n- `npm run start`\n- Launches an SSE-based/MCP server on port `:3001` with endpoint `/sse`\n- **MUST BE LAUNCHED BEFORE RUNNING INSPECTOR**\n\n### Inspector\n\n- `npm run inspector`\n- Runs the [Model Context Protocol Inspector](https://modelcontextprotocol.io/docs/tools/inspector)\n- The Inspector UI will be available at: http://localhost:5173\n- In the Inspector UI:\n  - Make sure `Transport Type` is set to `SSE`\n  - Make sure `URL` is set to http://localhost:3001/sse\n  - Click its **\"Connect\"** button to connect to the puzzlebox server.\n    - You should see Green light ð¢and **\"Connected\"** message.\n  - Click its **List Tools** button\n\n### Format\n\n- `npm run format`\n- Runs `prettier` on the code, adjusting formatting\n\n### Typecheck\n\n- `npm run typecheck`\n- Runs `tsc` with args to check and report type issues\n\n### Lint\n\n- `npm run lint`\n- Runs `eslint` to non-destructively check for and report syntax problems\n\n### LintFix\n\n- `npm run lint:fix`\n- Runs `eslint` to check for and fix syntax problems\n\n### Test\n\n- `npm run test`\n- Run the unit tests","tools":"## Available Tools\n\n1.  `add_puzzle` (Add a new instance of a puzzle (finite state machine)).\n2.  `get_puzzle_snapshot` (Get a snapshot of a puzzle (its current state and available actions)).\n3.  `perform_action_on_puzzle` (Perform an action on a puzzle (attempt a state transition)).\n4.  `count_puzzles` (Get the count of registered puzzles).\n5.  Puzzle instances management (Manages puzzle instances).\n6.  Resource exposure (Exposes registered puzzles as resources via `puzzlebox:/puzzle/{puzzleId}`).\n7.  Client subscription (Clients can subscribe/unsubscribe to individual resource URIs).\n","faq":null,"created_at":"2025-03-01T15:53:28+00:00","updated_at":"2025-03-27T15:20:07+00:00","source_url":"https://model-context-protocol.com/servers/mcp-server-finite-state-machine-updates","related_articles":[]}