Tài liệu MCP tool
Cấu trúc tham số nghiêm ngặt và quy chuẩn phản hồi có phiên bản cho từng công cụ MCP của Signalint.
Các tham số công cụ từ chối các thuộc tính không xác định. Mảng đường dẫn chấp nhận tối đa 512 chuỗi tương đối theo dự án; các đường dẫn tuyệt đối, thoát ra ngoài, chứa NUL và có dấu gạch ngang ở đầu đều bị từ chối. Mọi công cụ đều khai báo outputSchema rõ ràng và trả về structuredContent song song với khối text.
ping
Kiểm tra xem Signalint MCP server có đang phản hồi hay không. Chỉ đọc; trả về chuỗi pong và không có tác dụng phụ. Sử dụng để xác minh server đã kết nối trước khi chạy chẩn đoán. Tham số không hợp lệ sẽ trả về phản hồi lỗi; không yêu cầu xác thực.
| Tham số | Kết quả |
|---|---|
{} | pong |
check_project
Chạy và gom cụm các chẩn đoán lint và kiểu của Oxlint và TypeScript (và tùy chọn Biome) cho một hoặc nhiều đường dẫn dự án. Chỉ đọc; không file nào được ghi hay thay đổi. Đường dẫn mặc định là gốc dự án (".") khi bỏ qua; đường dẫn phải tương đối và nằm trong thư mục dự án — đường dẫn tuyệt đối hoặc nằm ngoài gốc sẽ trả về lỗi. Dùng công cụ này để quét toàn bộ dự án; dùng check_files để kiểm tra tăng dần nhanh hơn sau khi sửa file cụ thể. Mỗi lần gọi sẽ chạy lại toàn bộ engine đã bật mà không dùng cache.
{
"paths": ["src/"]
}Trả về cấu trúc CheckResponse. Các lỗi tiến trình của engine tích hợp được giữ lại dưới trạng thái engines tương ứng để các chẩn đoán đã hoàn thành khác vẫn tồn tại.
check_files
Chạy các chẩn đoán lint và kiểu của Oxlint và TypeScript (và tùy chọn Biome) trên một danh sách file cụ thể, sử dụng cache theo hash nội dung để bỏ qua các file không thay đổi. Chỉ đọc; không file nào được ghi hay thay đổi. Dùng công cụ này cho kiểm tra tăng dần sau khi sửa file cụ thể; dùng check_project để quét toàn bộ. Tham số files nhận đường dẫn file tương đối (không phải glob pattern) trong thư mục dự án — đường dẫn tuyệt đối hoặc nằm ngoài thư mục gốc sẽ trả về lỗi. Cache dựa trên hash nội dung file: file chỉ được kiểm tra lại khi nội dung hoặc file cấu hình engine (như .oxlintrc, tsconfig.json) thay đổi kể từ lần gọi trước, không dựa theo git. TypeScript là engine toàn chương trình: nó chạy lại bất cứ khi nào có file TypeScript nào trong yêu cầu thay đổi nội dung. Ngoài ra, kiểm tra tăng dần theo dõi hiện tượng churn theo cặp (file, rule): nếu cùng một file/rule phát sinh lỗi qua 3+ lần gọi riêng biệt, fileRuleChurnWarning sẽ được kích hoạt.
{
"files": ["src/index.ts", "src/config.ts"]
}Mảng files là bắt buộc và chấp nhận tối đa 512 chuỗi.
get_issue_detail
Trả về danh sách lỗi đầy đủ cho một cluster ID hoặc một issue ID từ lần gọi check_project hoặc check_files gần nhất. Chỉ đọc; không file nào được thay đổi. Cung cấp đúng một tham chiếu không rỗng — cung cấp cả hai hoặc không có tham chiếu nào sẽ trả về lỗi tham số. Nếu cluster hoặc issue không còn tồn tại trong kết quả mới nhất (ví dụ sau khi chạy lại kiểm tra), trả về status: "stale" thay vì lỗi:
{
"clusterId": "c1"
}Kết quả thành công là một mảng các đối tượng NormalizedIssue. Một tham chiếu cũ (stale) sẽ trả về:
{
"status": "stale",
"message": "This cluster/issue no longer exists; run check_project again."
}get_loop_status
Trả về tất cả chữ ký lỗi hiện đang được đánh dấu là lặp đi lặp lại (xuất hiện và biến mất liên tục) và các cặp file/rule bị churn qua 3+ lần gọi check_files riêng biệt trong phiên server này. Chỉ đọc; không file nào được thay đổi. Lịch sử được tích lũy qua tất cả các lần gọi kiểm tra trong vòng đời tiến trình, và được khôi phục từ .signalint/session.jsonl khi khởi động lại. Chấp nhận {} và báo cáo trạng thái vòng lặp cùng churn độc lập:
{
"looping": true,
"signatures": [{
"signature": "no-unused-vars:<identifier> is unused",
"occurrences": 3,
"hint": "This issue was fixed and reappeared 3 times — consider a different approach"
}],
"fileChurning": false,
"fileRuleChurns": []
}CheckResponse · schema 1.2
{
"schemaVersion": "1.2",
"status": "issues_found",
"engines": {
"oxlint": { "status": "ok" },
"tsc": { "status": "ok" },
"biome": { "status": "disabled" }
},
"totalIssues": 10,
"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"]
}],
"truncated": false,
"loopWarning": null,
"fileRuleChurnWarning": null
}| Trường | Kiểu | Quy chuẩn |
|---|---|---|
schemaVersion | "1.2" | Phiên bản quy chuẩn phản hồi hiện tại. |
status | "clean" | "issues_found" | Cho biết liệu các issue đã chuẩn hóa có còn lại sau khi lọc hay không. |
engines | record | Bao gồm chính xác oxlint, tsc và biome; mỗi mục là ok, error hoặc disabled, kèm thông điệp tùy chọn. |
totalIssues | integer | Tổng số issue chuẩn hóa thô trước khi cắt giảm cluster. |
clusters | Cluster[] | Các cụm lỗi sắp xếp theo thứ tự ưu tiên tăng dần; ưu tiên 1 là cao nhất. Mặc định trả về 10 cụm. |
truncated | boolean | Bằng true khi số cụm tồn tại vượt quá giới hạn phản hồi. |
loopWarning | LoopWarning | null | Cảnh báo dao động chữ ký chính xác hiện tại, nếu có. |
fileRuleChurnWarning | FileRuleChurnWarning | null | Cảnh báo churn theo cặp (file, rule) khi lỗi lặp lại qua 3+ lần gọi check_files riêng biệt, hoặc null. |
Cluster
| Trường | Kiểu |
|---|---|
clusterId | string |
rootCauseSummary | string |
ruleIds | string[] |
issueCount | integer |
fileCount | integer |
priority | integer |
suggestedAction | string |
sampleIssueIds | string[] |
LoopWarning
| Trường | Kiểu | Mô tả |
|---|---|---|
signature | string | Chữ ký rule:message đã chuẩn hóa (loại bỏ identifier và số). |
occurrences | integer | Số lần chữ ký lỗi này đã biến mất rồi xuất hiện trở lại. |
hint | string | Gợi ý hành động để agent cân nhắc phương pháp tiếp cận khác. |
FileRuleChurnWarning
| Trường | Kiểu | Mô tả |
|---|---|---|
file | string | Đường dẫn file tương đối trong dự án. |
rule | string | Mã định danh rule chẩn đoán (ví dụ TS2345). |
checkCount | integer | Số lần gọi check_files riêng biệt phát hiện cặp này (≥ 3). |
hint | string | Cảnh báo agent có thể đang bị mắc kẹt khi sửa file này. |
NormalizedIssue
{
"issueId": "d7f6...",
"file": "src/index.ts",
"line": 12,
"col": 7,
"engine": "tsc",
"rule": "TS2322",
"severity": "error",
"message": "Type 'string' is not assignable to type 'number'.",
"fixable": false,
"clusterId": "c1"
}engine là oxlint | tsc | biome; severity là error | warning; thông điệp được chuẩn hóa tối đa 120 ký tự. clusterId là tùy chọn ở ranh giới adapter và xuất hiện sau khi gom cụm. fixable bằng true chỉ khi engine cung cấp bản sửa lỗi có cấu trúc.
Các phản hồi ngoại lệ
Các quy chuẩn cấu trúc cấp thấp này áp dụng khi lỗi quá thời gian (timeout) hoặc vượt giới hạn đầu ra chạm tới MCP handler trực tiếp. Luồng fan-out tích hợp bình thường sẽ ghi cùng thông điệp trong mục status: "error" của engine đó.
Engine timeout
{
"status": "timeout",
"engine": "tsc",
"message": "tsc did not complete within 120s"
}Engine vượt giới hạn đầu ra
{
"status": "error",
"code": "engine_output_exceeded",
"engine": "oxlint",
"message": "đầu ra của oxlint vượt quá giới hạn 10 MiB"
}