bash-mcp
NPM · @NICKW8/BASH-MCP
Structured JSON wrappers for git, kubectl, terraform, helm, argocd, gh, glab and other CLIs.
Available components
Last scanned (17 hours ago)
Scores higher than 52% of npm servers
Category CI/CD and DevOps
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security81
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to nickw8/bash-mcp). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability69
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 8161 tokens (~125/item across 65 items; 65 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (98% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 65 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 66 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 24 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 23 Oct 26 59
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 24 Oct 2026 · Analysed npm/@nickw8/bash-mcp@5.0.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | nickw8/bash-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/nickw8/bash-mcp/.github/workflows/release.yml@refs/tags/v5.0.1 |
| Rekor log index | 3422176171 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:6cd030b2b6c113532443118174e90aeddd1050805ff29d897ccdc273244bfc27b372cce6813a3b72940e2eef262684fac94d5cc8b3a4b0606d3766dbd |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-mrhx-c7xc-m3w5 | CVE-2023-54404 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 93 packages
| Packages resolved | 93 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
argo_app_detail ArgoCD app detail ~33
Get detailed status for a single ArgoCD application including resource health.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Application name |
| Name | Type | Req | Description |
|---|---|---|---|
| conditions | array | yes | – |
| healthStatus | string | yes | – |
| message | string | yes | – |
| name | string | yes | – |
| project | string | yes | – |
| resources | array | yes | – |
| retained | object | – | – |
| revision | string | yes | – |
| syncStatus | string | yes | – |
No examples provided.
argo_app_diff ArgoCD app diff ~31
Show what's out of sync for an ArgoCD application.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Application name |
| Name | Type | Req | Description |
|---|---|---|---|
| diff | string | yes | – |
| hasDiff | boolean | yes | – |
| retained | object | – | – |
No examples provided.
argo_app_health_summary ArgoCD app health summary ~52
Diagnose an ArgoCD application's health in one call: overall sync/health, likely causes, suggested next commands, and the unhealthy resources/conditions as evidence.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Application name |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| healthy | boolean | yes | – |
| likelyCauses | array | yes | – |
| name | string | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
| syncStatus | string | yes | – |
No examples provided.
argo_apps ArgoCD applications ~49
List ArgoCD applications with sync/health status. Structured summary instead of table output.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | – | Filter by ArgoCD project |
| selector | string | – | Label selector |
| Name | Type | Req | Description |
|---|---|---|---|
| apps | array | yes | – |
| count | number | yes | – |
| retained | object | – | – |
| summary | object | yes | – |
No examples provided.
bash_lint Bash lint (structured) ~132
Run shellcheck and return structured diagnostics with file, line, column, message, and SC rule code. Much more compact than raw shellcheck output. Use minSeverity to filter by severity level.
| Name | Type | Req | Description |
|---|---|---|---|
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| files | – | – | Required. Shell script path(s) to lint; a string or array |
| maxItems | integer | – | Item cap; overrides detailLevel |
| minSeverity | string | – | Minimum severity to include (e.g. 'error' drops warnings and info) |
| Name | Type | Req | Description |
|---|---|---|---|
| errorCount | number | yes | – |
| errors | array | yes | – |
| retained | object | – | – |
| total | number | – | – |
| truncated | boolean | – | – |
| warningCount | number | yes | – |
No examples provided.
bash_syntax_check Bash syntax check (structured) ~116
Check shell scripts for syntax errors with `bash -n` and return structured diagnostics (file, line, message). Parses without executing, so it is safe on untrusted scripts. Reports valid:true when no errors are found.
| Name | Type | Req | Description |
|---|---|---|---|
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| files | – | – | Required. Shell script path(s) to check; a string or array |
| maxItems | integer | – | Item cap; overrides detailLevel |
| Name | Type | Req | Description |
|---|---|---|---|
| errorCount | number | yes | – |
| errors | array | yes | – |
| retained | object | – | – |
| total | number | – | – |
| truncated | boolean | – | – |
| valid | boolean | yes | – |
No examples provided.
bash_test Bash test (structured) ~124
Run a shell test script — bats `.bats` files via `--tap`, or a plain `.sh` harness — and return structured results: per-case pass/fail plus a summary parsed from TAP or `N tests, M failures` output, falling back to exit-code-only when the format is unrecognized. Executes the script, so it is gated by BASH_MCP_MODE.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Working directory |
| file | string | – | Required. Test script path (.bats or .sh) |
| timeout | number | – | Timeout in ms |
| Name | Type | Req | Description |
|---|---|---|---|
| exitCode | number | yes | – |
| failed | array | yes | – |
| passed | array | yes | – |
| retained | object | – | – |
| skipped | array | yes | – |
| summary | – | yes | – |
No examples provided.
batch Run commands in parallel ~77
Run multiple commands in parallel and return all results. Each command is a binary plus an args array, executed without a shell (for a pipeline use command='sh', args=['-c', '...']). Use when you need to gather independent pieces of information in a single tool call instead of multiple sequential calls.
| Name | Type | Req | Description |
|---|---|---|---|
| commands | array | – | Required. |
| Name | Type | Req | Description |
|---|---|---|---|
| elapsed | number | yes | – |
| results | array | yes | – |
| retained | object | – | – |
No examples provided.
cat Read file contents ~342
Read one or more files with line numbers and smart truncation. Returns structured output with metadata. Pass `path` for a single file, or `paths` to read several in one call (returns { files, count }) — collapsing what would otherwise be multiple round-trips. For large files, use startLine/endLine or maxLines to limit output. Use ref to read from a git branch/commit instead of disk (e.g. ref='main'). NOTE: reading with cat does NOT satisfy the built-in Edit/Write "must read first" guard (it tracks only the built-in Read tool) — run the built-in Read on a file immediately before editing it.
| Name | Type | Req | Description |
|---|---|---|---|
| endLine | number | – | Stop reading at this line (inclusive) |
| lineNumbers | boolean | – | Prepend line numbers to each line (useful when locating a line). Does not register the file as read for the built-in Edit — use the built-in Read right before editing. |
| maxLines | number | – | Max lines to return per file (default 200, use 0 for unlimited) |
| path | string | – | Path to a single file |
| paths | – | – | Read multiple files in one call; a string or array. Returns { files, count }; a per-file failure is reported in that file's `error` and does not abort the others. |
| ref | string | – | Git ref to read from (e.g. 'main', 'HEAD~1', a commit hash). When set, reads file content from git (git show ref:path) instead of disk. |
| startLine | number | – | Start reading from this line (1-based) |
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | – | – |
| count | number | – | – |
| error | string | – | – |
| files | array | – | – |
| mtime | number | – | File modification time (unix timestamp) |
| path | string | – | – |
| range | array | – | – |
| retained | object | – | – |
| size | number | – | – |
| totalLines | number | – | – |
| truncated | boolean | – | – |
No examples provided.
check_environment Check environment ~54
Report which CLIs are installed (and their versions) so you can pick the right tool before calling it. Probes are client-only and non-blocking — no server/auth calls. Includes kubectl's current context when available.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| installedCount | number | yes | – |
| retained | object | – | – |
| tools | array | yes | – |
| total | number | yes | – |
No examples provided.
dotnet_build Build (structured) ~180
Run dotnet build and return structured diagnostics with file, line, column, message, and error code. Much more compact than raw MSBuild output. Warnings are omitted by default; pass includeWarnings:true (or detailLevel:'full') to include them.
| Name | Type | Req | Description |
|---|---|---|---|
| configuration | string | – | Build configuration (e.g. Debug, Release) |
| cwd | string | – | Required. Project root directory |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| includeWarnings | boolean | – | Include warnings in the response (default: errors only, even on a successful build) |
| maxItems | integer | – | Item cap; overrides detailLevel |
| project | string | – | Path to .csproj or .sln file (default: auto-detected in cwd) |
| Name | Type | Req | Description |
|---|---|---|---|
| diagnostics | array | yes | – |
| errorCount | number | yes | – |
| exitCode | number | yes | – |
| retained | object | – | – |
| summary | string | yes | – |
| total | number | – | – |
| truncated | boolean | – | – |
| warningCount | number | yes | – |
No examples provided.
dotnet_test Test (structured) ~99
Run dotnet test and return structured results: pass/fail/skip counts, failure messages. Much more compact than raw test output. Only failures are listed.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Required. Project root directory |
| filter | string | – | Test filter expression (e.g. 'FullyQualifiedName~MyTest') |
| project | string | – | Path to .csproj or .sln file (default: auto-detected in cwd) |
| Name | Type | Req | Description |
|---|---|---|---|
| exitCode | number | yes | – |
| failed | number | yes | – |
| failures | array | yes | – |
| passed | number | yes | – |
| retained | object | – | – |
| skipped | number | yes | – |
| summary | string | yes | – |
| total | number | yes | – |
No examples provided.
du Disk usage ~63
Show disk usage for paths. Returns entries as [path, sizeBytes] pairs, in the order du emits them. Use maxDepth to control how deep the summary goes.
| Name | Type | Req | Description |
|---|---|---|---|
| maxDepth | number | – | Depth to summarize |
| path | string | yes | Path to measure |
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | – |
| retained | object | – | – |
No examples provided.
find_files Find files ~200
Find files by name pattern, type, or modification time. Returns structured list of paths. Use names for multiple glob patterns (OR logic), modifiedWithin for recent files (e.g. '7d', '1h').
| Name | Type | Req | Description |
|---|---|---|---|
| maxDepth | number | – | Max search depth |
| modifiedWithin | string | – | Modified within timespan (e.g. '7d', '1h') |
| name | string | – | Filename glob pattern (e.g. '*.ts') |
| names | array | – | Multiple filename glob patterns (e.g. ['*.ts', '*.py', '*.sh']). Combined with OR logic. |
| path | string | – | Root directory to search (default: '.') |
| pattern | string | – | Alias for name — filename glob pattern (e.g. '*.ts') |
| type | string | – | Filter by type |
| withMetadata | boolean | – | Include size (bytes) and mtime (unix timestamp) for each file |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| files | array | yes | – |
| metadata | array | – | – |
| retained | object | – | – |
No examples provided.
gh_pr_checks PR checks ~104
Report a pull request's CI checks as counts per state plus the failing and pending checks. Defaults to the current branch's PR; passing checks are counted, not listed, unless all=true.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | List passing and skipped checks too (default: only the rest) |
| cwd | string | – | Repository path (default: the server's working directory) |
| pr | string | – | PR number, URL or branch (default: the current branch's PR) |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| counts | object | yes | – |
| retained | object | – | – |
No examples provided.
gh_run_failure_summary CI run failure summary ~108
Diagnose a GitHub Actions run in one call: status, the failed jobs and steps, and the ##[error] lines from the failed log as evidence. Defaults to the latest run on the current branch.
| Name | Type | Req | Description |
|---|---|---|---|
| branch | string | – | Branch whose latest run to read (default: the current branch) |
| cwd | string | – | Repository path (default: the server's working directory) |
| run | string|number | – | Run ID (default: the latest run on `branch`) |
| Name | Type | Req | Description |
|---|---|---|---|
| branch | string | yes | – |
| evidence | array | yes | – |
| failedJobs | array | yes | – |
| likelyCauses | array | yes | – |
| retained | object | – | – |
| run | number | yes | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
| url | string | yes | – |
| workflow | string | yes | – |
No examples provided.
git_branches Git branches ~55
List git branches. Returns the current branch and [name, lastCommit] pairs; a remote branch's name starts with remotes/.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Repository path |
| remote | boolean | – | Include remote branches |
| Name | Type | Req | Description |
|---|---|---|---|
| branches | array | yes | – |
| current | string | yes | – |
| retained | object | – | – |
No examples provided.
git_diff Git diff ~143
Structured git diff: files changed with insertions/deletions counts. Use base+ref for two-ref comparison (e.g. base='main', ref='feature'). Use path to scope to one or more files or directories.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | – | Base ref for two-ref comparison. When both ref and base are set, runs git diff <base> <ref> |
| cwd | string | – | Repository path |
| path | – | – | Limit diff to one or more files or directories (string or array) |
| ref | string | – | Ref to diff against (e.g. 'main', 'HEAD~3') |
| staged | boolean | – | Show staged changes |
| Name | Type | Req | Description |
|---|---|---|---|
| fileCount | number | yes | – |
| files | array | yes | – |
| retained | object | – | – |
| totalDeletions | number | yes | – |
| totalInsertions | number | yes | – |
No examples provided.
git_diff_content Git diff with content ~196
Show git diff with structured patch content. Returns parsed hunks per file instead of raw unified diff text. Use this when you need to see actual code changes, not just file-level stats. Use base+ref for two-ref comparison (e.g. base='main', ref='feature'). Use path to scope to one or more files or directories.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | – | Base ref for two-ref comparison. When both ref and base are set, runs git diff <base> <ref> |
| context | number | – | Number of context lines around changes (passed as -U<n>) |
| cwd | string | – | Working directory (git repo) |
| path | – | – | Limit diff to one or more files or directories (string or array) |
| ref | string | – | Diff against this ref (e.g. 'HEAD~1', 'main', a commit hash) |
| staged | boolean | – | Show staged changes (--cached) |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| retained | object | – | – |
| summary | object | yes | – |
No examples provided.
git_log Git log ~181
Structured git log: commit hash, author, date, message. Compact and parseable. Use range for ref comparisons (e.g. 'main..feature'). Use exclude to filter out commits matching a pattern (e.g. 'ci:').
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Filter by author |
| count | number | – | Number of commits (default 20) |
| cwd | string | – | Repository path |
| exclude | string | – | Exclude commits matching this grep pattern (uses --invert-grep) |
| path | string | – | Filter by file path |
| range | string | – | Git ref range (e.g. 'main..feature', 'HEAD~5..HEAD') |
| since | string | – | Since date (e.g. '2024-01-01') |
| withFiles | boolean | – | Include list of files changed per commit |
| Name | Type | Req | Description |
|---|---|---|---|
| commits | array | yes | – |
| count | number | yes | – |
| retained | object | – | – |
No examples provided.
git_pr_context Git PR context ~84
Collect the commits and file changes of a branch vs a base ref (for writing a PR description): commit list, changed files with status, and a diffstat over base...head.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | – | Base ref to compare against (default 'main') |
| cwd | string | – | Repository path |
| head | string | – | Head ref (default 'HEAD') |
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | yes | – |
| changes | object | yes | – |
| commits | array | yes | – |
| files | array | yes | – |
| head | string | yes | – |
| retained | object | – | – |
No examples provided.
git_status Git status ~39
Structured git status: branch, staged/unstaged/untracked files. Replaces parsing raw git status output.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Repository path |
| Name | Type | Req | Description |
|---|---|---|---|
| ahead | number | yes | – |
| behind | number | yes | – |
| branch | string | yes | – |
| clean | boolean | yes | – |
| retained | object | – | – |
| staged | array | yes | – |
| unstaged | array | yes | – |
| untracked | array | yes | – |
No examples provided.
glab_ci_status GitLab pipeline status ~174
Report a GitLab pipeline's jobs as counts per status plus the failed, running and pending jobs. Defaults to the current branch's latest pipeline; pass mr for a merge request's head pipeline. Passing, skipped and manual jobs are counted, not listed, unless all=true.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | List passing, skipped and manual jobs too |
| branch | string | – | Branch whose latest pipeline to read (default: current branch) |
| cwd | string | – | Repository path (default: the server's working directory) |
| mr | string|number | – | Merge request IID: read its head pipeline instead |
| pipeline | string|number | – | Pipeline ID (default: the latest pipeline on `branch`) |
| repo | string | – | GROUP/REPO or URL (default: the repo at `cwd`) |
| Name | Type | Req | Description |
|---|---|---|---|
| counts | object | yes | – |
| jobs | array | yes | – |
| pipeline | number | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| url | string | yes | – |
No examples provided.
glab_pipeline_failure_summary GitLab pipeline failure summary ~164
Diagnose a GitLab pipeline in one call: status, the failed jobs and why GitLab says they failed, and the last script lines of each failed job's trace as evidence. Allowed-to-fail jobs are noted, not counted as the failure. Defaults to the current branch's latest pipeline.
| Name | Type | Req | Description |
|---|---|---|---|
| branch | string | – | Branch whose latest pipeline to read (default: current branch) |
| cwd | string | – | Repository path (default: the server's working directory) |
| mr | string|number | – | Merge request IID: read its head pipeline instead |
| pipeline | string|number | – | Pipeline ID (default: the latest pipeline on `branch`) |
| repo | string | – | GROUP/REPO or URL (default: the repo at `cwd`) |
| Name | Type | Req | Description |
|---|---|---|---|
| branch | string | yes | – |
| evidence | array | yes | – |
| failedJobs | array | yes | – |
| likelyCauses | array | yes | – |
| pipeline | number | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
| url | string | yes | – |
No examples provided.
glob Glob file search ~50
Find files matching a glob pattern. Returns a compact list of paths.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Working directory for the glob |
| pattern | string | yes | Glob pattern (e.g. 'src/**/*.ts') |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| files | array | yes | – |
| retained | object | – | – |
No examples provided.
helm_list Helm releases ~72
List Helm releases with status, chart, and app version. Structured output.
| Name | Type | Req | Description |
|---|---|---|---|
| allNamespaces | boolean | – | Search all namespaces (overrides namespace) |
| context | string | – | Kube context |
| filter | string | – | Filter by release name regex |
| namespace | string | – | Namespace (omit for all) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| releases | array | yes | – |
| retained | object | – | – |
No examples provided.
helm_release_triage Helm release triage ~70
Diagnose a Helm release's health in one call: combines helm status + helm history into current status, likely causes, suggested next commands, and recent-revision evidence.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Kube context |
| namespace | string | – | Namespace |
| release | string | yes | Release name |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| healthy | boolean | yes | – |
| likelyCauses | array | yes | – |
| retained | object | – | – |
| revision | number | yes | – |
| revisions | number | yes | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
No examples provided.
helm_status Helm release status ~43
Get detailed status of a Helm release.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Kube context |
| namespace | string | – | Namespace |
| release | string | yes | Release name |
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | – |
| lastDeployed | string | yes | – |
| name | string | yes | – |
| namespace | string | yes | – |
| notes | string | yes | – |
| retained | object | – | – |
| revision | number | yes | – |
| status | string | yes | – |
No examples provided.
helm_values Helm release values ~65
Get the computed values for a Helm release as structured data.
| Name | Type | Req | Description |
|---|---|---|---|
| allValues | boolean | – | Include chart defaults (not just user-supplied) |
| context | string | – | Kube context |
| namespace | string | – | Namespace |
| release | string | yes | Release name |
| Name | Type | Req | Description |
|---|---|---|---|
| retained | object | – | – |
| values | object | yes | – |
No examples provided.
jq jq JSON processor ~162
Query and transform JSON using jq expressions. Accepts a file path or raw JSON string. Returns parsed, structured output — far more compact than reading a full JSON file. The filter is passed directly to jq (no shell), so shell-style escaping such as backslash-escaped quotes is neither needed nor supported — write the filter exactly as jq expects it.
| Name | Type | Req | Description |
|---|---|---|---|
| compact | boolean | – | Compact output (-c) |
| file | string | – | Path to a JSON file |
| filter | string | – | jq filter expression (default: '.') |
| input | string | – | Raw JSON string to process (alternative to file) |
| rawOutput | boolean | – | Output raw strings without JSON encoding (-r) |
| slurp | boolean | – | Read entire input into array (-s) |
| Name | Type | Req | Description |
|---|---|---|---|
| multiline | boolean | yes | – |
| result | – | yes | – |
| retained | object | – | – |
No examples provided.
kube_contexts Kubectl contexts ~19
List available kubectl contexts with current context marked.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| contexts | array | yes | – |
| current | string | yes | – |
| retained | object | – | – |
No examples provided.
kube_deployment_status Deployment rollout status ~56
Report a deployment's rollout health (ready/desired replicas, conditions) as a structured diagnosis.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Kube context |
| name | string | yes | Deployment name |
| namespace | string | – | Namespace |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| likelyCauses | array | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
No examples provided.
kube_diagnose_pod Diagnose a pod ~81
Diagnose why a pod is unhealthy in one call. Returns status, likely causes, suggested next commands, and evidence (CrashLoopBackOff/ImagePullBackOff/OOMKilled/Unschedulable/restarts).
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Kube context |
| namespace | string | – | Namespace |
| pod | string | yes | Pod name |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| likelyCauses | array | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
No examples provided.
kube_events_summary Summarize warning events ~124
Summarize Warning events in a namespace (grouped by reason, ordered by count) instead of scrolling raw kubectl get events.
| Name | Type | Req | Description |
|---|---|---|---|
| allNamespaces | boolean | – | Search all namespaces (overrides namespace) |
| context | string | – | Kube context |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| includeRaw | boolean | – | Include raw/verbose fields |
| maxItems | integer | – | Item cap; overrides detailLevel |
| namespace | string | – | Namespace |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| likelyCauses | array | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
| total | number | – | – |
| truncated | boolean | – | – |
No examples provided.
kube_get Kubectl get resources ~282
Get Kubernetes resources as structured data. Wraps kubectl get -o json and returns a compact summary by default. Use the jq param to extract specific fields from the raw JSON (e.g. '.spec.template.spec.containers[].env') instead of the summary.
| Name | Type | Req | Description |
|---|---|---|---|
| allNamespaces | boolean | – | Search all namespaces (overrides namespace) |
| context | string | – | Kube context |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| includeLabels | boolean | – | Include each resource's labels (default false — labels are verbose and mostly hashes; use selector to filter or jq to read specific ones) |
| includeRaw | boolean | – | Include raw/verbose fields |
| jq | string | – | jq filter applied to raw kubectl JSON. Skips the default summary and returns the jq result instead. Example: '.spec.template.spec.containers[].env' |
| maxItems | integer | – | Item cap; overrides detailLevel |
| name | string | – | Specific resource name |
| namespace | string | – | Namespace (omit for all-namespaces or cluster-scoped) |
| resource | string | – | Required. Resource type (e.g. pods, deployments, services, nodes) |
| selector | string | – | Label selector (e.g. 'app=nginx') |
No output schema declared.
No examples provided.
kube_logs Kubectl logs ~252
Get pod logs. lines are as kubectl prints them, '<timestamp> <message>', oldest first; consecutive repeats of a message merge into the first, marked ' [×N]', and a budget cut keeps the newest. Use grep to filter lines by regex pattern (e.g. 'ERROR|WARN') instead of piping through shell commands.
| Name | Type | Req | Description |
|---|---|---|---|
| container | string | – | Container name |
| context | string | – | Kube context |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| grep | string | – | Regex pattern to filter log lines (e.g. 'ERROR|WARN', 'timeout'). Only matching lines are returned. |
| ignoreCase | boolean | – | Case-insensitive grep matching (default: false) |
| includeRaw | boolean | – | Include raw/verbose fields |
| maxItems | integer | – | Item cap; overrides detailLevel |
| namespace | string | – | Namespace |
| pod | string | – | Required. Pod name (or deployment/xxx) |
| since | string | – | Duration like '1h', '30m' |
| tail | number | – | Number of lines (default 100) |
| Name | Type | Req | Description |
|---|---|---|---|
| lines | array | yes | – |
| retained | object | – | – |
| total | number | – | – |
| truncated | boolean | – | – |
No examples provided.
kube_pod_failure_summary Summarize failing pods ~122
List unhealthy pods in a namespace with their failure reason and evidence — one call instead of get + describe per pod.
| Name | Type | Req | Description |
|---|---|---|---|
| allNamespaces | boolean | – | Search all namespaces (overrides namespace) |
| context | string | – | Kube context |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| includeRaw | boolean | – | Include raw/verbose fields |
| maxItems | integer | – | Item cap; overrides detailLevel |
| namespace | string | – | Namespace |
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | array | yes | – |
| likelyCauses | array | yes | – |
| pods | array | yes | – |
| retained | object | – | – |
| status | string | yes | – |
| suggestedNextCommands | array | yes | – |
| total | number | – | – |
| truncated | boolean | – | – |
No examples provided.
liquibase_status Pending changesets (structured) ~178
List Liquibase changesets not yet applied to the target database, as structured JSON. Reports up-to-date vs a pending list. liquibase is on PATH — no mise/wrapper needed.
| Name | Type | Req | Description |
|---|---|---|---|
| changelogFile | string | – | Changelog path (--changelog-file); usually set in the defaults file instead. |
| contexts | string | – | Context expression to filter changesets (--contexts). |
| cwd | string | – | Directory to run liquibase in (where the defaults file / changelog live). |
| defaultsFile | string | – | Path to the Liquibase defaults file (--defaults-file), e.g. db-dev.properties. Usually carries the JDBC URL, credentials, and changelog path. |
| extraArgs | array | – | Additional raw arguments appended to the liquibase invocation. |
| labels | string | – | Label expression to filter changesets (--labels). |
| Name | Type | Req | Description |
|---|---|---|---|
| pending | array | yes | – |
| pendingCount | number | yes | – |
| retained | object | – | – |
| upToDate | boolean | yes | – |
No examples provided.
liquibase_update_sql Preview migration SQL (structured) ~314
Render the SQL Liquibase would run for pending changesets (updateSQL) as structured per-changeset summaries with a SQL-Server batch lint. Does NOT apply changes. SQL bodies are omitted unless includeRaw or changesetId is set. liquibase is on PATH — no mise/wrapper needed.
| Name | Type | Req | Description |
|---|---|---|---|
| batchLint | boolean | – | Lint each changeset for the SQL-Server 'routine DDL must lead its GO-batch' rule (default true). |
| changelogFile | string | – | Changelog path (--changelog-file); usually set in the defaults file instead. |
| changesetId | string | – | Return only this changeset's full rendered SQL (matches the changeset id). |
| contexts | string | – | Context expression to filter changesets (--contexts). |
| cwd | string | – | Directory to run liquibase in (where the defaults file / changelog live). |
| defaultsFile | string | – | Path to the Liquibase defaults file (--defaults-file), e.g. db-dev.properties. Usually carries the JDBC URL, credentials, and changelog path. |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| extraArgs | array | – | Additional raw arguments appended to the liquibase invocation. |
| includeRaw | boolean | – | Include raw/verbose fields |
| labels | string | – | Label expression to filter changesets (--labels). |
| maxItems | integer | – | Item cap; overrides detailLevel |
| Name | Type | Req | Description |
|---|---|---|---|
| changesetCount | number | yes | – |
| changesets | array | yes | – |
| retained | object | – | – |
| total | number | – | – |
| truncated | boolean | – | – |
No examples provided.
liquibase_validate Validate changelog (structured) ~186
Validate a Liquibase changelog and return a structured pass/fail result with per-changeset errors (duplicate ids, checksum drift). Much more compact than raw output. liquibase is on PATH — no mise/wrapper needed.
| Name | Type | Req | Description |
|---|---|---|---|
| changelogFile | string | – | Changelog path (--changelog-file); usually set in the defaults file instead. |
| contexts | string | – | Context expression to filter changesets (--contexts). |
| cwd | string | – | Directory to run liquibase in (where the defaults file / changelog live). |
| defaultsFile | string | – | Path to the Liquibase defaults file (--defaults-file), e.g. db-dev.properties. Usually carries the JDBC URL, credentials, and changelog path. |
| extraArgs | array | – | Additional raw arguments appended to the liquibase invocation. |
| labels | string | – | Label expression to filter changesets (--labels). |
| Name | Type | Req | Description |
|---|---|---|---|
| errorCount | number | yes | – |
| errors | array | yes | – |
| retained | object | – | – |
| valid | boolean | yes | – |
No examples provided.
list_guidance List tool-selection guidance ~105
Return an intent → preferred-tool index so you can pick the right bash-mcp tool for a goal. Each entry names the tool to prefer, raw-command anti-patterns to avoid, and why. Filter with `intent` (substring) or `category` to narrow the list.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Exact category filter, e.g. 'kubernetes', 'git', 'terraform'. |
| intent | string | – | Case-insensitive substring filter on the intent text. |
| Name | Type | Req | Description |
|---|---|---|---|
| intents | array | yes | – |
| retained | object | – | – |
| total | number | yes | – |
No examples provided.
ls List directory ~108
List files in a directory. Returns entries as [name, size, permissions, modified] — directories end with '/' and links with '@'. Use nameOnly for names alone, recursive for one level of subdirectories, all to include hidden files.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | Include hidden files |
| nameOnly | boolean | – | Entries are [name] alone |
| path | string | – | Required. Directory path to list |
| recursive | boolean | – | Recurse into subdirectories (1 level) |
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | – |
| retained | object | – | – |
No examples provided.
npm_lint Lint (structured) ~161
Run biome check and return structured diagnostics with file, line, column, message, and rule. Far more compact and parseable than raw lint output. Use minSeverity to filter by severity level.
| Name | Type | Req | Description |
|---|---|---|---|
| cwd | string | – | Required. Project root directory |
| detailLevel | string | – | Item preset: summary 20, normal 100, full (default; also skips the response budget) |
| fix | boolean | – | Auto-fix safe issues (default: false) |
| maxItems | integer | – | Item cap; overrides detailLevel |
| minSeverity | string | – | Minimum severity to include (e.g. 'error' drops warnings and info) |
| paths | – | – | Specific path(s) to lint; a string or array (default: '.') |
| Name | Type | Req | Description |
|---|---|---|---|
| errorCount | number | yes | – |
| errors | array | yes | – |
| fixedCount | number | yes | – |
| retained | object | – | – |
| total | number | – | – |
| truncated | boolean | – | – |
| warningCount | number | yes | – |
No examples provided.
npm_test Test (structured) ~108
Run vitest or jest (picked from package.json) and return structured test results: suites, pass/fail counts, failure messages. Much more compact than raw test output. Only failures are listed by default; use verbose=true for all tests.
| Name | Type | Req | Description |
|---|---|---|---|
| coverage | boolean | – | Enable coverage reporting |
| cwd | string | – | Required. Project root directory |
| pattern | string | – | Filter tests by filename pattern |
| verbose | boolean | – | Include all tests in output (default: only failures) |
| Name | Type | Req | Description |
|---|---|---|---|
| retained | object | – | – |
| suites | array | yes | – |
| summary | object | yes | – |
No examples provided.
How do I install the bash-mcp server?
bash-mcp runs locally as an npm package, launched with npx -y @nickw8/bash-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @nickw8/bash-mcp
claude mcp add nickw8-bash-mcp -- npx -y @nickw8/bash-mcp
What is the bash-mcp server?
bash-mcp is listed in the public MCP registry as io.github.nickw8/bash-mcp. Structured JSON wrappers for git, kubectl, terraform, helm, argocd, gh, glab and other CLIs. This page covers its npm package (@nickw8/bash-mcp).
Is the bash-mcp server safe to use?
bash-mcp scores 74 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 24 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the bash-mcp server expose?
bash-mcp exposes 65 tools: ls, tree, du, find_files, rg, and 60 more. Their descriptions and schemas cost roughly 7,921 tokens of context every time the server is loaded.
Is the bash-mcp server still maintained?
bash-mcp is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the bash-mcp server under?
bash-mcp declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.