Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Signalint

NPM · SIGNALINT-MCP

Local stdio MCP server for cached, loop-aware JS/TS diagnostics (Oxlint, tsc, Biome, ESLint).

Available components

0 this week 85 Trust /100

Last scanned (11 hours ago)

Scores higher than 87% of npm servers

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 4.6.5, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to TranQui004/signalint). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 24 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1098 tokens (~84/item across 13 items; 13 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability check failed: the tool surface changed between 0.4.2 and 1.2.1: 0 tool removals, 1 breaking changes, 8 additions. See how to fix → Fail
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90.

  • 31 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 87.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90.

  • 24 Oct 26 −6
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 77 to 80.

  • 14 Oct 26 +39
    • Stability: unverified → fail ▼ security
    • Injection markers: unverified → pass ▲ security
    • Schema quality: 116 → 84 ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: excellent → good functional
    • Package version: 0.4.2 → 1.2.1 functional
  • 12 Oct 26 −44
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • First check of Schema quality: unverified functional
    • Package version: 0.4.2 → 1.2.1 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/signalint-mcp@1.2.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo TranQui004/signalint
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/TranQui004/signalint/.github/workflows/release.yml@refs/tags/v1.2.1
Rekor log index 3201728354
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:dfc612e0a488370a0eedb9f10750811c66b534665ace1649c7ce6fb0b900d4ef43430f9c9454e296c3a6e4db0bdacdd156d8f30acb18661735c45f8ed

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 94 packages
Packages resolved 94
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 13 exposed · ~1,098 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
after_edit_check ~73

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

NameTypeReqDescription
baselineCheckIdstring––
filesarrayyes–
NameTypeReqDescription
checkIdstring––
clustersarray––
codestring––
deltaobject––
enginestring––
enginesobject––
fileRuleChurnWarning–––
filteredOutCountinteger––
filteredOutIssueCountinteger––
loopWarning–––
messagestring––
nextStepstring––
omittedIssueCountinteger––
projectRootstring––
remainingIssuesarray––
retryableboolean––
schemaVersionstring––
statusstringyes–
totalIssuesinteger––
truncatedboolean––

No examples provided.

apply_diagnostic_fix ~110

Applies 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 recovery if the process terminates abruptly.

NameTypeReqDescription
baselineCheckIdstring––
confirmbooleanyes–
transactionIdstringyes–
NameTypeReqDescription
codestring––
deltaobject––
errorstring––
filesModifiedarrayyes–
messagestring––
postCheckIdstring––
statusstringyes–
transactionIdstringyes–

No examples provided.

check_files ~184

Runs 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 project directory — absolute paths or paths outside the root return an error response. Caching is file-content-hash-based: a file is re-checked only when its content or the engine's config file (e.g., .oxlintrc, tsconfig.json) has changed since the last call, not based on git status. TypeScript is a whole-program engine: it re-runs whenever any TypeScript file in the request has changed content.

NameTypeReqDescription
filesarrayyes–
NameTypeReqDescription
checkIdstring––
clustersarray––
codestring––
enginestring––
enginesobject––
fileRuleChurnWarning–––
filteredOutinteger––
filteredOutCountinteger––
filteredOutIssueCountinteger––
loopWarning–––
messagestring––
nextStepstring––
omittedIssueCountinteger––
projectRootstring––
remainingIssuesarray––
retryableboolean––
schemaVersionstring––
statusstringyes–
totalIssuesinteger––
truncatedboolean––

No examples provided.

check_project ~117

Runs 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 instead for faster incremental checks after editing specific files. Each call re-runs all enabled engines with no caching.

NameTypeReqDescription
pathsarray––
NameTypeReqDescription
checkIdstring––
clustersarray––
codestring––
enginestring––
enginesobject––
fileRuleChurnWarning–––
filteredOutinteger––
filteredOutCountinteger––
filteredOutIssueCountinteger––
loopWarning–––
messagestring––
nextStepstring––
omittedIssueCountinteger––
projectRootstring––
remainingIssuesarray––
retryableboolean––
schemaVersionstring––
statusstringyes–
totalIssuesinteger––
truncatedboolean––

No examples provided.

compare_diagnostics ~73

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

NameTypeReqDescription
baselineCheckIdstringyes–
currentCheckIdstringyes–
NameTypeReqDescription
baselineCheckIdstring––
baselineIdstring––
codestring––
currentCheckIdstring––
currentIdstring––
errorsIntroducedinteger––
errorsResolvedinteger––
introducedIssuesarray––
messagestring––
netDeltainteger––
nextStepstring––
resolvedIssuesarray––
statusstringyes–
unchangedIssuesarray––

No examples provided.

discard_diagnostic_fix ~36

Discards an in-memory diagnostic fix preview by transactionId, dropping it from server storage.

NameTypeReqDescription
transactionIdstringyes–
NameTypeReqDescription
discardedbooleanyes–
transactionIdstringyes–

No examples provided.

get_diagnostic_snapshot ~58

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

NameTypeReqDescription
checkIdstringyes–
NameTypeReqDescription
cacheobject––
checkIdstring––
clustersarray––
codestring––
durationMsnumber––
enginesobject––
filteredOutIssueCountinteger––
messagestring––
omittedIssueCountinteger––
projectRootstring––
remainingIssuesarray––
sourcestring––
statusstringyes–
timestampinteger––
totalIssuesinteger––

No examples provided.

get_issue_detail ~124

Returns 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" response instead of an error.

NameTypeReqDescription
checkIdstringyes–
clusterIdstring––
issueIdstring––
NameTypeReqDescription
codestring––
issuesarray––
messagestring––
projectRootstring––
statusstring––

No examples provided.

get_live_diagnostics ~49

Returns current bounded active diagnostics and clusters merged from both internal engines and ingested LSP sources, with clear provenance per issue.

NameTypeReqDescription
filesarray––
severitystring––
NameTypeReqDescription
clustersarrayyes–
issuesarray––
remainingIssuesarray––
statusstringyes–
totalIssuesintegeryes–

No examples provided.

get_loop_status ~99

Returns 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 agent is oscillating on; use check_project or check_files to run fresh diagnostics.

Input schema present but exposes no named parameters.

NameTypeReqDescription
fileChurningbooleanyes–
fileRuleChurnsarrayyes–
loopingbooleanyes–
signaturesarrayyes–

No examples provided.

ingest_diagnostics ~71

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

NameTypeReqDescription
diagnosticsarrayyes–
serverNamestring––
sourcestring––
NameTypeReqDescription
checkIdstring––
clustersarrayyes–
remainingIssuesarray––
snapshotIdstringyes–
totalIssuesintegeryes–

No examples provided.

ping ~55

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

Input schema present but exposes no named parameters.

NameTypeReqDescription
pongbooleanyesTrue when the server is responsive.
projectRootstringyesCanonical absolute project root path.

No examples provided.

preview_diagnostic_fix ~49

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

NameTypeReqDescription
patchesarrayyes–
NameTypeReqDescription
errorstring––
filesCountintegeryes–
patchesPreviewarray––
statusstringyes–
summarystringyes–
transactionIdstringyes–

No examples provided.

Install

How do I install the Signalint MCP server?

Signalint runs locally as an npm package, launched with npx -y signalint-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · signalint-mcp

# add to Claude Code
claude mcp add tranqui004-signalint -- npx -y signalint-mcp
Common questions

What is the Signalint MCP server?

Signalint is an MCP server listed in the public MCP registry as io.github.TranQui004/signalint. Local stdio MCP server for cached, loop-aware JS/TS diagnostics (Oxlint, tsc, Biome, ESLint). This page covers its npm package (signalint-mcp).

Is the Signalint MCP server safe to use?

Signalint scores 85 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Signalint MCP server expose?

Signalint exposes 13 tools: ping, check_project, check_files, get_issue_detail, get_loop_status, and 8 more. Their descriptions and schemas cost roughly 1,098 tokens of context every time the server is loaded.

Is the Signalint MCP server still maintained?

Signalint is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Signalint MCP server under?

Signalint declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.