Skip to content

Latest commit

Β 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•

πŸ”­ 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.

Packages App Tests Spec Backend CI License: MIT

πŸͺ« 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


πŸ—ΊοΈ Repository map

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). β€” β€”

πŸ”­ The three tools

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.

πŸ›οΈ Architecture

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.

πŸš€ Quick Start

🧰 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-proxy will work from anywhere.

1️⃣ Run the app

cd argus
pnpm install
pnpm dev              # http://localhost:3000

Press g t for Test, g b for Build, g l for Learn.

2️⃣ Scan an HTTP server

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.

3️⃣ Scan a stdio server

cd argus-bridge && pnpm install && pnpm dev    # ws://127.0.0.1:7879/bridge

In 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.

4️⃣ Compose a server from scratch

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.

πŸ§‘β€πŸ’» Working on each package

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 scanning

Full 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

πŸ“š Docs & design

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.

🧭 Status

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).

πŸ“„ License

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.

About

πŸ”­ Browser-native workbench for the Model Context Protocol β€” scan any MCP server against a live conformance suite, compose servers on a node canvas, and browse the spec. Next.js 15 Β· React 19 Β· zero backend.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages