# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2025-12-08
### Added
- Initial release of KiCad MCP Server
- Two-tool architecture separating indexing from serving for optimal performance
- **kicad-index** CLI tool for parsing `.kicad_sym` files into SQLite database
- **kicad-mcp** MCP server for querying component database
- Full-text search using SQLite FTS5 across component names, descriptions, and keywords
- Four MCP tools:
- `search_components` - Free-text search across all component metadata
- `list_component_types` - Get unique reference designators (R, C, U, etc.)
- `get_components_by_type` - Filter components by reference type
- `get_component_details` - Retrieve full metadata for specific components
- Support for indexing standard KiCad library locations (`/usr/share/kicad/symbols/`)
- Database statistics via `kicad-index --stats` command
- Component metadata extraction:
- Reference designators
- Component values
- Descriptions
- Keywords for searching
- Datasheet URLs
- PCB footprint references
### Technical Details
- S-expression parsing using `sexpdata` library
- Database stored at `~/.local/share/kicad-mcp/components.db`
- Built with Anthropic's MCP Python SDK
- Indexed **22,426 components** from standard KiCad system libraries
- Python 3.11+ required
### Architecture Decisions
- **Separated indexer from server**: Keeps MCP server startup fast and allows independent database rebuilds
- **SQLite with FTS5**: Provides fast full-text search without external dependencies
- **Local database**: No network dependency, all queries run locally
- **Console entry points**: Both tools exposed as CLI commands via setuptools
[0.1.0]: https://github.com/yourusername/kicad_mcp/releases/tag/v0.1.0