Ryan Malloy eb524b8c1d Major project refactor: Rename to mcp-arduino with smart client capabilities
BREAKING CHANGES:
- Package renamed from mcp-arduino-server to mcp-arduino
- Command changed to 'mcp-arduino' (was 'mcp-arduino-server')
- Repository moved to git.supported.systems/MCP/mcp-arduino

NEW FEATURES:
 Smart client capability detection and dual-mode sampling support
 Intelligent WireViz templates with component-specific circuits (LED, motor, sensor, button, display)
 Client debug tools for MCP capability inspection
 Enhanced error handling with progressive enhancement patterns

IMPROVEMENTS:
🧹 Major repository cleanup - removed 14+ experimental files and tests
📝 Consolidated and reorganized documentation
🐛 Fixed import issues and applied comprehensive linting with ruff
📦 Updated author information to Ryan Malloy (ryan@supported.systems)
🔧 Fixed package version references in startup code

TECHNICAL DETAILS:
- Added dual-mode WireViz: AI generation for sampling clients, smart templates for others
- Implemented client capability detection via MCP handshake inspection
- Created progressive enhancement pattern for universal MCP client compatibility
- Organized test files into proper structure (tests/examples/)
- Applied comprehensive code formatting and lint fixes

The server now provides excellent functionality for ALL MCP clients regardless
of their sampling capabilities, while preserving advanced features for clients
that support them.

Version: 2025.09.27.1
2025-09-27 20:16:43 -06:00
..

📚 MCP Arduino Server Documentation

Complete documentation for the Model Context Protocol (MCP) Arduino Server

Document Description
Quick Start Guide Get up and running in 5 minutes
Serial Monitor Guide Complete serial monitoring tutorial
API Reference Detailed API documentation
Architecture Circular buffer technical details

📖 Documentation Structure

🎯 Getting Started

🔧 How-To Guides

📘 Reference

🏗️ Architecture

🎓 By Use Case

For Arduino Developers

  1. Start with Quick Start Guide
  2. Learn serial monitoring with Serial Integration Guide
  3. Reference Serial Monitor API for specific tools

For ESP32 Developers

  1. Install ESP32 support: ESP32 Guide
  2. Use high-speed serial: Serial Integration Guide
  3. Debug with dual-core support: Debugging Guide

For System Integrators

  1. Understand Architecture
  2. Configure via Configuration Guide
  3. Review Circular Buffer Architecture for scaling

🔍 Features by Category

📡 Serial Communication

  • Real-time monitoring with cursor-based streaming
  • Full parameter control (baudrate, parity, flow control)
  • Circular buffer with automatic memory management
  • Multiple concurrent readers support
  • Auto-reconnection and error recovery

🎛️ Arduino Management

  • Sketch creation, compilation, and upload
  • Board detection and management
  • Library installation and search
  • ESP32 and Arduino board support

🔌 Circuit Design

  • WireViz diagram generation from natural language
  • YAML-based circuit definitions
  • Automatic component detection

🐛 Debugging

  • GDB integration for hardware debugging
  • Breakpoint management
  • Memory inspection
  • Interactive and automated modes

📊 Performance & Scaling

Scenario Buffer Size Data Rate Memory Usage
Basic Debugging 1,000 < 10 Hz ~100 KB
Normal Monitoring 10,000 < 100 Hz ~1 MB
High-Speed Logging 100,000 < 1 kHz ~10 MB
Data Analysis 1,000,000 Any ~100 MB

🔧 Configuration Reference

Essential Environment Variables

# Required
ARDUINO_SKETCHES_DIR=~/Documents/Arduino_MCP_Sketches

# Serial Monitor
ARDUINO_SERIAL_BUFFER_SIZE=10000  # Buffer size (100-1000000)

# Optional
ARDUINO_CLI_PATH=/usr/local/bin/arduino-cli
WIREVIZ_PATH=/usr/local/bin/wireviz
LOG_LEVEL=INFO
ENABLE_CLIENT_SAMPLING=true

🆘 Troubleshooting Quick Reference

Issue Solution Documentation
"Port busy" Use exclusive=True or check lsof Serial Guide
"Permission denied" Add user to dialout group Configuration
High memory usage Reduce buffer size Buffer Architecture
Missing data Check drop rate, increase buffer Buffer Architecture
ESP32 not detected Install ESP32 core ESP32 Guide

📝 Documentation Standards

All documentation follows these principles:

  • Clear Structure: Organized by user journey and use case
  • Practical Examples: Real code that works
  • Progressive Disclosure: Start simple, add complexity
  • Cross-References: Links between related topics
  • Visual Aids: Diagrams, tables, and formatted output

🤝 Contributing

To contribute documentation:

  1. Follow existing formatting patterns
  2. Include working examples
  3. Test all code snippets
  4. Update this index when adding new docs
  5. Ensure cross-references are valid

📈 Version History

Version Date Changes
1.2.0 2024-01 Added circular buffer with cursor management
1.1.0 2024-01 Enhanced serial parameters support
1.0.0 2024-01 Initial release with basic serial monitoring

🔗 External Resources


For questions or issues, please visit the GitHub repository