Cleanroom Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Cleanroom Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP server that enforces the clean-room software reimplementation process. AI coding agents connect to this server and receive role-gated access to tools — an analyst agent gets spec-writing tools, an implementer agent gets coding tools, and neither can cross the information barrier. Every action is automatically logged to a tamper-evident audit trail.
Clean-room reimplementation is a legal process for recreating software without copying the original source code. It requires strict separation between people who study the original (analysts) and people who write the new version (implementers). Traditionally this is enforced by policy. This MCP server enforces it architecturally — an implementer agent literally cannot call analyst tools or read draft specs.
The server exposes 20 MCP tools organized by role:
| Role | Can Do | Cannot Do |
|---|---|---|
| Analyst | Create specs, study original software, submit for review | Read implementation code, access clean room tools |
| Implementer | Read handed-off specs, write code, run tests | Read draft specs, access analysis tools |
| Monitor | Review specs for contamination, approve/reject, view audit trail | Modify specs or implementation |
| Lead | All monitor capabilities + project init, team management | Create specs (that's the analyst's job) |
Every tool call is logged to a SHA-256 hash-chained audit trail. Access denials are logged too — if an implementer tries to read a draft spec, the attempt is recorded and blocked.
Analyst creates spec ──> Submits for review ──> Monitor reviews
│
┌───────────┴───────────┐
│ │
Approved Rejected
│ (with feedback)
v │
Monitor hands off Analyst revises
│ │
v └──> Resubmits
Implementer receives
(spec is now immutable)cleanroom://specs/localhost:7391 with three role-gated views (Dirty Room, Clean Room, Bridge)--solo flag enables mid-session role switching for single-developer use (ceremonial barrier only — see caveats)npm install -g cleanroom-mcpOr run directly with npx (no install needed):
npx cleanroom-mcp --project ./my-projectSee docs/getting-started.md for a complete walkthrough.
# Start as analyst
CLEANROOM_ROLE=analyst CLEANROOM_USER=analyst-01 \
npx cleanroom-mcp --project ./my-project
# Start with the web dashboard
CLEANROOM_ROLE=analyst CLEANROOM_USER=analyst-01 \
npx cleanroom-mcp --project ./my-project --dashboardFor solo developers or experimentation, the --solo flag enables mid-session role switching without restarting the server:
npx cleanroom-mcp --project ./my-project --solo --role analyst --user nickThis registers a cleanroom_switch_role tool that lets you change roles on the fly:
cleanroom_switch_role({ role: "implementer" })
→ Role switched. Previous: analyst, Current: implementerImportant caveats about solo mode:
--solo flag, the cleanroom_switch_role tool doesn't exist at all — the hard wall is preserved for real multi-person clean-room processes.Solo mode is useful for:
Add to your project's .mcp.json:
{
"mcpServers": {
"cleanroom": {
"command": "npx",
"args": ["cleanroom-mcp", "--project", "."],
"env": {
"CLEANROOM_ROLE": "analyst",
"CLEANROOM_USER": "analyst-agent-01"
}
}
}
}Run separate Claude Code sessions for each role:
# Terminal 1: Analyst studies the original, writes specs
CLEANROOM_ROLE=analyst claude
# Terminal 2: Monitor reviews specs for contamination
CLEANROOM_ROLE=monitor claude
# Terminal 3: Implementer builds from handed-off specs
CLEANROOM_ROLE=implementer claude{
"mcpServers": {
"cleanroom": {
"command": "npx",
"args": ["cleanroom-mcp", "--project", ".", "--solo", "--role", "analyst", "--user", "nick"]
}
}
}Or install globally and add to ~/.mcp.json to make it available in every project:
npm install -g cleanroom-mcp{
"mcpServers": {
"cleanroom": {
"command": "cleanroom-mcp",
"args": ["--solo", "--role", "analyst", "--user", "nick"]
}
}
}Example configs are in the examples/ directory.
Start the server with --dashboard to enable the web UI:
CLEANROOM_ROLE=analyst CLEANROOM_USER=analyst-01 \
node dist/server.js --project ./my-project --dashboard --port 7391The dashboard prints per-role URLs with auth tokens. Three views:
The dashboard updates in real-time via SSE as agents work.
src/
├── server.ts # MCP server entry + CLI
├── core/
│ ├── types.ts # Zod schemas + TypeScript types
│ ├── config.ts # .cleanroom/config.yaml management
│ ├── audit-engine.ts # SHA-256 hash-chained audit log
│ ├── access-control.ts # Role-based tool gating
│ └── spec-engine.ts # Spec lifecycle (create → handoff)
├── tools/
│ ├── project.ts # cleanroom_init, cleanroom_status
│ ├── spec.ts # spec_create, spec_read, spec_list, spec_submit
│ ├── review.ts # spec_review, spec_handoff
│ ├── team.ts # team_add, team_list, attest, ai_log
│ ├── audit.ts # audit_log, audit_verify, audit_export
│ ├── implement.ts # impl_read_spec, impl_run_tests
│ └── verify.ts # verify_run, verify_report
├── prompts/ # Role-specific MCP prompt templates
├── resources/ # MCP Resources (specs, project status)
├── templates/ # Spec templates (markdown)
└── dashboard/
├── server.ts # Express server + auth
├── api.ts # REST API routes
├── sse.ts # Server-Sent Events
├── auth.ts # Token generation
└── views/ # HTML dashboard pagesnpm install # Install dependencies
npm run build # Build with tsup
npm run dev # Build in watch mode
npm test # Run tests (vitest)
npm run typecheck # Type check without emitting--solo mode lets a single user switch roles freely. Tool gating is enforced per-role, but since the same person controls when to switch, the information barrier is ceremonial. Solo mode is for process discipline and learning, not legal defensibility. The audit trail records every role switch, but it will clearly show a single actor wearing multiple hats.Apache-2.0
This is a process management tool, not legal advice. The legal validity of any clean-room implementation depends on the specific circumstances, jurisdiction, and execution. Consult with intellectual property counsel for your specific situation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.