• Replace deprecated `lifespan_kwargs=` with functools.partial
• Drop extra asyncio layer – call `server.run()` directly
• Add missing `functools` import
Now `python -m kicad_mcp.server` and `kicad-mcp` block and run cleanly.
- Add GitHub Actions CI/CD workflow with multi-OS testing (Ubuntu, macOS)
- Add pyproject.toml for modern Python packaging with hatchling
- Add pre-commit hooks for code quality (ruff, mypy, trailing whitespace)
- Add Makefile for common development tasks (install, test, lint, format, build)
- Add run_tests.py script for comprehensive test execution
- Update requirements.txt with development dependencies
- Update .gitignore for modern Python tooling (uv, ruff, pytest)
- Add KiCad-specific ignore patterns for backup files
This establishes a robust development workflow with:
- Automated testing on Python 3.10, 3.11, 3.12
- Code formatting and linting with ruff
- Type checking with mypy
- Coverage reporting with pytest-cov
- Package building with uv
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update imports from 'mcp.server.fastmcp' to 'fastmcp' per FastMCP 2.0 migration
- Add pyproject.toml for modern Python packaging with hatchling build backend
- Implement missing server lifecycle functions: main(), setup_logging(), cleanup_handler()
- Add async main() entry point for proper server execution
- Update main.py to use async server execution pattern
- Add fastmcp>=0.1.0 dependency to replace legacy mcp server imports
This establishes the foundation for all subsequent feature additions and ensures
compatibility with modern MCP clients and development workflows.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix open_project tool for Linux compatibility (uses xdg-open).
- Force DRC tool to use kicad-cli due to kipy import errors, ensuring reliability.
- Correct thumbnail generation to use svg export via kicad-cli instead of unsupported png.
- Save generated thumbnails directly into the project directory.
- Remove debug logging added during troubleshooting.
- Update .gitignore to correctly ignore the .venv directory.
- Remove mcp.dev usage from documentation as a method for running the server.
- Remove obsolete python_path.py utility and deleted test file.
This commit introduces a new circuit pattern recognition system that can
automatically identify common circuit patterns in KiCad schematics, including:
- Power supply circuits (linear regulators, switching converters)
- Amplifier circuits (op-amps, transistor amplifiers)
- Filter circuits (passive and active)
- Oscillator circuits (crystal, RC, IC-based)
- Digital interfaces (I2C, SPI, UART, USB)
- Microcontroller circuits
- Sensor interfaces
The implementation includes:
- Pattern recognition algorithms for common components
- Component value extraction and normalization utilities
- MCP tools for running pattern analysis
- MCP resources for displaying formatted results
- Comprehensive documentation
Users can easily extend the pattern recognition by adding new component
patterns or circuit recognition functions.
- Implement schematic netlist parser with S-expression parsing
- Create netlist tools for extraction and connection analysis
- Add resources for netlist and component connection reporting
- Include documentation with usage guide and troubleshooting
- Register new tools and resources in server configuration
This enables extracting component connections from KiCad schematics
and analyzing connectivity between components.
- Added environment variable support for configuring KiCad project search paths
- Implemented auto-detection of common project directories (~/pcb, ~/Electronics, etc.)
- Created .env file support for user-friendly configuration
- Added utility module for environment variable loading and management
- Updated documentation with detailed configuration options and troubleshooting steps
- Improved logging to help diagnose path-related issues
- Removed hardcoded paths to make the MCP server more generally usable
Implement proper context management in the KiCad MCP server:
Add dedicated context.py with typed KiCadAppContext class
Convert tools to access context instead of parameters
Implement caching for thumbnails
Add proper cleanup of resources on shutdown
Improve error handling with cancellation support
Implements a more reliable PCB thumbnail generation feature using two methods:
- Primary: pcbnew Python module for high-quality rendering
- Fallback: pcbnew_cli for environments without Python modules
Adds detailed progress reporting and comprehensive error handling.
Includes documentation in docs/thumbnail_guide.md.