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
82 lines
2.2 KiB
TOML
82 lines
2.2 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "mcp-arduino"
|
|
version = "2025.09.27.1" # Date-based versioning as per your preference
|
|
authors = [
|
|
{ name="Ryan Malloy", email="ryan@supported.systems" },
|
|
]
|
|
description = "FastMCP-powered Arduino CLI server with WireViz integration for circuit diagrams"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { file="LICENSE" }
|
|
keywords = ["mcp", "model context protocol", "arduino", "arduino-cli", "llm", "ai", "fastmcp", "wireviz"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Intended Audience :: Developers",
|
|
"Topic :: Software Development :: Embedded Systems",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
]
|
|
|
|
dependencies = [
|
|
"fastmcp>=2.12.4", # FastMCP includes MCP 1.15.0 and sampling support
|
|
"thefuzz[speedup]>=0.22.1",
|
|
"wireviz>=0.4.1",
|
|
"pyserial>=3.5", # Serial communication support
|
|
"pyserial-asyncio>=0.6", # Async serial support
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.4.2",
|
|
"pytest-asyncio>=0.21.0",
|
|
"pytest-cov>=7.0.0",
|
|
"ruff>=0.13.2",
|
|
"mypy>=1.5.0",
|
|
"watchdog>=3.0.0", # For hot-reloading in dev
|
|
]
|
|
|
|
[project.scripts]
|
|
mcp-arduino = "mcp_arduino_server.server_refactored:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://git.supported.systems/MCP/mcp-arduino"
|
|
Repository = "https://git.supported.systems/MCP/mcp-arduino"
|
|
Issues = "https://git.supported.systems/MCP/mcp-arduino/issues"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/mcp_arduino_server"]
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = [
|
|
"/src",
|
|
"/README.md",
|
|
"/LICENSE",
|
|
"/pyproject.toml",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "W", "B", "I", "N", "UP"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto" |