sonic-boom
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sonic-boomgenerate a heatmap of my codebase"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sonic Code Sentinel (sonic-boom)
Sonic Code Sentinel encodes an entire TypeScript / JavaScript codebase into a single PNG heatmap that vision-capable AI models can read in one glance β bypassing token limits for codebase-scale audits.
The image is a deterministic function of the AST: same code β byte-identical pixels. Each pixel encodes a category (via color) and severity (via brightness), so the picture itself is the audit summary β no separate lookup required.
π΅ The Spectrogram
The codebase is laid out as a 2D heatmap.
graph LR
Code[Source Code] --> Scanner[AST Scanner]
Scanner --> Map[Deterministic Color Map]
Map --> PNG[Spectrogram PNG]
PNG --> AI[Vision AI Model]
AI --> Fix[Surgical Code Fix]πΊοΈ Coordinate Mapping
X-Axis: Each file occupies a contiguous horizontal slot. Within a slot, X is proportional to the line number of the node.
Y-Axis: Partitioned into four bands (see below). Within the top
ANOMALYband, each Y-row is reserved for one concern β turning the band into a row-per-category heatmap.Color: Encodes the anomaly category (see catalog below).
Brightness (Amplitude): Encodes severity β
highis brightest (1.0),medis mid (0.75),lowis dim (0.5). Structural (non-anomaly) pixels fade with nesting depth.
π Frequency Bands
Hz Range | Layer | Content |
20 β 8 k |
| Source files ( |
8 k β 12 k |
| Stylesheets ( |
12 k β 16 k |
| Markup assets ( |
16 k β 20 k |
| Per-category rows for detected concerns |
Related MCP server: CodeWeaver MCP Server
π¬ Detected Anomalies
13 categories. Each has a stable Hz row, a stable color, and a fixed severity β so the heatmap is readable without consulting the mapping table.
Category | Severity | Detection | |
Empty catch block | high |
| |
Layer Violation | high | File under | |
Massive Component | high |
| |
Prop Overload | high | Interface ending in | |
Explicit | med | Parameter, variable, or property typed | |
Heavy Library Import | med | Imports | |
High Complexity | med (high if cc β₯ 20) | Function / method / arrow / class with cyclomatic > 5 or depth > 5 β label includes | |
Heavy Barrel Export | med |
| |
Commented-out Code Block | med | Long comment block containing code-like characters | |
Z-Index Escalation | med |
| |
Unresolved TODO/FIXME | med | Leading comment matching `/TODO | FIXME/i` |
Tailwind Magic Value | low | Arbitrary | |
Missing Test File | low | Source file with no sibling |
π¨ Color Legend
Color | Category |
White | Layer Violation |
Bright Red | Empty catch block |
Light Red | Explicit |
Purple | Heavy Library Import |
Orange | Prop Overload |
Amber | High Complexity (with 5-px horizontal spread for emphasis) |
Gold | Massive Component |
Dim Yellow | Heavy Barrel Export |
Sky Blue | Z-Index Escalation |
Cyan | Tailwind Magic Value |
Bright Yellow | Unresolved TODO/FIXME |
Grey | Commented-out Code Block |
Dim Blue-Grey | Missing Test File |
Below the ANOMALY band, structural pixels render green / blue / orange for the LOGIC / STYLES / MARKUP layers respectively.
π οΈ MCP Tools
Three tools, used as a pipeline.
Tool | Purpose |
| Generates the PNG + mapping table. Returns the PNG (base64), a severity-sorted top-10 anomaly summary, and the color legend. |
| Translates |
| Fetches a 20-line context window for a given file + line. |
Resolution behavior
Strict snap: clicks within 12 px of an anomaly pixel resolve to that anomaly, including its canonical category and severity.
Proximity fallback: a click that lands far from every anomaly in a non-empty file slot still resolves β to the closest in-slot anomaly, flagged with
proximityMatch: trueand apixelDistancein pixels. Replaces the old "Could not resolve coordinates" dead end.
Workflow
Visualize: agent calls
get_project_spectrogramover the repo root.Read the heatmap: the vision model identifies a bright pixel cluster by color (e.g. amber row = High Complexity, white row = Layer Violation).
Resolve:
resolve_sonic_coordinates(x, y)returns file, line, category, severity.Snippet:
get_code_snippetfor the 20-line window.Fix: apply patch.
π Getting Started
Prerequisites
Bun v1.1+
Install
bun installCLI
Generate a spectrogram for any local directory:
# Scan a project
bun run src/index.ts ../path/to/project
# Exclude additional patterns
bun run src/index.ts ../path/to/project --exclude "**/tests/**"
# Resolve coordinates from a previously generated mapping
bun run src/index.ts fix --coords 150,400 --issue "describe the issue"Outputs land in ./output/:
spectrogram.pngβ the heatmap.mapping_table.jsonβ per-pixel metadata used by the resolver (file, line, anomaly category, severity).
MCP server
Add to your MCP client config (e.g. Claude Desktop):
{
"mcpServers": {
"sonic-boom": {
"command": "npx",
"args": ["-y", "sonic-boom-mcp@latest"]
}
}
}The MCP server stores its artifacts under <tmp>/sonic-boom-mcp/; tool calls pass directoryPath to identify the project root.
Inspect MCP locally
bun x npx @modelcontextprotocol/inspector bun run src/mcp-server.tsRun tests
bun testThe suite covers ignore-file handling, every anomaly detection rule, scan determinism, and resolver round-trip behavior.
π§± Design Properties
Deterministic: same source β byte-identical PNG and mapping JSON across runs. No RNG anywhere in the scan or render pipeline.
Heatmap by construction: color = category, brightness = severity, Y-row = concern. The image is the audit, not a decoration.
Ignore-file aware: respects
.gitignore,.npmignore,.dockerignore,.sonicignore,.eslintignore,.prettierignore, and.gcloudignoreβ both at the repo root and in any subdirectory. Built-in skip list:node_modules,.git,dist,.next,out,build,.vscode,.idea,output.
Sonic Code Sentinel β Hear the code. See the bugs.
π License
This project is licensed under the PolyForm Noncommercial License 1.0.0.
Free for personal / non-commercial use: research, learning, hobby projects.
Commercial use requires a separate commercial license β please contact the author for details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FDiskas/sonic-boom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server