Checkride
Runs Biome lint checks on the codebase and reports lint issues or pass status.
Detects Bun-managed projects and runs their configured test, typecheck, and lint commands using Bun.
Runs validation checks inside Docker containers for sandboxed, isolated execution.
Runs ESLint on the codebase to detect lint errors and enforce code quality rules.
Supports Git safety scanning for conflict markers, secrets, and debug statements, as well as staged-file checks and pre-commit hooks.
Supports JavaScript projects through language auto-detection and running tests, linting, and security checks.
Detects npm projects, runs npm-based validation commands, and performs dependency security auditing with npm audit.
Detects pnpm projects and runs the validation pipeline using pnpm commands such as pnpm test.
Runs Prettier format checks through custom validation steps to catch formatting issues.
Supports Python projects by running mypy type checks, Ruff linting, pip-audit security scans, and tests.
Runs Ruff lint checks on Python code to find and report lint issues.
Supports Rust projects via cargo check, cargo audit, and Clippy linting.
Runs TypeScript type checking with tsc --noEmit, along with linting and test checks.
Detects Yarn-managed projects and runs the configured validation commands using Yarn.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CheckrideRun the full pre-flight validation (tests, typecheck, lint) on this repo before I commit."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Checkride MCP Server
Checkride is a Model Context Protocol (MCP) server that serves as a fast, local "CI pre-flight" validation sidecar for AI coding agents.
Once Checkride is connected in Cursor, Claude Desktop, or Antigravity, it runs as an invisible local validation sidecar — the AI agent calls its tools to test code changes locally instead of guessing whether code is ready to commit.
Features
Fast Pre-Flight Pipeline: Runs test suite, type checker, and linter concurrently.
Smart SHA-256 Caching: Instant sub-10ms responses (
[CACHED < 10ms]) on unchanged codebases.Git & Staged-Files Intelligence: Run targeted validations and safety checks on modified or staged Git files only.
Pre-Commit Git Hooks: Easily install local
.git/hooks/pre-committo validate code automatically before manual commits.Docker Sandboxing: Optional containerized execution (
"sandbox": "docker") to isolate process execution.Dependency Security Auditing: Runs package security audits (
npm audit,cargo audit,pip-audit) to detect vulnerabilities introduced by AI agents.AI Fix Generator: Analyzes errors and type mismatches to return prompt-ready remediation hints and code snippets.
Visual Report Exporter: Exports Markdown (
.checkride/summary.md) and HTML (.checkride/report.html) validation summaries.Git Safety Guard Scanner: Detects leftover conflict markers (
<<<<<<<), leaked API secrets/keys, and debug statements (console.log,debugger,breakpoint()).Auto-Detection & Monorepo Support: Auto-detects package managers (
pnpm,yarn,bun,npm), monorepos (Turbo, pnpm workspaces, Lerna), and languages (TypeScript, JavaScript, Python, Rust, Go).Configurable Sidecar: Customize commands, timeouts per check, excludes, git safety severity, and custom build steps via
.checkriderc.json.
Related MCP server: token-ninja
What "Connected" Means
Cursor / AI Assistants start Checkride in the background via:
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}When you chat in your IDE, the agent can invoke 10 MCP tools. Those tools read your .checkriderc.json and run the exact same commands as your CI (pytest, ruff, tsc, test suite, web build).
You don't open Checkride as a desktop app — it operates as invisible infrastructure that the AI agent uses autonomously.
Typical Agent Workflow
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. You ask for a change
Example: "Add a field to the incident API and update the web page."
2. Agent implements the change
Edits files across your codebase.
3. Agent validates with Checkride (automatic or on request)
Common tool calls:
Tool | When it's used | What it runs |
| Before commit — only changed files | Git safety scan + linter on staged files |
| Full pre-flight check |
|
| After backend/API edits | Executed test suite |
| After code edits | Configured linter ( |
| After TS/React edits |
|
| Before commit | Conflict markers, secrets, debug logs |
| When something fails | Parses errors → prompt fix hints for agent |
| Quick recap | Last run result without re-running |
4. Agent fixes or confirms
Failed: Agent reads Checkride error output, fixes the code, and re-runs checks.
Passed: Agent informs you that the codebase is clean and ready to commit.
What You Can Say in Chat
You don't need exact tool names — plain language prompts trigger the tools automatically:
"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 Hook
Method | Who runs it | Best for |
MCP (Connected) | AI Agent during chat | Continuous validation while pair-programming |
| You in terminal | Quick check before manual |
| You in terminal | Full CI mirror locally |
| Git automatically | Block bad commits even outside Cursor/IDE |
Exposed MCP Tools
Tool Name | Description | Parameters | Output Schema |
| Run full validation pipeline with smart SHA-256 caching (<10ms on unchanged code) |
|
|
| Run targeted checks on modified/staged Git files |
|
|
| Scan files for conflict markers, leaked secrets, and debug logs |
|
|
| Run dependency vulnerability security audits |
|
|
| Generate AI prompt hints for fixing test failures & TS errors |
|
|
| Export visual Markdown/HTML reports to |
|
|
| Run only the test suite |
|
|
| Run type checking ( |
|
|
| Run code linter ( |
|
|
| Retrieve status of the last check run | None |
|
Example Session
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!If tests fail:
Agent: [calls run_tests] → 2 failures
[calls suggest_fixes] → hints for each failure
[fixes code]
[calls run_tests again] → passedImportant Details
Checkride validates, you commit: Checkride executes local checks — it never commits or pushes code without your explicit action.
Uses your local environment: Command execution runs using local node_modules, Python virtualenv, or Docker container.
MCP integration: MCP runs inside Cursor/AGY/Claude. Terminal commits without the editor utilize the CLI or Git hooks (
init-hooks).Reload Cursor: After adding Checkride to
.cursor/mcp.jsonor settings, reload the window so the server connects under Settings → MCP.
Configuration (.checkriderc.json)
Checkride automatically looks for .checkriderc.json, .checkriderc, or checkride.config.json in the root of your project directory:
{
"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"
}
}Installing Git Pre-Commit Hook
Install local .git/hooks/pre-commit to automatically run Checkride checks before any manual git commit:
npx checkride-mcp init-hooksOr run staged checks manually from your terminal:
npx checkride-mcp check --stagedConnecting to AI Agents
1. Claude Desktop Config (claude_desktop_config.json)
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}2. Cursor / Antigravity / Claude Code Config
{
"mcpServers": {
"checkride": {
"command": "npx",
"args": ["-y", "checkride-mcp"]
}
}
}License
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. Dates show when Glama detected each change.
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
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Production-readiness for your AI 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.
Git-backed platform for skills, tools, and context for AI agents
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.83MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding assistants to execute shell commands locally, intercepting deterministic commands like git status and npm test before they reach the LLM, saving tokens and reducing latency.1438MIT
- 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
- AlicenseNot gradedqualityBmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/siqah/Checkride'
If you have feedback or need assistance with the MCP directory API, please join our Discord server