Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • State of MCP (stats)
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI β†’ MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE β†— (opens in a new tab)
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ“Ÿ Embedded System
  3. Hwcontract
Hwcontract logo
Health: ActiveRecent health check succeeded.Last checked 9/22/2026, 7:32:30 PM

Hwcontract

User RatingsBe the first to rate and review this MCP server! Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View RepositoryVisit Website

Judge hardware timing/serial against a contract: pass/marginal/fail (WS2812, DShot, logs)

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Not yet automatically verified

We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β€” we're steadily working through the catalog.

Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Client Config & Setup

Choose your client or environment
Target File:~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "hwcontract": {
      "command": "uvx",
      "args": [
        "hwcontract"
      ]
    }
  }
}

πŸ’‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.

Install Directory Badge Claim listing AlternativesπŸ“Ÿ More in Embedded System

Documentation Overview

hwcontract

Your firmware is correct on paper and wrong on the wire.

Coding agents write WS2812 drivers, ESC bitstreams, and boot logs that pass review and then fail the moment the signal hits a real chip. hwcontract closes that loop. It captures what the hardware actually did and returns a verdict you can act on:

  • pass: within spec
  • marginal: in spec but too close to a rail. Works on your bench, dies on a cold board in the field. It fails the verdict: the judge will not ship it.
  • fail: out of spec, with the measured value and how far off it is

Two things a green verdict gives you beyond the table:

  • Every pulse is judged, not just the median. Captures carry the full pulse distribution; a glitchy tail that a median hides comes back as marginal or fail, with the violating-pulse count in the hint.
  • Evidence on every verdict: contract hash, capture hash, capture parameters, tool version, timestamp. A green build in CI traces back to the exact bytes that produced it.

No hardware in your hand? The demo below runs the whole thing on a real recorded signal, so you can see exactly what you get before wiring anything up.

hwcontract judging a real WS2812B capture, a DMA-broken SPI trace, and a serial boot log

See it work in 30 seconds

Terminal
pip install hwcontract
python3 -m hwcontract.judge --demo

That judges a real 24-LED NeoPixel capture against two contracts. Same signal, two verdicts:

Code
measured on the real WS2812B signal (300000 samples @24MHz):
  T0H 333 ns   T1H 833 ns   T1L 417 ns   T0L 917 ns   RESET 992250 ns

=== generic WS2812 contract -> FAIL ===
  T0H     350   333  PASS
  T0L     800   917  MARGINAL  only 33ns from max; nudge toward typ 800
  T1H     700   833  MARGINAL  only 17ns from max; nudge toward typ 700
  T1L     600   417  FAIL      183ns short (typ 600)
  RESET 50000    -  PASS

=== matching WS2812B contract -> PASS ===
  (all five edges PASS)

Same hardware, two contracts: the generic one fails, the chip-specific one passes. A WS2812B isn't a WS2812. Measure the real signal, hold it to a spec, and match the contract to the actual chip.

See the temporal engine catch a DMA bug

bash
python3 demo/spi_dma_temporal.py

100 synthesized SPI frames as raw CS/SCK/MOSI waveforms at 100MHz, reduced to pin edges and judged against the bundled spi-frame contract. Frame 77 has the Zephyr LPSPI DMA fault: chip-select asserts after the clock starts. Frame 42 settles MOSI 10ns before the sampling edge. Both come back with exact timestamps, and the same broken edges are re-imported as sigrok-style B/E jsontrace annotations:

Code
cs-precedes-first-clock  800  1  FAIL  trigger at 1540310ns: no gpio.cs.falling
                                          in [1530310ns, 1540310ns] (first of 1)
mosi-setup               800  1  FAIL  forbidden spi.mosi.* at 843300ns is 10ns
                                          before spi.sck.rising at 843310ns

The data is perfect in all 100 frames; a loopback test passes. The ordering is broken in two, and only a cross-signal assertion notices.

