rustsdcmcpBLOCK
Async Rust MCP server for HPE Juniper Security Director Cloud — a mechub project
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
rustsdcmcp
Async Rust Model Context Protocol server for HPE Juniper Security Director Cloud a mechub project — sovereign network-security automation
Unofficial / community project. This is an independent community project and does not claim affiliation with or endorsement by Hewlett Packard Enterprise or Juniper Networks. Product names and trademarks are used only to identify the systems with which the software interoperates.
rustsdcmcp exposes HPE Juniper Security Director Cloud (SDC) to MCP clients as a bounded, auditable tool surface. SDC is the HPE Juniper SASE portal for an SRX estate, so this server talks to that management plane rather than to any single firewall. Where `rustjunosmcp` talks NETCONF to individual SRX devices, rustsdcmcp talks HTTPS REST to the portal that governs them.
That distinction has a large blast radius: one SDC action can affect many managed SRX devices. Strict approval, credential-safe attribution, and bounded I/O therefore protect the management plane rather than merely decorate it.
Current status
rustsdcmcp exposes 74 MCP tools (v0.1.0 and main): 60 bounded read tools and 14 change-control tools. The surface covers the part of the SDC API that manages SRX devices and their policy; the rest of the product's API is deliberately out of scope.
Every mutation is reachable only through prepare → independent approval → apply. A wildcard token scope deliberately grants no write tool, so each must be named explicitly when a token is minted.
Live validation against SDC has gone well beyond read-only. On 2026-08-07 a full prepare → approve → apply policy deploy ran ag
b1ebbae1582dOBSERVED · 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.
claude mcp add rustsdcmcp:0.1.0 -- docker run -i --rm ghcr.io/mechubsec/rustsdcmcp:0.1.0:None stdio /var/lib/sdcmcp/changeset-state.json
Trust audit
BLOCKgrade D · trust 65/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) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (10 observation(s))
- Network
- declared (6 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- found
Findings (22)
"private_key": "-----BEGIN PRIVATE KEY-----AAAA-----END PRIVATE KEY-----",
let sdc = client(Url::parse("http://127.0.0.1:9/").expect("url"), 4096);let sdc = client(Url::parse("http://127.0.0.1:9/").expect("url"), 4096);let sdc = client(Url::parse("http://127.0.0.1:9/").expect("url"), 4096);let error = reject_unsupported_otel_endpoint(Some("http://127.0.0.1:4318")).gitleaks-vendor.toml
.gitleaks.toml
.gitleaksignore
.superpowers-issue-52-report.md
.trivyignore.yaml
sdc.list_config_versions("../../api/v1/devices", &CancellationToken::new())"/../../docs/sdc-api/security-director-cloud-apis-openapi3.json"
fs::read_to_string(crate_root.join("../../Cargo.lock")).expect("read workspace lockfile");fs::read_to_string(crate_root.join("../../Cargo.lock")).expect("read workspace lockfile");fs::read_to_string(crate_root.join("../../Cargo.lock")).expect("read workspace lockfile");for url in 'http://169.254.169.254/' 'http://[fd00:ec2::254]/' \
the local MCP client uses `http://127.0.0.1:30032/mcp`. Each installation
| `none` | the field is a documented in-sync token. The vendored spec names no such token, so this server does not emit `none` |
docs/sdc-api/security-director-cloud-apis-openapi3.json
Use `stat` only; never read the installed credential back.
- Do not read or copy the external SDC credential.
Gates applied: critical_finding, no_behavioural_pass.
b1ebbae1582dfull audit observations/trust-audit/mcp-server/mechubsec__rustsdcmcp.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 | b1ebbae1582d | BLOCK | D | 65 | first audit |
Questions
What is the rustsdcmcp MCP server?
Async Rust MCP server for HPE Juniper Security Director Cloud — a mechub project
Is rustsdcmcp safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (65/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What credentials does rustsdcmcp need?
No credential environment variables were found in its source, so it appears to need none.
How does rustsdcmcp run?
It speaks stdio and streamable-http, so it runs as a local process your client starts.
How current is this page?
The grade is for one exact copy of the source (b1ebbae1582d), read on 2026-10-12. The repository is watched and re-audited when it changes.