benchweaveBLOCK
BenchWeave is a Python test-bench gateway for embedded systems, combining reusable instrument and DUT plugins, shared device profiles, and safety-aware automated testing using AI.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
BenchWeave is a Python test-bench gateway for embedded systems, combining reusable instrument and DUT plugins, shared device profiles, and safety-aware automated testing.
Status: architecture baseline and Python scaffold. The repository includes versioned contracts, PoC/MVP plans and architecture validation in CI. The gateway, device plugins and hardware qualification remain to be implemented.
The plan
- Connect instruments and devices under test through reusable plugins and typed device profiles.
- Share profiles and implementations through a central registry, with local admission and offline execution.
- Coordinate bounded test procedures with explicit ownership, measurement evidence and verified safe endings.
- Expose a consistent REST and MCP interface for applications and coding agents.
The first PoC is simulator-first. The planned hardware MVP targets the FNIRSI DPS-150, with ESP32 as the provisional controller family. Unattended hardware testing requires separate bench commissioning and qualification.
Website and documentation
The public site is at — the standards, the guides and architecture record, and the benchweave CLI reference, rendered from this repository by the docs workflow (.github/workflows/docs.yml, scripts/assemble_docs_site.py). Docs serve versioned per-tag snapshots at docs/v// once a release tag exists, with the latest release at the docs root and the current tree at docs/v/dev/. The site's version claims are stamped at assembly from the standards manifest's active versions: claim sites in website/index.html carry {{stg-*}} tokens, and the hygiene pin refuses a three-component version literal anywhere under website/ or in index.qmd (two-component prose claims remain outside the pattern by desi
b0ff393e1d04OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add benchweave --env BENCHWEAVE_SECRET=${BENCHWEAVE_SECRET} --env MUNINN_MCP_TOKEN=${MUNINN_MCP_TOKEN} --env MUNINN_TOKEN=${MUNINN_TOKEN} --env TYPESAFE_API_KEY=${TYPESAFE_API_KEY} -- uvx benchweave{
"mcpServers": {
"benchweave": {
"command": "uvx",
"args": [
"benchweave"
],
"env": {
"BENCHWEAVE_SECRET": "${BENCHWEAVE_SECRET}",
"MUNINN_MCP_TOKEN": "${MUNINN_MCP_TOKEN}",
"MUNINN_TOKEN": "${MUNINN_TOKEN}",
"TYPESAFE_API_KEY": "${TYPESAFE_API_KEY}"
}
}
}
}Exposed tools (1)
1 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
stg_v1_gateway_info | read | Spike tool: empty-input gateway info. |
Trust audit
BLOCKgrade F · trust 39/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | WARN |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (9 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- pinned
- Secrets in source
- found
Findings (25)
exec(compile(entry_bytes, str(entry_path), "exec"), module.__dict__) # noqa: S102
exec(compile(self.inventory[path], module.__file__, "exec"), module.__dict__) # noqa: S102
_MD_CONTROL = re.compile(r"[\x00-\x1f\x7f ]")
const BASE = argOf('--base') || process.env.MUNINN_MCP_URL || 'http://127.0.0.1:8750/mcp''node .claude/hooks/memory-drain.mjs --base http://127.0.0.1:8125/mcp',
if "Δt = 7 μs" not in rendered.text_content:
messages.append("the seconds-mode Δt readout scales the unit (Δt = 7 μs)")if "Δt = 7 samples" not in sample_render.text_content:
messages.append("sample-index mode reads the raw difference (Δt = 7 samples)")"Δt = 7 μs" in sample_render.text_content
secret = "tok-do-not-print-5f3a"
secret = "tok-do-not-print-5f3a"
secret = "tok-do-not-print-5f3a"
secret = "tok-do-not-print-5f3a"
(row layer, run at the fold): `style="display:none"` planted on
`element <span> is hidden by inline style (style='display:none')`; restored →
manifest.sig
payload.zip
manifest.sig
payload.zip
payload.zip
.gitmodules
payload.zip
payload.zip
payload.zip
Gates applied: no_behavioural_pass.
b0ff393e1d04full audit observations/trust-audit/mcp-server/madeinoz67__benchweave.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | b0ff393e1d04 | BLOCK | F | 39 | first audit |
Questions
What is the benchweave MCP server?
BenchWeave is a Python test-bench gateway for embedded systems, combining reusable instrument and DUT plugins, shared device profiles, and safety-aware automated testing using AI.
What tools does benchweave expose?
1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is benchweave safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (39/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does benchweave need?
It reads BENCHWEAVE_SECRET, MUNINN_MCP_TOKEN, MUNINN_TOKEN and TYPESAFE_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does benchweave run?
It speaks streamable-http, so it runs as a service you connect to over the network. It is published on PyPI as benchweave.
How current is this page?
The grade is for one exact copy of the source (b0ff393e1d04), read on 2026-10-12. The repository is watched and re-audited when it changes.