Skip to content
This repository was archived by the owner on Apr 2, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ PKG := ./cmd/beacon-proxy

export PATH := /opt/homebrew/bin:/usr/local/go/bin:$(HOME)/go/bin:$(PATH)

.PHONY: build build-small test test-race test-verbose bench coverage coverage-html lint fmt tidy vulncheck generate install check clean run
.PHONY: build build-small test test-race test-verbose bench coverage coverage-html lint fmt tidy vulncheck generate install check clean run demo demo-fake verify

build:
go build -o $(BINARY) $(PKG)
Expand Down Expand Up @@ -59,3 +59,21 @@ clean:

run: build
./$(BINARY) $(ARGS)

demo: build
@echo "🔦 Beacon demo — resetting audit DB and generating real e2e traffic..."
@rm -f ~/.beacon/audit.db ~/.beacon/audit.db-wal ~/.beacon/audit.db-shm
@open http://localhost:8080 2>/dev/null || xdg-open http://localhost:8080 2>/dev/null || true
@go run ./cmd/beacon-e2e/

demo-fake: build
@echo "🔦 Beacon demo — resetting audit DB and generating fake traffic..."
@rm -f ~/.beacon/audit.db ~/.beacon/audit.db-wal ~/.beacon/audit.db-shm
@go run ./cmd/beacon-traffic/
@echo ""
@echo "Starting dashboard..."
@open http://localhost:8080 2>/dev/null || xdg-open http://localhost:8080 2>/dev/null || echo "Open http://localhost:8080"
@./$(BINARY) --server-name demo --port 8080 -- sh -c 'echo "beacon-demo-server"; exec cat'

verify: build
./$(BINARY) verify $(ARGS)
27 changes: 22 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ make build

```
beacon-proxy [flags] -- <server-command> [server-args...]
beacon-proxy verify [--db path]
```

### Flags
Expand Down Expand Up @@ -131,7 +132,7 @@ beacon-proxy --server-name filesystem -- npx -y @modelcontextprotocol/server-fil

Beacon includes a real-time web dashboard at `http://localhost:8080` (configurable via `--port`).

![Beacon Dashboard](docs/dashboard.png)
![Beacon Dashboard — Tool Calls](docs/dashboard-toolcalls.png)

- **Live tool call stream** — see every MCP action as it happens via SSE
- **Session overview** — browse sessions, see tool call counts and max risk per server
Expand All @@ -140,17 +141,33 @@ Beacon includes a real-time web dashboard at `http://localhost:8080` (configurab
- **Approve/deny** — handle paused tool calls directly from the browser
- **Hash chain verification** — one-click integrity check of the entire audit trail

![Beacon Dashboard — Hash Chain Verification](docs/dashboard.png)

No build step — the dashboard is a single HTML file embedded in the binary.

### Generate Demo Traffic
### Quick Demo

One command to build, generate traffic, and open the dashboard:

```bash
make demo
```

To populate the dashboard with realistic sample data across multiple servers:
Or step-by-step:

```bash
go run ./cmd/beacon-traffic/
go run ./cmd/beacon-traffic/ # populate with realistic sample data
open http://localhost:8080 # open dashboard
```

This creates sessions for GitHub, filesystem, and PostgreSQL MCP servers with a mix of read/write/delete/execute operations, risk scores, and policy actions (flag, pause, block).
### Verify Hash Chain

Check the integrity of the audit trail from the CLI:

```bash
beacon-proxy verify
beacon-proxy verify --db /path/to/audit.db
```

## Inspecting the Audit Trail

Expand Down
Loading
Loading