Odel
Electronics MCP Servers

Electronics MCP Servers

Local
@wedsamuel12301PythonMITUpdated 8mo ago

14 electronics tools: resistor decoder, capacitor calculator, GPIO reference for ESP32/Arduino/STM32

Electronics MCP Servers

A comprehensive Model Context Protocol (MCP) server providing 14 electronics engineering tools across 3 domains.

PyPI version License: MIT Python 3.10+

Installation

pip install electronics-mcp-servers

Testing & Verification

After installation, verify the package is working:

Test with uvx (recommended for MCP clients)

# Alternative: Test individual servers
uvx --from electronics-mcp-servers resistor-decoder
uvx --from electronics-mcp-servers capacitor-calc
uvx --from electronics-mcp-servers gpio-reference

Test with pip install

# After pip install, test the CLI
electronics-mcp-servers --version

# Or test individual tools
resistor-decoder --help
capacitor-calc --help
gpio-reference --help

Naming Clarification

This project uses different naming conventions in different contexts:

  • MCP Registry ID: io.github.wedsamuel1230/electronic-mcp-server (singular)
  • PyPI Package: electronics-mcp-servers (plural)
  • CLI Executables: electronics-mcp-servers, resistor-decoder, capacitor-calc, gpio-reference

When using uvx, always use the PyPI package name (electronics-mcp-servers).

Troubleshooting

Problem: uvx electronics-mcp-servers shows "executable not provided" error

Solution: The main electronics-mcp-servers executable was added in version 1.0.2. Make sure you have the latest version:

# Force uvx to fetch the latest version
uvx --refresh electronics-mcp-servers

# Or specify the version explicitly
uvx --from electronics-mcp-servers==1.0.2 electronics-mcp-servers

# Check installed version
pip index versions electronics-mcp-servers

If the error persists, PyPI may still be serving version 1.0.1. Wait a few minutes and try again.

Features

🎨 Resistor Decoder (3 tools)

  • decode_resistor_color_bands: Convert color bands to resistance value
  • encode_resistor_value: Convert resistance to color bands
  • find_standard_resistor: Find nearest E12/E24/E96 series value

⚡ Capacitor Calculator (4 tools)

  • calculate_capacitive_reactance: Frequency-dependent impedance
  • calculate_rc_time_constant: RC circuit time calculations
  • calculate_resonant_frequency: LC tank resonance
  • suggest_capacitor_for_filter: Filter design recommendations

📌 GPIO Pin Reference (7 tools)

  • get_pin_info: Detailed pin specifications (ESP32/Arduino/STM32)
  • find_pwm_pins: PWM-capable pin discovery
  • find_adc_pins: ADC channel mapping
  • find_i2c_pins: I2C bus pins
  • find_spi_pins: SPI bus pins
  • check_pin_conflict: Multi-pin conflict detection
  • generate_pin_diagram_ascii: Visual pinout diagrams

Supported Boards

  • ESP32 DevKitC
  • Arduino UNO R3
  • STM32F103C8T6 (Blue Pill)

Usage

As an MCP Server

Add to your MCP client configuration (e.g., Claude Desktop):

{
  "mcpServers": {
    "electronics": {
      "command": "python",
      "args": ["-m", "servers"]
    }
  }
}

Or with uvx:

{
  "mcpServers": {
    "electronics": {
      "command": "uvx",
      "args": ["electronics-mcp-servers"]
    }
  }
}

Direct Python Usage

from servers.resistor_decoder import decode_color_bands
from servers.capacitor_calculator import calculate_rc_time_constant
from servers.gpio_reference import get_pin_info

# Decode a resistor
result = decode_color_bands(["brown", "black", "red", "gold"])
# Returns: {"resistance": 1000, "tolerance": 5, "formatted": "1kΩ ±5%"}

# Calculate RC time constant
tau = calculate_rc_time_constant(10000, 100e-6)
# Returns: {"tau": 1.0, "time_63pct": 1.0, "time_full": 5.0}

# Get ESP32 pin info
pin = get_pin_info("ESP32", 32)
# Returns detailed pin capabilities

Requirements

  • Python 3.10+
  • FastMCP (mcp[cli]>=1.1.0)

License

MIT License - Copyright (c) 2026 Samuel F.

Links