Signalint MCP server
io.github.TranQui004/signalint·v1.2.1·1 starsLocal stdio MCP server for cached, loop-aware JS/TS diagnostics (Oxlint, tsc, Biome, ESLint).
1 stars1.1k downloads/wk
Reviews
Write oneNobody has reviewed Signalint yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Signalint tools (13, 4 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
after_edit_checkwrite actionRuns incremental diagnostics on specified edited files and computes a verification delta against an optional baselineCheckId. Read-only; no files are written or modified. Use this after modifying files to verify whether edits introduced or resolved diagnostics relative to the baseline check.
apply_diagnostic_fixApplies diagnostic modifications using per-file adjacent temporary-file replacement, pre-write drift detection, and in-process best-effort rollback for multi-file writes. Requires explicit confirm: true. If baselineCheckId is provided, it must be valid and active in the snapshot store; unknown or expired baselines abort immediately without modifying files. Does not provide persistent crash recover
check_fileswrite actionRuns Oxlint and TypeScript (and optionally Biome) lint and type diagnostics on a specific list of files, using per-engine content-hash caching to skip unchanged files. Read-only; no files are written or modified. Use this for incremental checks after editing specific files; use check_project for a full project scan. The files parameter expects relative file paths (not glob patterns) within the pro
check_projectwrite actionRuns and clusters Oxlint and TypeScript (and optionally Biome) lint and type diagnostics for one or more project paths. Read-only; no files are written or modified. Paths default to the project root (".") when omitted; paths must be relative and within the project directory — absolute paths or paths outside the root return an error response. Use this for a full project scan; use check_files instea
compare_diagnosticsComputes a deterministic diagnostic delta between two checks (baselineCheckId and currentCheckId). Read-only; no files are modified. Identifies introduced errors, resolved errors, unchanged issues, and net error delta, resilient to line shifts.
discard_diagnostic_fixDiscards an in-memory diagnostic fix preview by transactionId, dropping it from server storage.
get_diagnostic_snapshotRetrieves the immutable diagnostic snapshot recorded for a specific checkId. Read-only; no files are modified. Returns full metadata, engine statuses, clusters, remaining issues, and performance metrics for that check run.
get_issue_detailReturns the full issue list for either one cluster ID or one issue ID for a specific checkId. Read-only; no files are written or modified. Supply checkId (required) and exactly one of clusterId or issueId — supplying both or neither returns an argument error. If the referenced checkId is unknown/expired or the issue/cluster no longer exists in that check snapshot, returns a status: "stale" respons
get_live_diagnosticsReturns current bounded active diagnostics and clusters merged from both internal engines and ingested LSP sources, with clear provenance per issue.
get_loop_statusReturns all diagnostic issue signatures currently flagged as looping (repeatedly appearing and disappearing) in this server session. Read-only; no files are written or modified. Loop history is accumulated across all check_project and check_files calls in this process lifetime, and is restored from .signalint/session.jsonl on startup. Takes no parameters. Use this to identify which diagnostics an
ingest_diagnosticsIngests external LSP diagnostics (e.g., from VS Code or language servers), normalizes them to Signalint's unified schema, updates the active diagnostic buffer, and records an immutable snapshot.
pingChecks whether the Signalint MCP server is responsive. Read-only; returns the string "pong" with no side effects. Use this to verify the server is connected before running diagnostics. Invalid arguments return an error response; no authentication is required.
preview_diagnostic_fixwrite actionCreates an in-memory preview of proposed diagnostic fixes without touching the filesystem. Validates paths against canonical project root containment and returns a preview with a unique transactionId.
Public scan report
scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it
- Code scan152 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Signalint compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 93% of 48,243 servers
- Tools
- 13
- the typical server has 7
- Tools that change things
- 31%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,706 servers
- Downloads a week
- 1,145
- more than 95% of 12,306 servers with a package
What its tools let an agent do: 8 read · 4 change · 1 run or deploy
Release history: 3 versions in the registry since 2026-09-04, latest 2026-10-11, typically one every 34 days.
Install Signalint in Claude Code, Cursor or VS Code
Runs npx -y signalint-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add signalint -- npx -y signalint-mcp
What the publisher says
From the Signalint repository's README, as published. We do not edit it. Read it on GitHub
Signalint
Signalint is a local MCP server for JavaScript and TypeScript diagnostics. It runs Oxlint, TypeScript, and optionally Biome; caches unchanged checks; clusters repeated issues; and warns when the same diagnostic disappears and repeatedly returns. Loop history is restored from valid .signalint/session.jsonl entries when the MCP server restarts; malformed or crash-truncated lines are skipped.
Listed on:
- mcpservers.org
- Official MCP Registry (API listing)
Diagnostic compression example
When a coding agent requests diagnostics on a project, raw compiler and linter outputs quickly flood the context window with repetitive errors across multiple files. Signalint normalizes issues and clusters them by root cause before returning a bounded, priority-ranked response:
Raw diagnostics (40 issues across 10 files · 9,151 bytes)
[
{
"issueId": "ts-01",
"file": "src/file01.ts",
"line": 10,
"col": 5,
"engine": "tsc",
"rule": "TS2322",
"severity": "error",
"message": "Type 'string' is not assignable to type 'number' in fixture assignment 01.",
"fixable": false
},
// ... 39 more raw normalized issues
]Clustered response returned to agent (4 clusters · 1,233 bytes · 86.5% reduction)
{
"schemaVersion": "1.1",
"status": "issues_found",
"engines": {
"oxlint": { "status": "ok" },
"tsc": { "status": "ok" },
"biome": { "status": "disabled" }
},
"totalIssues": 40,
"clusters": [
{
"clusterId": "c1",
"rootCauseSummary": "10 TS2322 issues across 10 files",
"ruleIds": ["TS2322"],
"issueCount": 10,
"fileCount": 10,
"priority": 1,
"suggestedAction": "Review the shared cause of TS2322 across 10 files",
"sampleIssueIds": ["ts-01", "ts-02"]
},
{
"clusterId": "c2",
"rootCauseSummary": "10 no-unused-vars issues across 10 files",
"ruleIds": ["no-unused-vars"],
"issueCount": 10,
"fileCount": 10,
"priority": 2,
"suggestedAction": "Review the shared cause of no-unused-vars across 10 files",
"sampleIssueIds": ["unused-01", "unused-02"]
},
{
"clusterId": "c3",
"rootCauseSummary": "10 eqeqeq issues across 10 files",
"ruleIds": ["eqeqeq"],
"issueCount": 10,
"fileCount": 10,
"priority": 5,
"suggestedAction": "Apply structured fixes for eqeqeq across 10 files",
"sampleIssueIds": ["eqeqeq-01", "eqeqeq-02The agent receives a concise summary with priority-ordered clusters and sample issue IDs. When deeper detail is needed for a specific cluster or issue, the agent calls getissuedetail without re-running the whole-project scan.
Requirements
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Signalint: common questions
- Is Signalint MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Signalint safety report
- How do I install Signalint?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Signalint need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Signalint maintained?
- The last commit was 20 days ago (2026-10-16). The latest release is v1.2.1.
- How does Signalint compare with other MCP servers?
- safety score 92/100 (higher than 93% of 48,243 servers); tools 13 (the typical server has 7); tools that change things 31% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.