Checkride
Checkride MCP 서버
Checkride는 AI 코딩 에이전트를 위한 빠르고 로컬에서 실행되는 "CI 사전 점검" 검증 사이드카 역할을 하는 Model Context Protocol(MCP) 서버입니다.
Checkride가 Cursor, Claude Desktop 또는 Antigravity에 연결되면 보이지 않는 로컬 검증 사이드카로 실행됩니다. AI 에이전트는 코드가 커밋할 준비가 되었는지 추측하는 대신 해당 도구를 호출하여 로컬에서 코드 변경 사항을 테스트합니다.
기능
빠른 사전 점검 파이프라인: 테스트 스위트, 타입 체커, 린터를 동시에 실행합니다.
스마트 SHA-256 캐싱: 변경되지 않은 코드베이스에서 즉각적인 10ms 미만 응답(
[CACHED < 10ms])을 제공합니다.Git 및 스테이징 파일 인텔리전스: 수정되었거나 스테이징된 Git 파일에 대해서만 대상 검증 및 안전 검사를 실행합니다.
사전 커밋 Git 훅: 수동 커밋 전에 코드를 자동으로 검증하도록 로컬
.git/hooks/pre-commit을 쉽게 설치할 수 있습니다.Docker 샌드박싱: 프로세스 실행을 격리하기 위한 선택적 컨테이너 실행(
"sandbox": "docker")을 지원합니다.의존성 보안 감사: AI 에이전트가 도입한 취약점을 감지하기 위해 패키지 보안 감사(
npm audit,cargo audit,pip-audit)를 실행합니다.AI 수정 생성기: 오류 및 타입 불일치를 분석하여 프롬프트에 바로 사용할 수 있는 수정 힌트와 코드 스니펫을 반환합니다.
시각적 보고서 내보내기: Markdown(
.checkride/summary.md) 및 HTML(.checkride/report.html) 검증 요약을 내보냅니다.Git 안전 가드 스캐너: 남아 있는 충돌 마커(
<<<<<<<), 유출된 API 비밀/키, 디버그 문(console.log,debugger,breakpoint())을 감지합니다.자동 감지 및 모노레포 지원: 패키지 매니저(
pnpm,yarn,bun,npm), 모노레포(Turbo, pnpm workspaces, Lerna), 언어(TypeScript, JavaScript, Python, Rust, Go)를 자동 감지합니다.구성 가능한 사이드카:
.checkriderc.json을 통해 명령, 검사별 타임아웃, 제외 항목, Git 안전 심각도, 사용자 정의 빌드 단계를 사용자 정의할 수 있습니다.
Related MCP server: FlowCheck MCP Server
"연결됨"의 의미
Cursor / AI 어시스턴트는 백그라운드에서 Checkride를 시작합니다:
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}IDE에서 채팅할 때 에이전트는 10개의 MCP 도구를 호출할 수 있습니다. 해당 도구는 .checkriderc.json을 읽고 CI(pytest, ruff, tsc, 테스트 스위트, 웹 빌드)와 동일한 명령을 실행합니다.
Checkride를 데스크톱 앱으로 열 필요는 없습니다. AI 에이전트가 자율적으로 사용하는 보이지 않는 인프라로 작동합니다.
일반적인 에이전트 워크플로우
flowchart LR
A[You ask agent to change code] --> B[Agent edits files]
B --> C[Agent calls Checkride MCP]
C --> D{Passed?}
D -->|Yes| E[Agent says ready / offers commit]
D -->|No| F[Agent reads errors and fixes]
F --> C1. 변경 요청
예: "인시던트 API에 필드를 추가하고 웹 페이지를 업데이트하세요."
2. 에이전트가 변경 구현
코드베이스 전체의 파일을 편집합니다.
3. 에이전트가 Checkride로 검증 (자동 또는 요청 시)
일반적인 도구 호출:
도구 | 사용 시점 | 실행 내용 |
| 커밋 전 — 변경된 파일만 | Git 안전 스캔 + 스테이징된 파일에 대한 린터 |
| 전체 사전 점검 |
|
| 백엔드/API 편집 후 | 실행된 테스트 스위트 |
| 코드 편집 후 | 구성된 린터 ( |
| TS/React 편집 후 |
|
| 커밋 전 | 충돌 마커, 비밀, 디버그 로그 |
| 실패 시 | 오류 파싱 → 에이전트용 프롬프트 수정 힌트 |
| 빠른 요약 | 재실행 없이 마지막 실행 결과 |
4. 에이전트가 수정 또는 확인
실패: 에이전트가 Checkride 오류 출력을 읽고 코드를 수정한 후 검사를 다시 실행합니다.
통과: 에이전트가 코드베이스가 깨끗하고 커밋할 준비가 되었음을 알려줍니다.
채팅에서 말할 수 있는 내용
정확한 도구 이름이 필요 없습니다. 일반 언어 프롬프트가 도구를 자동으로 트리거합니다:
"Run checkride on my staged changes"
"Run full pre-flight checks before I commit"
"Did my API changes pass tests and lint?"
"Check for secrets or debug logs in what I changed"MCP vs CLI vs Git 훅
방법 | 실행 주체 | 가장 적합한 경우 |
MCP (연결됨) | 채팅 중 AI 에이전트 | 페어 프로그래밍 중 지속적인 검증 |
| 터미널에서 직접 | 수동 |
| 터미널에서 직접 | 로컬에서 전체 CI 미러 |
| Git 자동 | Cursor/IDE 외부에서도 잘못된 커밋 차단 |
노출된 MCP 도구
도구 이름 | 설명 | 매개변수 | 출력 스키마 |
| 스마트 SHA-256 캐싱(변경되지 않은 코드에서 10ms 미만)으로 전체 검증 파이프라인 실행 |
|
|
| 수정/스테이징된 Git 파일에 대한 대상 검사 실행 |
|
|
| 충돌 마커, 유출된 비밀, 디버그 로그에 대한 파일 스캔 |
|
|
| 의존성 취약점 보안 감사 실행 |
|
|
| 테스트 실패 및 TS 오류 수정을 위한 AI 프롬프트 힌트 생성 |
|
|
| 시각적 Markdown/HTML 보고서를 |
|
|
| 테스트 스위트만 실행 |
|
|
| 타입 검사 실행 ( |
|
|
| 코드 린터 실행 ( |
|
|
| 마지막 검사 실행 상태 검색 | 없음 |
|
예제 세션
You: Add an unlock button to the admin users page.
Agent: [edits src/components/admin.tsx...]
[calls run_staged_checks]
→ lint/typecheck on changed files
→ git safety on staged files
Agent: Staged checks passed. Ready to commit.
You: Run full checks to be sure.
Agent: [calls run_checks]
→ test suite + ruff + tsc + build
→ all passed!테스트가 실패하는 경우:
Agent: [calls run_tests] → 2 failures
[calls suggest_fixes] → hints for each failure
[fixes code]
[calls run_tests again] → passed중요 세부 사항
Checkride는 검증하고, 커밋은 사용자가 합니다: Checkride는 로컬 검사를 실행합니다. 명시적인 사용자 작업 없이 코드를 커밋하거나 푸시하지 않습니다.
로컬 환경 사용: 명령 실행은 로컬 node_modules, Python virtualenv 또는 Docker 컨테이너를 사용하여 실행됩니다.
MCP 통합: MCP는 Cursor/AGY/Claude 내에서 실행됩니다. 편집기 없이 터미널에서 커밋하는 경우 CLI 또는 Git 훅(
init-hooks)을 사용합니다.Cursor 새로고침:
.cursor/mcp.json또는 설정에 Checkride를 추가한 후 창을 새로고침하여 설정 → MCP에서 서버가 연결되도록 합니다.
구성 (.checkriderc.json)
Checkride는 프로젝트 디렉터리 루트에서 .checkriderc.json, .checkriderc 또는 checkride.config.json을 자동으로 찾습니다:
{
"sandbox": "docker",
"docker_image": "node:20-alpine",
"git_safety": {
"severity": "warn",
"ignore_patterns": ["test/"]
},
"timeouts": {
"test": 60000,
"typecheck": 60000,
"lint": 30000,
"security": 60000,
"default": 60000
},
"commands": {
"test": "pnpm test",
"typecheck": "tsc --noEmit",
"lint": "eslint .",
"security": "npm audit --json",
"custom": [
{
"name": "Format Check",
"command": "prettier --check .",
"timeout": 15000
}
]
},
"exclude": ["node_modules", "dist", "build", ".git"],
"env": {
"CI": "true"
}
}Git 사전 커밋 훅 설치
수동 git commit 전에 Checkride 검사를 자동으로 실행하도록 로컬 .git/hooks/pre-commit을 설치합니다:
npx checkride-mcp init-hooks또는 터미널에서 스테이징된 검사를 수동으로 실행합니다:
npx checkride-mcp check --stagedAI 에이전트 연결
1. Claude Desktop 구성 (claude_desktop_config.json)
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}2. Cursor / Antigravity / Claude Code 구성
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}라이선스
MIT © Siqah
Available Tools
10 toolscheck_git_safetyA
Scan target or staged files for conflict markers (<<<<<<<), hardcoded secrets/API keys, and leftover debug statements. Use before git commit.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Optional array of specific file paths to scan. Defaults to all staged/modified Git files. | |
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It clearly implies a read-only scan but never explicitly states non-destructive behavior, whether it requires a git repo, or what happens when no files are supplied. It also doesn't mention output format or exit status, which agents need to interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that immediately states the action, target, and specific checks. Efficient with no filler, and the usage hint is appended naturally. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with zero required parameters and no output schema, the description is adequate: it tells what it scans and when to use it. It only lacks clarity on the result format (e.g., list of issues, exit code) and whether it's safe to run repeatedly, but these are secondary given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already described as optional with clear meanings. The description adds no extra nuance about how files interact with 'staged/modified' or what happens if project_path is omitted. Baseline of 3 is appropriate given the schema already documents both params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Scan') with clear targets (target or staged files) and enumerates three concrete checks (conflict markers, secrets, debug statements). It differentiates from siblings like run_security_audit by naming specific scan types, though it doesn't explicitly contrast with run_staged_checks which could overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear temporal usage hint ('Use before git commit') but offers no guidance on when to use this vs. sibling tools like run_staged_checks or run_security_audit. The 'or' in 'target or staged files' is ambiguous about precedence. Exclusions or alternatives are not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_reportA
Generate visual Markdown or HTML validation reports saved to .checkride/ directory.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report output format ('markdown' or 'html'). Defaults to 'markdown'. | |
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the key write side effect ('saved to .checkride/ directory'), which tells the agent this tool mutates the filesystem. However, it doesn't disclose whether existing reports are overwritten, whether prior check results must exist, or what the return value is. The core side effect is disclosed but edge behaviors are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 15-word sentence that front-loads the verb and purpose, immediately states the output formats and destination. There is zero filler — every word earns its place. The most decision-relevant information (what it produces, in what formats, where it writes) appears in the first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 optional parameters, no output schema, and no nested objects, the description is largely sufficient: it covers purpose, formats, and destination. The main gap is prerequisites — an agent isn't told that validation results must already exist for a report to be meaningful. Given the tool's simplicity and the clear destination disclosure, this minor omission doesn't warrant lowering below 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'format' (with enum and default) and 'project_path' are documented in the schema. The tool description adds no parameter-level detail beyond what the schema provides, but it aligns with the schema by naming both supported formats. Baseline 3 is appropriate since the schema carries the full parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and precisely names the resource ('visual Markdown or HTML validation reports') plus the destination ('.checkride/ directory'). It distinguishes itself clearly from all siblings, which are check/audit/test execution tools — this is the only report-generation tool in the set, so an agent can identify it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context — validation reports must be generated from validation results, so it naturally follows the check-running siblings. However, there is no explicit statement of when to use it versus alternatives, no mention that it should be run after run_checks or run_security_audit, and no exclusion guidance. The timing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_check_statusB
Retrieve the status and full structured results of the last validation check run.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states 'Retrieve', which implies a read-only operation, but does not describe side effects, error conditions (e.g., what happens if no check has run), required permissions, or the structure of the returned 'full structured results'. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that leads with the verb and resource. It frontloads the key action and object without any fluff or redundant wording. Every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and no output schema, the description is moderately complete. It conveys that the tool returns status and structured results of the last validation check, but it doesn't specify what 'validation check' refers to in this context, what fields the results contain, or how to interpret errors if no check has been run. Siblings like run_checks and run_staged_checks imply a workflow, but the description doesn't connect to that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is trivially 100%. The description doesn't need to add parameter details because there are none. The description's mention of 'status and full structured results' aligns with the expected output, but since there are no parameters, it fully satisfies the dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'status and full structured results of the last validation check run', which is specific enough to distinguish it from sibling tools like run_checks or run_staged_checks. However, it does not explicitly name any siblings or contrast itself, so it stops short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't say 'use this to get previous results without running new checks' or mention any exclusion criteria. The only clue is the phrase 'last validation check run', which implies retrieval but does not explicitly state the use case or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_checksA
Run the full pre-flight validation pipeline (tests, type-checking, lints, custom steps) with smart SHA-256 caching (<10ms on unchanged code). Use this before committing code.
| Name | Required | Description | Default |
|---|---|---|---|
| bypass_cache | No | Set to true to force re-running all checks and bypass cached results. | |
| project_path | No | Optional absolute or relative path to the target project directory (defaults to current working directory). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It mentions smart SHA-256 caching and speed, which is helpful, but it does not state whether the operation is read-only, whether it modifies files, or what side effects it might have. For a validation pipeline, safety may be inferred, but it is not explicit, leaving a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose, then adds caching detail and usage context without fluff. Every part earns its place, and it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool runs a complex pipeline with multiple check types, yet the description does not explain what the tool returns (e.g., pass/fail status, report, exit codes). It also omits details about the 'custom steps.' Given there is no output schema, the agent is left guessing about the return format, which is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters (bypass_cache and project_path) with descriptions, and coverage is 100%. The description adds no parameter-specific information. Per the rubric, with high schema coverage, a baseline of 3 is appropriate, and the description does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs the full pre-flight validation pipeline, listing tests, type-checking, lints, and custom steps. The verb 'run' and resource 'pipeline' are specific, and the word 'full' distinguishes it from narrower sibling tools like run_tests or run_lint. This gives an agent a precise idea of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a usage context: 'Use this before committing code.' This tells the agent when to invoke it. However, it does not mention when *not* to use it or name alternatives (e.g., run_staged_checks or run_security_audit), so it lacks the full when/when-not guidance needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_lintA
Run only code linting (e.g. ESLint, Biome, Ruff, Clippy) with optional auto-fix.
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | Whether to pass auto-fix flags (--fix / --write) to the linter. | |
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It mentions running linting and optional auto-fix, but does not disclose that auto-fix may modify files, nor does it describe output format or side effects. The tool could be destructive when fix=true, but this is not flagged, leaving behavior insufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the tool's purpose and key optional capability. The examples of linters add useful context without verbosity, and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two optional parameters, and the schema covers parameter semantics. However, the description lacks guidance on return values or exit behavior, and does not explain the effect of auto-fix on files. With no output schema and no annotations, these gaps remain for an agent to infer, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of both parameters with clear descriptions, so the description adds little beyond what is already structured. The phrase 'optional auto-fix' simply echoes the schema's fix parameter. No additional semantic detail is provided beyond the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs linting, names specific linters (ESLint, Biome, Ruff, Clippy), and specifies the optional auto-fix feature. The phrase 'only code linting' distinguishes it from broader check tools like run_checks, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for linting-only tasks, giving clear context for when to use it. However, it does not explicitly mention when not to use it or name alternatives such as run_checks or run_staged_checks. The 'only' qualifier is the sole differentiator, so while context is clear, loss of explicit exclusions keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_security_auditB
Run dependency security vulnerability audits (npm audit, cargo audit, pip-audit) and return structured vulnerability report.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that it runs audits and returns a report, but does not mention whether this involves network access, modifies any files, requires specific project setup, or what the 'structured vulnerability report' contains in terms of format or fields. This is insufficient for a tool that executes external commands, as the agent may need to know about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and the specific audits run, followed by the return type. There is no superfluous information, and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is largely adequate. It lists the audit commands and mentions the structured report, which gives the agent a good idea of what to expect. The only minor gap is that it does not explicitly mention that it operates on the given project path or how the path is used, but this is implied by the parameter. Overall, it covers the essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single parameter (project_path) with a clear description. The tool description does not add any additional meaning beyond what the schema provides, such as default behavior or path format expectations. Since schema coverage is 100%, the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs dependency security vulnerability audits and lists the specific underlying tools (npm audit, cargo audit, pip-audit). It also specifies the return type (structured vulnerability report), making it distinct from siblings like run_checks or run_tests. The verb 'audit' and resource 'dependency security vulnerabilities' are concrete and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the sibling tools. It does not mention prerequisites, when a security audit is appropriate, or whether to prefer this over run_checks or run_staged_checks. The context is completely absent, leaving the agent to infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_staged_checksA
Run fast targeted validations and Git safety checks only on modified or staged Git files (git diff). Recommended for quick pre-commit validation.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, placing the burden on the description. The description conveys that it runs validations and safety checks on staged files but does not disclose whether operations are read-only, require special permissions, or produce any side effects. The behavior beyond the action itself is opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two crisp sentences, with the core operation front-loaded and the usage recommendation in the second sentence. There is no redundant or off-topic content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter), but the description lacks information about return values or outcomes. Since no output schema exists, the description should clarify what the agent can expect (e.g., pass/fail results, detailed logs). It also does not explain any prerequisites or relationships to sibling tools beyond the scope mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter already has a clear schema description. The tool description adds no additional meaning about the parameter, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Run' and the resource: 'fast targeted validations and Git safety checks only on modified or staged Git files'. It distinguishes itself from siblings by the specific scope of staged files, which also implies a contrast with broader tools like run_checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by recommending the tool 'for quick pre-commit validation' and narrows usage to 'only on modified or staged Git files'. However, it does not explicitly exclude full checks or name alternative tools for broader validation, so it lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_testsB
Run only the test suite with optional pattern matching.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional target project directory path. | |
| test_pattern | No | Optional regex or filename pattern to filter executed tests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says tests are run; it does not mention side effects (e.g., file changes, building), required environment, return values, or exit-code behavior. An agent cannot predict what happens on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste. It states the core purpose immediately and avoids unnecessary detail. This is appropriate conciseness for a narrowly scoped tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two optional parameters and no output schema, the description covers the basic action but omits critical context such as how results are reported, whether a successful run produces output, or any prerequisites (e.g., project must be set up). The absence of annotations makes this gap more significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters at 100% coverage, so the baseline is 3. The description adds no extra meaning; 'optional pattern matching' aligns with the test_pattern parameter, but the schema already explains it. No value is added beyond the structured definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'run' and the resource 'test suite', and 'only' signals a narrow scope that differentiates from check/lint/typecheck siblings. However, it does not explicitly name alternative tools or explain which checks are excluded, so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings. 'Only the test suite' implies it is not for linting or typechecking, but the description never states that explicitly, nor does it offer conditions or exclusions. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_typecheckA
Run only type checking (e.g. tsc, mypy, cargo check, go vet).
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire burden of behavioral disclosure. The description only states the action ('Run only type checking') and gives examples, but omits critical details such as whether the tool modifies files, requires network access, or what output/exit codes it produces. For a command-like tool, this lack of behavioral context is a significant gap, though it's not misleading or contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-crafted sentence that front-loads the key information ('Run only type checking') and immediately provides clarifying examples. Every word earns its place, with no fluff or redundancy. It's concise, yet sufficiently informative for the simple scope of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description covers the core purpose but falls short on behavioral details like side effects or execution context. With no annotations to fill gaps, an agent would not know what happens if project_path is omitted, or whether the tool is safe to run in any directory. It's minimally complete but leaves room for important operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its single parameter, 'project_path', with a description ('Optional target project directory path'). The tool description adds no additional meaning about the parameter, such as default behavior when omitted or accepted path formats. Since the schema already documents the parameter, a baseline of 3 is appropriate; the description neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Run only type checking', with concrete examples (tsc, mypy, cargo check, go vet). This distinguishes it from sibling tools like run_tests or run_lint, which cover other check types. The word 'only' explicitly narrows scope, leaving no ambiguity about its intended purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description doesn't explicitly name alternatives or state when NOT to use it, the phrase 'Run only type checking' strongly implies that this tool should be used specifically when type checking is the sole requirement, versus run_checks or run_staged_checks for broader validation. It gives clear context but doesn't explicitly enumerate exclusions or sibling comparisons, which would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_fixesA
Analyze recent validation failures and return structured remediation hints and prompt snippets for AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional target project directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It discloses the core behavior—analyzing failures and returning remediation hints/prompt snippets—but leaves ambiguous how 'recent' is defined, whether it reads from persisted state, and whether any side effects occur. This is partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the primary action and the expected output. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-param tool, the description covers the main action and return value. However, with no output schema and no annotations, it doesn't clarify what 'recent' means, whether prior checks are required, or the structure of the returned remediation hints—leaving some ambiguity for an agent selecting or invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter `project_path` is fully described in the schema as 'Optional target project directory path.' With 100% schema coverage, the description doesn't need to add parameter details. The baseline 3 applies because no additional semantics beyond the schema are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Analyze') and resource ('recent validation failures'), and explicitly describes the output ('structured remediation hints and prompt snippets'). This clearly distinguishes it from sibling tools like run_checks or get_check_status, which focus on execution or status rather than remediation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear usage context: use when there are recent validation failures. This gives the agent enough situational signal. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.5.1- First observed
check_git_safety - First observed
export_report - First observed
get_check_status - First observed
run_checks - First observed
run_lint - First observed
run_security_audit - First observed
run_staged_checks - First observed
run_tests - First observed
run_typecheck - First observed
suggest_fixes
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: full pipeline, staged checks, git safety, security audit, fixes, reports, and individual test/typecheck/lint runners. Even overlapping tools like run_checks and run_staged_checks are explicitly scoped to different file sets. No two tools are likely to be confused by an agent.
All tools follow a consistent verb-first snake_case pattern (run_*, check_*, suggest_*, export_*, get_*). Verbs clearly indicate the action and nouns indicate the target, making the API predictable and intuitive. There is no mixing of conventions or vague generic names.
Ten tools provide a comprehensive but not bloated surface for a pre-flight validation pipeline. Each tool serves a distinct need—running checks, scoped checks, security, safety, fixes, reporting, and targeted individual checks—so the count is well-calibrated to the domain.
The tool set covers the full validation workflow: run checks (full or staged), inspect status, get security audits, scan for git safety issues, receive fix suggestions, and export reports. Minor gaps exist, such as no explicit tool to list or configure available checks, but these are non-essential and unlikely to cause agent failures.
Maintenance
Related MCP Connectors
Your coding agent asks the business logic of your repository and checks commits before they land
Change-aware CI validation and affected-test guidance for coding agents.
Security reviews for coding agents: diffs checked against your org policy and live infrastructure.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to scan GitHub repositories for security vulnerabilities, deployment blockers, and code quality issues. It provides detailed findings and auto-generated code patches to help developers ensure their code is production-ready.44 npmMIT
- AlicenseAqualityDmaintenanceActs as a production-grade safety layer for AI-assisted coding, monitoring Git hygiene, scanning for security issues (PII, secrets, injection), and enabling semantic history search.9MIT
- AlicenseAqualityBmaintenanceEnables AI coding agents to safely execute commands, run tests, and modify project files inside disposable, policy-enforced Docker sandboxes that are isolated from the host machine and its credentials.15MIT
- AlicenseAqualityBmaintenanceEnables AI coding agents to safely run commands, install dependencies, test, and modify code inside disposable, policy-enforced Docker sandboxes isolated from the host, returning results and diffs.15MIT