ββββββ βββββββ βββββββ βββ βββββββββββ ββββββββββββββββββββββββ βββ βββββββββββ βββββββββββββββββββ βββββββ βββββββββββ βββββββββββββββββββ ββββββ βββββββββββ βββ ββββββ βββββββββββββββββββββββββββββ βββ ββββββ βββ βββββββ βββββββ ββββββββ
π The Model Context Protocol workbench β test any MCP server against a live conformance suite, compose a working server on a node canvas, and read the spec in-app. All in the browser. No backend.
πͺ« Shipped an MCP server that "mostly works" and found out in production? Argus is the hundred-eyed workbench that watches every frame on the wire. This repository is the whole platform β the browser app plus the small companion binaries that let it reach servers a web page can't touch on its own.
Repository map Β β’Β The three tools Β β’Β Architecture Β β’Β Quick Start Β β’Β Working on each package Β β’Β Docs Β β’Β Status
This is a multi-package repo, not a single app. Each package installs and builds on its own (independent pnpm-lock.yaml per package β there is no root workspace). The app is the star; everything else exists to serve it or test it.
MCP Builder/ β git root Β· the Argus platform
βββ π argus/ the app β Next.js 15 SPA (Test Β· Build Β· Learn)
β βββ spec-source/draft/ vendored MCP DRAFT-2026-v1 spec (source for Learn + checks)
βββ π argus-bridge/ WebSocket β stdio relay β scan stdio-only servers
βββ π argus-proxy/ CORS relay β scan cross-origin HTTP servers
βββ π§ͺ torture-server/ deliberately-broken MCP server (test fixture)
βββ π docs/ design brief Β· conformance spec Β· platform spec + build plans
| Package | What it is | Needs a companion? | README |
|---|---|---|---|
argus |
The browser app. Static Next.js 15 SPA β three tools, three Zustand stores, everything in localStorage. |
β | argus/README.md |
argus-bridge |
Tiny Node CLI. Bridges a browser WebSocket to a spawned stdio MCP server so Argus can scan Claude Desktop plugins, local node/python binaries, etc. |
is the companion | argus-bridge/README.md |
argus-proxy |
Tiny Node CLI. A loopback CORS relay so Argus can scan HTTP servers that don't send Access-Control-Allow-Origin. |
is the companion | argus-proxy/README.md |
torture-server |
An intentionally-non-conformant MCP server used as the fixture the conformance checks are tested against (plus a clean variant the e2e smoke scan grades A or better). | β | β |
Argus is three instruments in one dark panel. Full depth lives in argus/README.md; the short version:
| π¬ Test | "Is my server correct?" | Replays 67 conformance checks across 20 categories against a live endpoint (HTTP Β· SSE Β· stdio) and returns a graded report β A+ β¦ F β with per-check evidence, the exact spec clause, and a copy-paste curl to reproduce. |
| π§© Build | "Scaffold me a server." | A pannable node-graph canvas where tools, prompts, and resources are nodes. Validates against the spec as you compose, then generates a runnable TypeScript or Python project and zips it in-browser. |
| π Learn | "What does the spec say?" | The full DRAFT-2026-v1 specification, vendored at build time β a searchable tree with βK fuzzy search and spec:// deep links fired straight from a failed check. |
The app is a static single-page app β next build emits plain HTML/JS/CSS (output: 'export'). No server runtime, no database, no accounts, no telemetry. The browser talks to MCP servers directly over HTTP/SSE; the two companion binaries exist only to reach servers a web page fundamentally cannot.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Argus SPA β Next.js 15 static export (localhost:3000) β
β Test Β· Build Β· Learn β πΎ localStorage only β
βββββββββ¬ββββββββββββββββββββ¬ββββββββββββββββββββ¬ββββββββββββ
β fetch / SSE β WebSocket β HTTP POST
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β MCP server β β π argus-bridge β β π argus-proxy β
β (HTTP / SSE) β β wsβstdio :7879 β β CORS relay :7878β
βββββββββββββββββββ ββββββββββ¬βββββββββ βββββββββββββββββββ
βΌ
stdio MCP server
(node Β· python Β· plugin)
Build and Learn are fully browser-local. Only Test reaches out β directly for HTTP/SSE (through argus-proxy when CORS blocks it), or via argus-bridge for stdio, which a page can't spawn on its own.
π§° You will need: Node.js 20+ Β· pnpm 9+.
βΉοΈ The companion CLIs aren't published to npm yet β run them from source (as shown below). Once published,
npx argus-bridge/npx argus-proxywill work from anywhere.
cd argus
pnpm install
pnpm dev # http://localhost:3000Press g t for Test, g b for Build, g l for Learn.
Paste its URL into Test β Endpoint, keep transport on streamable-http, Run scan. Blocked by CORS? In another terminal:
cd argus-proxy && pnpm install && pnpm dev # http://127.0.0.1:7878/proxyβ¦then paste that into Test β Proxy URL.
cd argus-bridge && pnpm install && pnpm dev # ws://127.0.0.1:7879/bridgeIn the UI: transport β stdio (via bridge), paste your server command (e.g. node my-server.js or python -m my_server), Run scan.
β Verify: the lattice fills one cell per check as results stream, then the grade arc draws and a letter pops into the hero.
g b β + New build β drag server / tool / prompt / resource nodes β fill each inspector β Generate β download a runnable TypeScript or Python ZIP. Run it, then scan it back in Test.
Each package is self-contained β cd in, install, and use its own scripts.
# π the app
cd argus
pnpm install
pnpm dev # dev server on :3000
pnpm test # 522 unit tests (Vitest + jsdom)
pnpm build # static export β ./out (prebuild vendors the spec)
pnpm typecheck
# π the stdio bridge
cd argus-bridge
pnpm install && pnpm build # tsc β dist/, chmod +x the CLI
pnpm test # server Β· spawn Β· cli Β· real-WebSocket e2e
# π the CORS proxy
cd argus-proxy
pnpm install && pnpm build
pnpm test
# π§ͺ the test fixture
cd torture-server
pnpm install
pnpm dev # runs the broken server for manual scanningFull E2E (Playwright drives a real Chromium: home β g t β scan via a real bridge β grade reveal) β from argus/:
pnpm test:e2e:install
cd ../argus-bridge && pnpm install && pnpm build && cd ../argus
pnpm test:e2e| Path | What |
|---|---|
docs/argus-design-brief.md |
The product & brand brief β audience, why it exists, the "dark instrument" design point of view. |
docs/mcp-conformance-spec.md |
Source catalog behind the conformance checks. |
docs/superpowers/specs/ |
The platform design spec (visual tokens, architecture, screens, success criteria). |
docs/superpowers/plans/ |
Phase-by-phase build plans (shell β test β build β learn β bridge β polish). |
argus/spec-source/draft/ |
Vendored MCP DRAFT-2026-v1 spec β the source pnpm sync-spec renders into the Learn tool. |
Phases 1β6 complete β a working browser-only MCP conformance, build, and learn platform. Per-phase detail and the full stack live in argus/README.md and argus/CHANGELOG.md.
Known limitations β static export only (no server runtime); no formal accessibility audit yet; Playwright is local-only (no CI wiring).
Released under the MIT License β Β© 2026 Akash Varma. Do what you like; no warranty.
See CONTRIBUTING.md to get started, SECURITY.md to report a vulnerability, and the Code of Conduct.
Built for the engineers who screenshot their tools. π
π’ Every frame on the wire, watched.