14 Commits

Author SHA1 Message Date
07d6ee6ff1 Update README for full API coverage and safety tiers
Tool table split by safety tier (none/normal/strict), new
part-number support matrix, updated project structure.
2026-01-31 09:47:35 -07:00
c0bedde54b Add full CP210x API coverage: 29 tools, all part families
Complete ctypes bindings for all 45 libcp210xmanufacturing functions
including structs (BAUD_CONFIG, PORT_CONFIG, DUAL_PORT_CONFIG,
QUAD_PORT_CONFIG, FIRMWARE_T), part-number gating, bitmask helpers,
and three-tier safety model (none/normal/strict elicitation).

New tools: set_vid, set_pid, get/set_interface_string,
get/set_flush_buffer_config, get/set_device_mode,
get_firmware_version, set_device_version, get/set_baud_rate_config,
set_baud_rate_alias, get/set_port_config, get/set_raw_config,
create_hex_file, update_firmware.
2026-01-31 09:46:43 -07:00
80220f5728 Rename project from mcp210x to mcp210x-uart
Renames package, module directory, script entry point, URLs,
Gitea repo, and git remote to mcp210x-uart.
2026-01-31 09:40:20 -07:00
a28eed3849 Rewrite README with real-world example and project structure 2026-01-30 20:49:35 -07:00
9c47a49ec0 Rename project from cp210x-mcp to mcp210x
Because how could we not.
2026-01-30 12:26:18 -07:00
3787f4e8a3 Rewrite README with architecture, safety model, and setup guide 2026-01-30 12:19:38 -07:00
ef80f9eab0 Fix lock_device: refuse when elicitation unavailable
lock_device shared the confirm_write() fallback which returns True
when the client doesn't support elicitation. This meant lock could
proceed silently without user consent — confirmed by accidentally
locking a real device.

Now lock_device has its own strict path that returns an error when
elicitation fails, rather than falling through.
2026-01-30 12:01:17 -07:00
acec4b29ba Add elicitation confirmations and udev rule tool
Write tools now prompt the user via MCP elicitation before
modifying OTP EPROM. Falls back to no confirmation if the
client doesn't support elicitation.

lock_device always requires confirmation — refuses without it.

New tool: setup_udev_rule
- Auto-generates symlink name from product string
- Installs rule to /usr/lib/udev/rules.d/
- Elicits user permission before sudo operations
2026-01-30 11:32:41 -07:00
1a5fb3b195 Add udev rules for stable RYLR998 device symlinks
Creates /dev/rylr998-1130 and /dev/rylr998-0D27 symlinks
matched by CP2102 product string EUI suffix.
2026-01-30 11:27:27 -07:00
ff12b9450f Fix MCP server startup: remove pre-run library init
Native library calls during startup interfered with FastMCP's
stdio transport initialization. Library is now loaded lazily on
first tool call instead.
2026-01-30 11:05:15 -07:00
a20689c463 Fix MCP server: print to stderr, not stdout
Startup banner was printing to stdout which corrupts the
JSON-RPC stdio transport used by MCP clients.
2026-01-30 11:03:48 -07:00
fc12d6a2d7 Add cp210x-mcp FastMCP server for device customization
MCP Tools:
- list_devices: List connected CP210x devices
- get_device_info: Full device details (part number, VID/PID, strings)
- set_product_string: Change USB device name (max 126 chars)
- set_manufacturer_string: Change manufacturer (max 45 chars)
- set_serial_number: Change serial number (max 63 chars)
- set_max_power: Set USB power draw (0-500mA)
- set_self_powered: Toggle self/bus powered
- reset_device: USB re-enumeration
- lock_device: PERMANENTLY lock configuration

Requires libcp210xmanufacturing.so (see aur/cp210xmanufacturing)

Usage:
  claude mcp add cp210x -- uvx cp210x-mcp
2026-01-30 10:37:08 -07:00
7c04e0cb6a Add AUR package for cp210xmanufacturing library
PKGBUILD:
- Builds 64-bit shared/static libraries from Silicon Labs source
- Installs headers to /usr/include/cp210x/
- Includes udev rules for non-root device access

To build: cd aur/cp210xmanufacturing && makepkg -si
2026-01-30 10:33:28 -07:00
a7f62e5d7e Add Silicon Labs CP210x manufacturing library source
- Library source from AN721SW (cp210xmanufacturing_1.0.tar.gz)
- Manufacturing tool source (cp210xsmt)
- Builds 64-bit shared library with: make LIB_ARCH=64
- Datasheets and app notes in docs/
2026-01-30 10:31:39 -07:00