Model Context Protocol (MCP) server for electronic parts sourcing with KiCad integration
Project description
Parts MCP
A Model Context Protocol (MCP) server for sourcing electronic parts with multi-EDA integration.
Overview
Parts MCP enables AI assistants to search for electronic components, compare prices, check availability, and process BOMs from popular EDA tools. It provides a unified interface for component sourcing workflows powered by the Source Parts API.
Supported EDA Tools
| Tool | BOM Format | Status |
|---|---|---|
| KiCad | CSV, XML | Full support + CLI integration |
| Altium Designer | CSV, XLS | Full support |
| Autodesk Fusion 360 | CSV | Full support |
| Eagle | CSV, BRD | Full support |
| PADS | CSV, ASC | Full support |
| Protel 99 | CSV | Full support |
Features
- Universal Parts Search: Search millions of parts via Source Parts API
- Multi-EDA BOM Processing: Import BOMs from KiCad, Altium, Fusion360, Eagle, PADS, Protel99
- Component Matching: AI-powered matching with confidence scoring
- Price Comparison: Compare prices across distributors
- Availability Check: Real-time inventory levels
- Alternative Parts: Find drop-in replacements and functional equivalents
- KiCad CLI Integration: Generate BOMs directly from schematics
- Local Caching: Fast responses with intelligent caching
Installation
Quick Start (Recommended)
uvx parts-mcp
No install needed -- uvx runs it directly from PyPI in an isolated environment.
With pip
pip install parts-mcp
From Source
git clone https://github.com/SourceParts/parts-mcp.git
cd parts-mcp
pip install -e .
Requirements
- Python 3.10+
- Source Parts API key (get one here)
Configuration
Create a .env file or set environment variables:
# Required
SOURCE_PARTS_API_KEY=your_api_key_here
# Optional
SOURCE_PARTS_API_URL=https://api.source.parts/v1
KICAD_SEARCH_PATHS=/path/to/kicad/projects
PARTS_CACHE_DIR=~/.cache/parts-mcp
CACHE_EXPIRY_HOURS=24
Claude Desktop Integration
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"parts": {
"command": "uvx",
"args": ["parts-mcp"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}
If installed from source:
{
"mcpServers": {
"parts": {
"command": "/path/to/python",
"args": ["/path/to/parts-mcp/main.py"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}
After adding the configuration, restart Claude Desktop.
Claude.ai Integration (Remote)
Connect directly from claude.ai without any local installation:
- Open claude.ai in your browser
- Go to Settings > Connectors
- Click Add custom connector
- Enter the URL:
https://mcp.source.parts/ - Complete the OAuth sign-in when prompted
- Start using Parts tools in any conversation
No API key needed -- authentication is handled via OAuth.
Claude Code Integration
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"parts": {
"command": "uvx",
"args": ["parts-mcp"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}
Or run directly:
claude --mcp-server "python -m parts_mcp"
Usage Examples
Search for Parts
"Find a 10k resistor in 0603 package"
Process a BOM
"Upload my Altium BOM and find the best prices for 100 units"
KiCad Integration
"Extract the BOM from my amplifier.kicad_sch and source all components"
Find Alternatives
"Find alternatives for the obsolete LM358"
Check Availability
"Check stock levels for STM32F103C8T6"
Available Tools
| Tool | Description |
|---|---|
search_parts |
Search for components by query |
get_part_details |
Get detailed part information |
get_part_pricing |
Get pricing across distributors |
check_availability |
Check real-time inventory |
find_alternatives |
Find replacement parts |
process_bom |
Process BOM file from any supported EDA |
match_components |
Match BOM components to parts |
find_kicad_projects |
Discover local KiCad projects |
generate_kicad_bom |
Generate BOM from KiCad schematic |
Architecture
Parts MCP follows a thin client architecture:
Local (MCP):
- KiCad CLI operations
- Project discovery
- Response caching
- BOM file parsing
Server (Source Parts API):
- Component matching
- Price aggregation
- Inventory checking
- Alternative search
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with debug logging
DEBUG=1 python main.py
Project Structure
parts_mcp/
├── server.py # MCP server entry
├── config.py # Configuration
├── tools/ # MCP tools
├── resources/ # MCP resources
├── prompts/ # Prompt templates
└── utils/
├── api_client.py # Source Parts API client
├── bom_parser.py # Multi-EDA BOM parsing
├── component_matcher.py # Component matching
├── cache.py # Response caching
└── kicad_utils.py # KiCad CLI integration
Marketplace Listings
- MCP Registry - Official MCP server registry
- Smithery - One-click install marketplace
- Hosted Server - Remote MCP for claude.ai connectors
Links
- Source Parts - Component search platform
- Source Parts API Docs - API documentation
- MCP Specification - Model Context Protocol
License
MIT License with Trademark Protection - see LICENSE.md
"Source Parts" is a trademark. See license for usage restrictions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file parts_mcp-0.3.3.tar.gz.
File metadata
- Download URL: parts_mcp-0.3.3.tar.gz
- Upload date:
- Size: 283.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f505f5aa1a99685b788a9641c47bdd54d55ff61c09e155aaf877a1ac779e4b8
|
|
| MD5 |
efd2f4b431578219f76b9a4e4e78d7bb
|
|
| BLAKE2b-256 |
3c243f3e3f1ef0d2686e3657eb9f76c93720342e2b9357b6fc4ce1a7e7a1799d
|
File details
Details for the file parts_mcp-0.3.3-py3-none-any.whl.
File metadata
- Download URL: parts_mcp-0.3.3-py3-none-any.whl
- Upload date:
- Size: 146.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6f26dc3e458c62ca6da13d9024f8584ca789c6f592c2e791c0a187715395862
|
|
| MD5 |
245f757e39838036bed60adba1d44c6b
|
|
| BLAKE2b-256 |
374ad5e253651c7ebd76eccf2339540c5374e8e7523a663eb9c9016432e9ad45
|