What you get

  • 28 bundled contracts for the parts people actually use: WS2812/WS2813/ SK6812 NeoPixels, DShot ESCs (150/300/600/1200), servos, I2C, NEC IR remotes, DS18B20, DHT11/DHT22, HC-SR04, A4988/DRV8825 stepper drivers, PWM fans, plus serial boot logs for ESP32, ESP8266, Zephyr, MicroPython, Raspberry Pi, U-Boot, and STM32 bootloaders. Each one has the datasheet's real min/typ/max numbers.
  • Temporal assertions between decoded events. SVA-style cross-signal checks (ordering, setup windows, forbidden states) on sigrok jsontrace output, judged for every occurrence with latency percentiles and first-failure timestamps.
  • Add a protocol by dropping in one YAML file. No code change.
  • An MCP server your agent can call, or plain CLI commands you can run by hand.
  • Evidence on every verdict: contract hash, capture hash, capture parameters, tool version, timestamp. A green build traces back to the exact bytes.
  • Reasonable by default: timing edges are all measured in nanoseconds, serial contracts are Python regex, verdicts come back with the measured value and the delta so an agent knows exactly what to fix.

Install

Terminal
pip install hwcontract              # judge + logic-analyzer adapter
pip install "hwcontract[serial]"    # + live serial capture (pyserial)
pip install "hwcontract[untrusted]" # + google-re2 (ReDoS-immune, for untrusted contracts)
pip install "hwcontract[all]"       # everything

Live logic-analyzer capture (check_ws2812 / check_dshot) also needs sigrok-cli on PATH. Judge-only tools (judge_contract, judge_serial) need nothing extra.

Wire it into an agent

One stanza per client, add it once. After install, the hwcontract command is on your PATH.

Claude Code

Terminal
claude mcp add hwcontract -- hwcontract

Codex CLI: ~/.codex/config.toml

toml
[mcp_servers.hwcontract]
command = "hwcontract"

opencode / Cursor / Gemini / any stdio MCP client

config.json
{ "mcpServers": { "hwcontract": { "command": "hwcontract" } } }

Transport is stdio by default (local, no auth surface). For remote-only clients (e.g. ChatGPT connectors), run hwcontract --http 8791 and expose it via a tunnel with HWCONTRACT_TOKEN set for bearer auth.

Speaks MCP 2026-07-28, the stateless revision: per-request _meta, server/discover, no handshake. Clients that still open with initialize get the old shape back. Each request picks its own era, so nothing to configure.

If the client can't find hwcontract (PATH issues)

GUI apps and some agents don't inherit your shell PATH, so a bare hwcontract can fail with "command not found". Two robust fixes:

  • Use the absolute path: which hwcontract β†’ put that full path in command.
  • Or invoke via Python (no PATH lookup for the script): command: "python3", args: ["-m", "hwcontract.server"]. Works from any directory once installed.

Contract paths: pass an absolute contract_path, or set HWCONTRACT_ROOT to your contracts folder. Relative paths resolve against it, defaulting to the process's working directory, which the client controls and may not be your project. Paths outside the root are rejected. Bundled examples install with the package under hwcontract/examples/.

The tools

ToolHardware?What it does
judge_contractnoJudge given observations against a timing contract. Replay / testing.
judge_serialnoJudge a given log string against a serial contract's expect/forbid.
judge_eventsnoJudge decoded events against temporal assertions (when/require/within, forbid/while/before).
check_ws2812yesCapture a live WS2812 line and judge it, one call.
check_dshotyesSame, for a DShot600 ESC signal.
capture_ws2812yesJust capture β†’ observations (no judging).
check_serialyesRead a serial port for N seconds and judge the log.

Event contracts are the SVA-style layer: relationships between decoded events, checked for every occurrence, with latency distributions and first-failure timestamps. Feed them sigrok-cli --protocol-decoder-jsontrace output and judge from the CLI:

bash
python3 -m hwcontract.temporal spi-frame.contract.yaml trace.json

The bundled spi-frame.contract.yaml catches the Zephyr LPSPI class of bug (CS asserting after SCK starts, MOSI setup collapse) that loopback tests cannot see.

Prefer plain pytest over MCP? pytest-hwcontract is a plugin that turns verdicts into tests: a FAIL, MARGINAL or MISSING edge fails the test with the verdict table in the message, JUnit included.

Gate CI on it

The repo ships a GitHub Action, so captures checked into the repo get judged on every PR:

