Agent Whiteboard Development Workflow
Project Structure
- mcp-client/ - Browser UI (TypeScript + Vite)
- mcp-server-go/ - Go MCP server with embedded UI
- src/ - Core drawing library (TypeScript)
- npm-platforms/ - Platform-specific binaries
Development Cycle
Making Changes to Browser UI
- Edit files in
mcp-client/ - Run
make buildin the workspace root (automatically stops old server) - Reconnect MCP in Claude Code (server will auto-restart)
- Test with whiteboard draw tool
Key Commands
- Build:
make build(in workspace root) - Automatically stops old server
Why Only make build
The Go MCP server embeds the HTML/CSS/JS files at compile time. Running make build does everything:
- Stops any running MCP server
- Builds the TypeScript client
- Rebuilds the Go server with embedded files
Don't use npm run build:mcp-client or other partial build commands - always use make build.
Important Notes
- CRITICAL: Always use
make build- it's the only build command you need make buildautomatically stops any running MCP server- The Go server embeds static files at compile time
- Must reconnect MCP after building for changes to take effect
- Server uses lazy startup - HTTP starts on first draw call
Testing Workflow
- Make changes to
mcp-client/mcp-client.tsor CSS/HTML - Run
make build(automatically stops old server) - Reconnect MCP server in Claude Code
- Use
mcp_whiteboard_drawtool to test changes
Common Files
mcp-client/mcp-client.ts- Main browser application logicmcp-client/mcp-client.css- UI stylingmcp-client/index.html- HTML structuremcp-server-go/main.go- Go server orchestrationmcp-server-go/tools.go- MCP tool definitions
Architecture
- 2-canvas rendering - Persist + Display canvases
- Progressive animation - Arc-length based smooth drawing
- Event bus - Pub/sub for WebSocket communication
- Session recording - Automatic slide history
Converted and distributed by TomeVault — claim your Tome and manage your conversions.