Dashboard & Monitoring
Overview
Section titled “Overview”MCP Filesystem Ultra includes an audit logging system and a separate web dashboard binary for monitoring operations, backups, normalizer activity, and error patterns.
The system has two parts:
- Audit logging — enabled via
--log-diron the MCP server, writes JSON Lines logs and metrics snapshots - Dashboard binary — separate
dashboard.exethat reads those log files and serves a web UI
There is no direct coupling between the MCP server and the dashboard. Communication is file-based only.
Audit Logging
Section titled “Audit Logging”Enabling
Section titled “Enabling”Add --log-dir to the MCP server args:
{ "mcpServers": { "filesystem-ultra": { "command": "C:\\path\\to\\filesystem-ultra-v4.exe", "args": [ "--log-dir", "C:\\Logs\\MCP", "C:\\project", "C:\\Logs\\MCP" ] } }}Note: Include the log directory in allowed paths so the dashboard can read it.
When --log-dir is not set, audit logging is disabled with zero overhead — the auditWrap() middleware returns the handler unchanged.
Files Written
Section titled “Files Written”| File | Format | Description |
|---|---|---|
operations.jsonl | JSON Lines | One entry per tool call. Auto-rotates at 10 MB, keeps last 3 files. |
metrics.json | JSON | Performance snapshot, updated every 30 seconds. |
normalizer_stats.json | JSON | Normalizer activity: per-tool counts, per-rule hits, recent normalizations. |
Audit Entry Fields
Section titled “Audit Entry Fields”Each line in operations.jsonl contains:
| Field | Description |
|---|---|
ts | Timestamp (ISO 8601) |
tool | Tool name (e.g., edit_file, search_files) |
path | Primary file path |
duration_ms | Execution time in milliseconds |
bytes_in / bytes_out | Bytes received / returned |
status | ok or error |
error | Error message (when status is error) |
risk | Risk level (LOW, MEDIUM, HIGH, CRITICAL) |
file_size | Size of the primary file |
args | Summarized parameters |
sub_op | Sub-operation detail (e.g., step:2/5:edit-step:edit for pipeline steps) |
lines_changed | Number of lines modified |
matches | Number of search/count matches |
cache_hit | Whether the operation hit cache |
norms | Normalizations applied (rule ID, param, from/to) |
All 16 tools are wrapped with auditWrap() in main.go.
Metrics Snapshot
Section titled “Metrics Snapshot”metrics.json contains:
{ "updated_at": "2026-03-16T10:30:00Z", "ops_total": 1234, "ops_per_sec": 2.5, "cache_hit_rate": 0.92, "memory_mb": 85.3, "reads": 450, "writes": 120, "lists": 200, "searches": 300, "edits": { "total": 164, "targeted": 140, "rewrites": 24, "avg_bytes": 350.5 }}Pipeline Progress
Section titled “Pipeline Progress”When a pipeline runs with --log-dir enabled, each completed step emits a separate audit entry with sub_op: "step:N/M:stepID:action". This enables per-step visibility in the dashboard.
Dashboard Binary
Section titled “Dashboard Binary”Build and Run
Section titled “Build and Run”# Buildgo build -ldflags="-s -w" -trimpath -o dashboard.exe ./cmd/dashboard/
# Rundashboard.exe --log-dir=C:\Logs\MCP --backup-dir=C:\Backups\MCP --port=9100Or use the included run-dashboard.bat.
CLI Flags
Section titled “CLI Flags”| Flag | Default | Description |
|---|---|---|
--log-dir | (required) | Same directory as the MCP server’s --log-dir |
--backup-dir | (required) | Same directory as the MCP server’s --backup-dir |
--port | 9100 | HTTP port for the web UI |
Architecture
Section titled “Architecture”- Single binary with embedded web assets (
go:embed) - Reads
operations.jsonlandmetrics.jsonfrom--log-dir - Real-time updates via Server-Sent Events (SSE)
- Backup cache with 30-second TTL (avoids repeated disk scans)
- Unified backup format: both normal backups and batch backups normalized into a common structure
Dashboard Pages
Section titled “Dashboard Pages”Dashboard (Metrics)
Section titled “Dashboard (Metrics)”Live overview of server activity:
- Operations per second
- Cache hit rate
- Memory usage
- Operation breakdown (reads, writes, searches, edits)
- Edit telemetry (targeted vs. rewrites, average bytes)
Operations (Audit Log)
Section titled “Operations (Audit Log)”Searchable, filterable list of all tool invocations:
- Timestamp, tool name, path, duration, status
- Risk level indicators
- Normalizations applied
- Sub-operation detail for pipeline steps
Backups (Recovery)
Section titled “Backups (Recovery)”Enterprise search/filter/recovery system:
- Summary cards: Total backups, total size, latest backup, protected files
- Search: Text filter (file name, backup ID, context), operation type dropdown, date presets (today, 24h, 7d, 30d, custom range)
- Content search: Grep inside backup files with context snippets (2 lines before/after match, 10-second timeout)
- Pagination: Server-side with configurable limit/offset
Backup API Endpoints
Section titled “Backup API Endpoints”| Endpoint | Description |
|---|---|
GET /api/backups | All backups (cached, unified format) |
GET /api/backups/search?q=&operation=&preset=&from=&to=&limit=&offset= | Filtered + paginated |
GET /api/backups/search-content?q=&max_results= | Grep inside backup files |
GET /api/backups/detail/{id} | Single backup with file details |
GET /api/backups/file/{id}/{filename} | Serve backup file content |
Statistics
Section titled “Statistics”Aggregate statistics over the session:
- Operations by tool
- Top paths by access count
- Error rates
- Duration percentiles
Normalizer
Section titled “Normalizer”Normalizer activity monitoring:
- Total requests processed vs. normalized
- Per-tool normalization counts
- Per-rule hit counts (which rules fire most)
- Recent normalizations with timestamps
Edit Analysis
Section titled “Edit Analysis”Edit-specific telemetry:
- Targeted edits vs. rewrites
- Average bytes per edit
- Risk level distribution
- Edit patterns over time
Error Patterns
Section titled “Error Patterns”Error monitoring and analysis:
- Errors by tool
- Error messages grouped by pattern
- Recent errors with full context
Configuration Example
Section titled “Configuration Example”Full observability setup:
{ "mcpServers": { "filesystem-ultra": { "command": "C:\\path\\to\\filesystem-ultra-v4.exe", "args": [ "--compact-mode", "--log-dir", "C:\\Logs\\MCP", "--log-level", "info", "--backup-dir", "C:\\Backups\\MCP", "--backup-max-age", "30", "--backup-max-count", "500", "C:\\project", "C:\\Backups\\MCP", "C:\\Logs\\MCP" ] } }}Then run the dashboard:
dashboard.exe --log-dir=C:\Logs\MCP --backup-dir=C:\Backups\MCP --port=9100Access at http://localhost:9100.
See Also
Section titled “See Also”- Configuration — All CLI flags reference
- Backups & Recovery — Backup system details
- Request Normalizer — Normalizer engine details
Last updated: March 2026 Version: 4.1.0