{"id":"81372cde-29ce-4ce1-b366-18f51c96a1c2","slug":"wrsmith108-miro-mcp","kind":"mcp","name":"miro-mcp","summary":"an MCP server for Miro","owner":"wrsmith108","repoUrl":"https://github.com/wrsmith108/miro-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-08-09T06:24:34.000Z","addedAt":"2026-10-21T15:44:03.615Z","logoUrl":"https://avatars.githubusercontent.com/u/62075823?u=d7a28e2ef136d94127f5106b001325dc81e6e346&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-24T04:27:11.120Z","sample":false,"url":"https://conduits.dev/tools/wrsmith108-miro-mcp","language":"JavaScript","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# 🎯 Miro MCP - Galaxy Product Discovery Board\n\n**Status**: ✅ Implementation Complete | **Framework**: Teresa Torres Continuous Discovery | **Last Updated**: January 20, 2025\n\n## 🚀 Project Overview\n\nA Model Context Protocol (MCP) server for Miro that programmatically implements Teresa Torres' Continuous Discovery methodology. Successfully created a comprehensive product discovery framework across 4 major frames with 400+ sticky notes, zero overlaps, and clear visual hierarchy.\n\n**Product Outcome Focus**: \"Users achieve first meaningful insight within 15 minutes\"\n\n## ✨ What We Built\n\n### 4 Complete Frames\n1. **OST2 (Opportunity Solution Tree)** - Hierarchical discovery structure\n2. **Galaxy Assess & Prioritize** - Impact/Effort matrix and prioritization\n3. **Galaxy Solution Story Mapping** - User journey with 53 stories\n4. **Galaxy Testing Assumptions** - 16 assumptions across 5 categories\n\n### Key Achievements\n- 🎯 **400+ sticky notes** with perfect layout (no overlaps)\n- 📊 **16 core assumptions** with matched experiments\n- 📝 **53 user stories** across 4 release slices\n- 🔬 **4-week validation sprint** timeline\n- 📈 **5 success metrics** with clear targets\n\n## 🛠️ Quick Start\n\n```bash\n# Clone and setup\ngit clone https://github.com/yourusername/Miro-MCP.git\ncd Miro-MCP\nnpm install\n\n# Configure environment\ncp .env.example .env\n# Add your MIRO_ACCESS_TOKEN to .env\n\n# Run implementations\nnode scripts/implementations/ost2-implementation.js\nnode scripts/implementations/assess-prioritize-implementation.js\nnode scripts/implementations/solution-story-mapping.js\nnode scripts/implementations/testing-assumptions-implementation.js\n```\n\n## 📁 Project Structure\n\n```\nMiro-MCP/\n├── scripts/\n│   ├── implementations/     # Main board creation scripts\n│   │   ├── ost2-implementation.js\n│   │   ├── assess-prioritize-implementation.js\n│   │   ├── solution-story-mapping.js\n│   │   └── testing-assumptions-implementation.js\n│   └── utilities/           # Helper scripts and tools\n│       ├── layout-designer.js      # Prevents overlaps\n│       ├── delete-misplaced-stickies.js\n│       └── fix-story-mapping.js\n├── documentation/\n│   ├── RETROSPECTIVE.md    # Detailed lessons learned\n│   ├── PROJECT_SUMMARY.md  # Executive summary\n│   └── README.md           # This file\n└── configuration/\n    ├── .env                # API credentials\n    └── package.json        # Dependencies\n```\n\n## 🎨 Visual Design System\n\n### Color Coding\n- 🔴 **Red**: Critical risks/assumptions\n- 🟠 **Orange**: High priority items\n- 🟡 **Yellow**: Medium priority\n- 🟢 **Green**: Validated/Low risk\n- 🔵 **Blue**: Experiments/Actions\n- 🟣 **Violet**: Metrics\n- 🔷 **Dark Blue**: Headers/Categories\n\n### Layout Standards\n- **550px** horizontal spacing between columns\n- **200px** vertical spacing between rows\n- **320x140px** standard sticky note size\n- **Zero overlaps** using Layout Designer module\n\n## 💡 Key Technical Insights\n\n### Miro API Best Practices\n```javascript\n// Use generic endpoints when specific ones fail\nawait miroApi.delete(`/boards/${BOARD_ID}/items/${itemId}`); // ✅ Works\n// Not: await miroApi.delete(`/boards/${BOARD_ID}/sticky_notes/${itemId}`); // ❌ May fail\n\n// Essential rate limiting\nawait sleep(150); // Minimum safe delay between API calls\n\n// Frame positioning is relative to center\nconst frameCenter = { x: frame.position.x, y: frame.position.y };\n```\n\n### Layout Designer Pattern\n```javascript\nconst layoutDesigner = new LayoutDesigner({\n  minPadding: 80,\n  horizontalGap: 550,    // Wide spacing prevents overlaps\n  verticalGap: 200,       // Generous vertical gaps\n  useGrid: true,\n  gridCellWidth: 350,\n  gridCellHeight: 180\n});\n```\n\n## 📊 Implementation Results\n\n| Metric | Target | Achieved | Status |\n|--------|--------|----------|--------|\n| Frames Created | 4 | 4 | ✅ |\n| Sticky Notes | 400+ | 427 | ✅ |\n| Overlapping Elements | 0 | 0 | ✅ |\n| Assumptions Mapped | 15+ | 16 | ✅ |\n| User Stories | 50+ | 53 | ✅ |\n| Implementation Time | < 6 hrs | 4 hrs | ✅ |\n\n## 🚀 Next Steps\n\n### Immediate Actions\n- [ ] Review frames with stakeholders\n- [ ] Export PDF documentation\n- [ ] Share board with team\n- [ ] Begin Week 1 experiments\n\n### Short-term Improvements\n- [ ] Add interactive elements (tags, links)\n- [ ] Create reusable templates\n- [ ] Implement health checks\n- [ ] Add navigation guide\n\n### Long-term Enhancements\n- [ ] Board versioning system\n- [ ] Analytics integration\n- [ ] Project management sync\n- [ ] Automated updates\n\n## 🔧 Development\n\n### With Claude Desktop\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n```json\n{\n  \"mcpServers\": {\n    \"miro\": {\n      \"command\": \"node\",\n      \"args\": [\"./dist/server.js\"],\n      \"env\": {\n        \"MIRO_ACCESS_TOKEN\": \"your_token\"\n      }\n    }\n  }\n}\n```\n\n### Commands\n```bash\nnpm run dev      # Development mode\nnpm run build    # Build TypeScript\nnpm test         # Run tests\nnpm run inspect  # MCP Inspector\n```\n\n## 📚 Documentation\n\n- **[RETROSPECTIVE.md](documentation/RETROSPECTIVE.md)** - Detailed lessons learned\n- **[PROJECT_SUMMARY.md](documentation/PROJECT_SUMMARY.md)** - Executive summary\n- **[CLAUDE.md](CLAUDE.md)** - Claude Code guidelines\n\n## 🏆 Key Learnings\n\n1. **Teresa Torres Framework** works exceptionally well for structured discovery\n2. **Layout Designer Module** essential for professional appearance\n3. **State Persistence** critical for recovery from failures\n4. **Wide Spacing** (550px+) prevents all overlap issues\n5. **Generic API Endpoints** more reliable than specific ones\n\n## 🙏 Acknowledgments\n\n- **Teresa Torres** - Continuous Discovery Habits methodology\n- **Miro** - Comprehensive API and platform\n- **Anthropic** - Claude and MCP SDK\n- **Community** - Testing and feedback\n\n## 📄 License\n\nMIT License - See LICENSE file\n\n## 📞 Support\n\n- **Issues**: Submit via GitHub Issues\n- **Board**: View at [https://miro.com/app/board/uXjVJS1vI0k=/](https://miro.com/app/board/uXjVJS1vI0k=/)\n- **Status**: Production Ready ✅\n\n---\n\n**Version**: 1.0.0\n**Completed**: January 20, 2025\n**Total Duration**: ~4 hours\n**Result**: Complete success with all objectives achieved 🎉"}