MCP stdio chạy cục bộ / signalint-mcp@0.2.0

Chẩn đoán từ engine.
Phản hồi vừa tầm agent.

Signalint chạy Oxlint, TypeScript và Biome ngay trong máy; phần việc không đổi được cache, lỗi lặp được gom lại, còn vòng lặp sửa–hỏng được cảnh báo trước khi phản hồi quay về coding agent.

Thông tin runtimetiến trình cục bộ
Transportlocal / stdio
Packagesignalint-mcp@0.2.0
Engineoxlint / tsc / biome
Phản hồischemaVersion 1.1
Giấy phépMIT
Cài từ npmdownloads / last 7 days
npm install --save-dev signalint-mcp && npx signalint-mcp init
Giảm payload86.53%

Fixture hiện tại: 9.151 B dữ liệu thô còn 1.233 B sau khi gom cụm.

Kiểm tra tăng dần3.10 ms

Kết quả acceptance gần nhất; ngưỡng bắt buộc là dưới 300 ms.

Gom lỗi fixture404

Bốn mươi lỗi thô được thu về bốn cụm theo rule.

Giới hạn đầu vào512

Số đường dẫn tương đối tối đa trong một lần gọi MCP.

01 / phản hồi

Xem đúng thứ agent nhận được.

Cuộn qua fixture 40 lỗi để thấy các dòng đã chuẩn hóa trở thành phản hồi schema 1.1 có giới hạn rõ ràng.

01 / output từ engine

Bốn mươi lỗi hợp lệ vẫn có thể là một phản hồi tệ.

Engine vẫn là nguồn sự thật. Signalint trước tiên chuẩn hóa vị trí, rule ID, severity và message.

02 / gom theo rule

Các triệu chứng lặp lại trở thành một mục cần xem.

Nhóm rule lớn trải trên nhiều file nhận một root-cause summary cùng các issue ID mẫu không trùng nhau.

03 / phản hồi có giới hạn

Agent nhận bốn cụm, không phải bốn mươi dòng.

Fixture kiểm soát giảm từ 9.151 byte còn 1.233 byte mà vẫn giữ trạng thái engine và tham chiếu issue.

check_project
thô / 40 lỗiđã gom / 4 cụm
01
TS2322src/file01.ts:10:5

Type 'string' is not assignable to type 'number'.

02
TS2322src/file02.ts:11:5

Type 'string' is not assignable to type 'number'.

03
TS2322src/file03.ts:12:5

Type 'string' is not assignable to type 'number'.

04
TS2322src/file04.ts:13:5

Type 'string' is not assignable to type 'number'.

05
TS2322src/file05.ts:14:5

Type 'string' is not assignable to type 'number'.

06
TS2322src/file06.ts:15:5

Type 'string' is not assignable to type 'number'.

..

34 lỗi chuẩn hóa khác

02 / cơ chế

Pipeline cục bộ với ranh giới rõ ràng.

Signalint giữ engine chẩn đoán làm nguồn sự thật và biểu diễn rõ trạng thái cache, lỗi tiến trình cùng loop detection.

MCP tool call đi vàocheck_files
Đầu vào
3 đường dẫn tương đối
Thư mục làm việc
project root
Thực thi
tiến trình cục bộ
  1. 01
    Ranh giới tin cậy

    Kiểm tra trước khi đọc.

    Zod từ chối argument sai shape. Canonical path check giữ mọi file đã chấp nhận bên trong project root.

    chấp nhận 3 đường dẫn
  2. 02
    Chạy song song engine

    Giữ đúng mô hình của từng engine.

    Engine theo file chỉ nhận cache miss. TypeScript nhìn toàn bộ chương trình đã cấu hình khi file liên quan thay đổi.

    oxlint1 cache miss
    tsctoàn project
    biomeđang tắt
  3. 03
    Contract chung

    Chuẩn hóa rồi mới gom cụm.

    Diagnostic riêng của engine trở thành normalized issue trước khi nhóm theo rule, gán priority và issue reference.

    40 lỗi → 4 cụm
  4. 04
    Phản hồi có giới hạn

    Trả lại phần đã hoàn thành.

    Schema 1.1 giữ outcome của từng engine, nên một engine lỗi không xóa chẩn đoán từ engine khác.

    schemaVersion 1.1
oxlintok
tscok
biomeđang tắt

Chẩn đoán đã hoàn thành vẫn còn nguyên khi một engine khác gặp lỗi.

01 — cache identity

Dùng lại kết quả có nhận diện phiên bản

Kết quả chỉ được dùng lại khi nội dung file, cấu hình engine, phiên bản Signalint và phiên bản engine vẫn trùng khớp.

sha256(nội dung file)
: engine
: hash cấu hình engine
: phiên bản signalint
: phiên bản engine
02 — loop memory

Lỗi quay lại sẽ được nhìn thấy

Một lỗi biến mất rồi xuất hiện nhiều lần tạo cảnh báo hẹp, không suy diễn về toàn bộ cuộc trò chuyện của agent.

{
  "signature": "no-unused-vars:<identifier> is unused",
  "occurrences": 3,
  "hint": "Lỗi này đã được sửa rồi quay lại 3 lần — nên thử cách khác"
}
03 — engine fan-out

Kết quả từng phần vẫn được giữ

Một engine có thể lỗi mà không làm mất chẩn đoán engine khác đã hoàn thành.

"engines": {
  "oxlint": { "status": "ok" },
  "tsc": { "status": "error", "message": "..." },
  "biome": { "status": "disabled" }
}
04 — ranh giới tiến trình

Thời gian chạy có giới hạn

Mặc định Oxlint 30 giây, tsc 120 giây và Biome 30 giây. Timeout hoặc hủy request đều kết thúc cây tiến trình.

05 — lưu trữ

Trạng thái cục bộ không tăng vô hạn

SQLite cache loại hàng ít dùng nhất khi vượt 10.000 mục. Session log chỉ đọc phần đuôi gần nhất và giữ một bản .1 sau khi rotate.

03 / engine

Mỗi engine giữ nguyên mô hình thực thi.

Signalint điều phối ba công cụ mà không giả vờ chúng hoạt động giống nhau. Quyết định cache đi theo phạm vi thật của từng engine.

01

Oxlint

Phân tích theo file

NhậnCác file đã đổi và chưa có cache

Signalint gom các cache miss rồi lưu kết quả đã chuẩn hóa theo engine và file.

Phạm vi cache
engine + file
Timeout
30 giây
02

TypeScript

Phân tích toàn chương trình

NhậnToàn bộ project đã cấu hình

Root thường dùng --project; root dạng solution có references dùng --build.

Phạm vi cache
quyết định chạy
Timeout
120 giây
03

Biome

Theo file, bật tùy chọn

NhậnFile cache-miss khi engine được bật

Mặc định tắt và luôn có trạng thái riêng trong mỗi check response.

Phạm vi cache
engine + file
Timeout
30 giây

04 / client

Kết nối server ngay nơi agent làm việc.

Một server cục bộ, ba vị trí cấu hình theo từng client. Lệnh init dò client ở gần và chỉ ghi file sau khi bạn xác nhận.

01 / trong project

Claude Code

Chia sẻ MCP entry cục bộ qua .mcp.json.

claude mcp add --scope project signalint …
02 / trong project

Cursor

Dùng .cursor/mcp.json cùng binary đã phát hành trên npm.

npx --no-install signalint-mcp
03 / cấu hình người dùng

Antigravity

Đặt working directory tuyệt đối trong mcp_config.json.

cmd /c npx --no-install signalint-mcp