57 Commits

Author SHA1 Message Date
Lama Al Rajih
6ef68572f1
Merge branch 'main' into pr-2-infrastructure-ci-cd 2025-07-22 20:31:30 -04:00
Lama
371ce03685 update readme and remove requirements.txt 2025-07-22 17:26:03 -07:00
Lama Al Rajih
e6961ceefb
Merge pull request #19 from laurigates/pr-1-fastmcp-2.0-migration
FastMCP 2.0 Migration & Foundation
2025-07-21 13:26:18 -04:00
Lama
af947ee182 fix(server): make FastMCP-2.x start correctly
• 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.
2025-07-18 14:34:41 -04:00
Lama Al Rajih
d7c269211a
Merge branch 'main' into pr-1-fastmcp-2.0-migration 2025-07-18 11:44:21 -04:00
Lama Al Rajih
b4d3bfa6b4
Merge pull request #12 from lamaalrajih/publish-pip
Add repo to pip package
2025-07-18 11:13:27 -04:00
Lama
74ad42eedf remove files accidentally commited 2025-07-18 11:05:25 -04:00
Lama
9bfc6da76d update pyproject.toml 2025-07-18 11:03:41 -04:00
Lama
2b425d458d update init and remove email placeholder from pyproject.toml 2025-07-18 01:57:04 -04:00
Lama Al Rajih
fb4e9ecfb0
Merge pull request #17 from mannie-exe/publish-pip
fix: migrate to uv; pydantic schema error
2025-07-17 19:34:49 -04:00
Lauri Gates
a67eb41523 feat: add comprehensive development infrastructure and CI/CD pipeline
- 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>
2025-07-17 20:29:27 +03:00
Lauri Gates
9bea0f4ebf feat: migrate to FastMCP 2.0 framework with modern Python packaging
- 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>
2025-07-17 20:13:01 +03:00
mannie-exe
639b54d637 fix: migrate to uv; fix pydantic schema error
- add uv.lock for reproducible dependencies
- add .python-version file for python version consistency
- pin dependency versions in pyproject.toml (mcp>=1.11.0, pandas>=2.3.1, pytest>=8.4.1)
- remove type annotations from Image-returning functions to avoid pydantic v2 schema generation errors
  - resolves MCP server startup failure
2025-07-13 21:30:40 -07:00
Lama Al Rajih
7019df0ccc
Merge pull request #14 from laurigates/patch-1
Create LICENSE
2025-07-11 16:04:12 -04:00
Lauri Gates
fb294215f0
Create LICENSE 2025-07-10 13:13:00 +03:00
Lama
d866184d86 Add repo to pip package 2025-07-08 19:49:17 -04:00
Lama
4dd49122f1 fix file name 2025-07-08 19:38:21 -04:00
Lama Al Rajih
798436cd35
Update README.md 2025-04-29 16:57:13 -04:00
Lama
e5c87df088 Removed unnecessary IPC drc - defaulting to only using the CLI 2025-04-24 16:07:36 -04:00
Lama
a95c0a40ba add issue and pr templates 2025-04-24 14:34:34 -04:00
Lama Al Rajih
b2d3099505
Merge pull request #6 from madaerodog/main - feat: Fix tools, improve stability, and update docs
- 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.
2025-04-24 14:09:42 -04:00
Constantin Craciun
5b9d237d7d feat: Fix tools, improve stability, and update docs 2025-04-23 18:37:56 +03:00
Lama
44b0bda19d add more graceful server shutdown 2025-03-22 09:41:10 -04:00
Lama
921e087351 logging docs cleanup 2025-03-22 09:23:22 -04:00
Lama
fda329cc8f remove all instances of logger.py (see issue #1) 2025-03-22 09:18:29 -04:00
Lama
3596bae34e fix find_component_connections() in netlist_tools.py 2025-03-22 08:58:57 -04:00
Lama
a3613f273a Fix drc issues - swap out pbnew for kicad cli and ipc 2025-03-21 15:27:36 -04:00
Lama
b1cb48ecf7 fix random import, etc issues 2025-03-21 13:08:15 -04:00
Lama
7343e032c1 Add circuit pattern recognition feature for KiCad schematics
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.
2025-03-21 10:43:34 -04:00
Lama
750dd260c4 Add comprehensive netlist extraction functionality
- 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.
2025-03-21 09:31:15 -04:00
Lama
f8bafe8beb refactor readme and add more docs 2025-03-20 21:19:19 -04:00
Lama
6953e5dc9a Add comprehensive BOM management functionality with analysis, export, and viewing features 2025-03-20 13:54:48 -04:00
Lama
c69bd66f71 update readme and requirements.txt 2025-03-20 12:51:52 -04:00
Lama
60b10c54b2 nit 2025-03-20 12:48:10 -04:00
Lama
82c0a2dccb nit 2025-03-20 12:35:21 -04:00
Lama
46ad082fda update readme 2025-03-20 12:34:14 -04:00
Lama
cc73df8e77 Add flexible environment configuration to support custom project paths
- 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
2025-03-20 12:13:38 -04:00
Lama
880e267423 disable logging because claude is in a sandbox and can't write to our log file (it automatically writes logs in a diff place though) 2025-03-20 11:34:40 -04:00
Lama
948f9a150a move config.py file to subdir 2025-03-20 11:08:17 -04:00
Lama
775e3423be nit 2025-03-20 10:47:03 -04:00
Lama
15c83c921a nit 2025-03-20 10:33:50 -04:00
Lama
fc7bfbe64d update readme, add gitignore, update paths for drc history to include windows 2025-03-20 10:29:13 -04:00
Lama
50e94d245b add missing import 2025-03-20 10:08:35 -04:00
Lama
9a114bce7b Refactor server to use type-safe lifespan context management
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
2025-03-20 09:58:19 -04:00
Lama
5007d11579 update readme 2025-03-20 09:13:13 -04:00
Lama
f50a2ce1af Enhance PCB thumbnail generation with robust fallback methods
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.
2025-03-20 03:16:14 -04:00
Lama
b5b5835939 remove old simple mcp server 2025-03-20 03:04:02 -04:00
Lama
646dfe4589 update readme 2025-03-20 02:59:27 -04:00
Lama
27fe2336c1 update readme 2025-03-20 02:49:19 -04:00
Lama
5dd2dbe760 rename drc_resource.py to drc_resources.py and update readme 2025-03-20 02:47:45 -04:00