yaml
- uses: MohibShaikh/hwcontract@action-v0
  with:
    timing: "ws2812b=captures/strip.csv"     # contract=capture-glob, bundled names work
    serial: "boot=logs/boot.log"
    samplerate: 24000000                     # for CSV captures (0/1 per line)
    junit: hwcontract-junit.xml              # shows in the tests tab

A FAIL, MARGINAL or MISSING edge fails the step, annotates the failing line, and writes JUnit. The action self-tests on every push to this repo with one clean and one deliberately broken capture.

How it fits together

Code
  observers (capture)                  judge (this repo)
  ─────────────────────                ─────────────────
  logic analyzer  ─ pulse widths ─┐
  serial port     ─ log text ─────┼─►  contract Γ— observation  ─►  pass/marginal/fail
  sigrok jsontrace ─ events β”€β”€β”€β”€β”€β”€β”˜         (judge.py / temporal.py)
  • judge.py. The pure judge for timing and serial, plus contract validation. No hardware, no framework, cached.
  • temporal.py. Cross-event temporal assertions: selectors, signed windows, latency distributions, first-failure timestamps.
  • jsontrace.py. Imports sigrok-cli's Google Trace Event JSON into normalized events.
  • sigrok_adapter.py. Turns a logic-analyzer capture into pulse-width distributions for WS2812 and DShot.
  • serial_adapter.py. Captures a serial log, or replays a saved one.
  • server.py. The MCP server, stdio and HTTP JSON-RPC, stdlib only.
  • *.contract.yaml. What "correct" looks like. Human-editable, and they double as regression tests.

The contract format

Timing (ws2812.contract.yaml, dshot.contract.yaml): pulse widths in ns

yaml
contract: ws2812
headroom_pct: 20         # in-spec but within 20% of a rail => "marginal"
edges:
  - {name: T0H, min: 200, typ: 350, max: 500}   # '0' bit high time

Read the full README β†’View source on GitHub β†’

Related MCP Servers

View all in Embedded System View all alternatives
  • Embedcalc MCP logoEmbedcalc MCP

    Deterministic embedded-engineering tools: CRC to C, CAN/UART/I2C timing, struct layout, IEEE-754.

    πŸ“Ÿ Embedded System0 views
    Compare vs Embedcalc MCP β†’
  • Dbgprobe MCP Server logoDbgprobe MCP Server

    Let AI agents interact with debug probes β€” connect, flash, read/write memory, and reset.

    πŸ“Ÿ Embedded System0 views
    Compare vs Dbgprobe MCP Server β†’
  • OpenOCD Debugger logoOpenOCD Debugger

    Debug microcontrollers from Claude via OpenOCD: flash, breakpoints, memory and registers by name.

    πŸ“Ÿ Embedded System0 views
    Compare vs OpenOCD Debugger β†’
  • Electronics MCP Servers logoElectronics MCP Servers

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

    πŸ“Ÿ Embedded System0 views
    Compare vs Electronics MCP Servers β†’

Reviews

No reviews yet β€” be the first to share how this listing worked for you.

Frequently Asked Questions about Hwcontract

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "hwcontract": { "command": "uvx", "args": ["hwcontract"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewHwcontract AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/hwcontract?style=directory)](https://allmcps.com/mcp/hwcontract)
HTML Embed
<a href="https://allmcps.com/mcp/hwcontract"><img src="https://allmcps.com/api/badge/hwcontract?style=directory" alt="Hwcontract on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ“ŸEmbedded System
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimePython
Last updatedAug 19, 2026
1/6 checks healthy over the last 46d
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars0
GitHub Star CountTotal stargazers on GitHub representing community popularity (0 stars).
Last commit1mo ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Aug 19, 2026
37Quality signal: Fair Β· 37/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools16/30
Adoption & activity2/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 2d ago via OSV.dev Β· hwcontract (PyPI)

β˜… FeaturedAllMCPs Server logo

AllMCPs Server

The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 10,000+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge β€” proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it β€” no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ“Ÿ Embedded System β†’Alternatives to Hwcontract β†’Install in Claude DesktopInstall in CursorInstall in VS CodeSetup guides for all 13 MCP clients