mcp-shellcheck
ShellCheck MCP Server
A Model Context Protocol (MCP) server that provides shell script linting via ShellCheck. Allows AI agents to analyze shell scripts for common errors, stylistic issues, and potential bugs.
MCP Server Profile
{
"name": "mcp-shellcheck",
"description": "A Model Context Protocol (MCP) server that provides shell script linting via ShellCheck for AI coding assistants",
"tools": [
{
"name": "shellcheck",
"description": "Run ShellCheck on a shell script to find bugs, stylistic issues, and potential errors",
"inputSchema": {
"type": "object",
"properties": {
"file_path": { "type": "string", "description": "Path to the shell script file to check" },
"script_content": { "type": "string", "description": "Raw shell script content to check" },
"shell": { "type": "string", "description": "Shell type to check", "enum": ["bash", "sh", "dash", "ksh", "ash"] },
"check_sourced": { "type": "boolean", "description": "Enable checks for sourced files" },
"enable_all": { "type": "boolean", "description": "Enable all optional checks" },
"exclude": { "type": "string", "description": "Comma-separated list of warning codes to exclude" },
"severity": { "type": "string", "description": "Minimum severity to report", "enum": ["error", "warning", "info", "style"] }
}
}
},
{
"name": "shellcheck_info",
"description": "Get information about the ShellCheck version and server capabilities",
"inputSchema": {
"type": "object",
"properties": {}
}
}
]
}Related MCP server: sql-sop-mcp
Quick Install
# Run via uvx from PyPI
uvx --from mcp-shellcheck shellcheck-mcp-server
# Run via uvx from GitHub release
uvx --from https://github.com/Ev3lynx727/mcp-shellcheck/releases/download/v0.1.3/mcp_shellcheck-0.1.3-py3-none-any.whl shellcheck-mcp-server
# One-liner install (install.sh)
curl -fsSL https://raw.githubusercontent.com/Ev3lynx727/mcp-shellcheck/main/install.sh | sh
# Install from PyPI
pip install mcp-shellcheck
# Clone and dev install
git clone https://github.com/Ev3lynx727/mcp-shellcheck.git
cd mcp-shellcheck && pip install -e .Features
File-based analysis: Check shell scripts by file path
Inline script checking: Analyze raw shell script content directly
Multiple shell support: bash, sh, dash, ksh, ash
Configurable checks: Exclude specific warnings, set severity levels
Structured output: JSON-formatted results for easy parsing
OpenCode integration: Ready to use with OpenCode agents
Production-ready: Async, tested, validated, logged
Requirements
Python 3.10+
ShellCheck installed on the system
Installing ShellCheck
Recommended (always latest):
pip install shellcheck-pyThe shellcheck-py package provides a pre-built shellcheck v0.11.0 binary on your PATH with no system dependencies.
System package managers (may ship older versions):
# Ubuntu/Debian
sudo apt-get install shellcheck
# macOS
brew install shellcheck
# Fedora/RHEL
sudo dnf install ShellCheck
# Arch Linux
sudo pacman -S shellcheckTools
shellcheck
Run ShellCheck on a shell script to find bugs, stylistic issues, and potential errors.
Parameters:
Parameter | Type | Required | Description |
| string | No* | Path to the shell script file |
| string | No* | Raw shell script content |
| string | No | Shell type: bash, sh, dash, ksh, ash (default: bash) |
| boolean | No | Enable checks for sourced files (default: false) |
| boolean | No | Enable all optional checks (default: false) |
| string | No | Comma-separated codes to exclude (e.g., "SC1090,SC2148") |
| string | No | Comma-separated codes to include (e.g., "SC2086,SC2164") |
| string | No | Minimum severity: error, warning, info, style |
*Either file_path or script_content must be provided.
Common error codes:
Code | Description | Severity |
SC1090 | Can't follow non-constant source | info |
SC2086 | Double quote to prevent globbing | warning |
SC2164 | Use cd with || exit | warning |
SC2006 | Use $(...) instead of legacy backticks | style |
shellcheck_info
Get ShellCheck version and server capabilities.
Parameters: None
Configuration
OpenCode
{
"mcp": {
"shellcheck": {
"type": "local",
"command": [
"uv",
"run",
"--with", "mcp",
"python3",
"/path/to/mcp-shellcheck/shellcheck_mcp_server.py"
],
"enabled": true,
"timeout": 60000
}
}
}OpenCode (uvx from GitHub release)
{
"mcp": {
"shellcheck": {
"type": "local",
"command": [
"uvx",
"--from", "https://github.com/Ev3lynx727/mcp-shellcheck/releases/download/v0.1.3/mcp_shellcheck-0.1.3-py3-none-any.whl",
"shellcheck-mcp-server"
],
"enabled": true,
"timeout": 60000
}
}
}Claude Desktop
{
"mcpServers": {
"shellcheck": {
"command": "python3",
"args": ["/path/to/mcp-shellcheck/shellcheck_mcp_server.py"]
}
}
}Cursor
{
"mcpServers": {
"shellcheck": {
"command": "uvx",
"args": ["shellcheck-mcp-server"]
}
}
}VS Code (Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"shellcheck": {
"command": "python3",
"args": ["/path/to/mcp-shellcheck/shellcheck_mcp_server.py"]
}
}
}Examples
Check a File
// Input
{ "file_path": "/path/to/deploy.sh" }
// Output
{
"success": false,
"message": "Found 3 issue(s)",
"results": [
{
"line": 15,
"column": 10,
"code": "SC2086",
"message": "Double quote to prevent globbing",
"severity": "warning"
}
],
"exit_code": 1
}Check Script Content
// Input
{ "script_content": "#!/bin/bash\ncat `ls *.txt`", "shell": "bash" }Exclude Specific Warnings
{ "file_path": "/path/to/script.sh", "exclude": "SC1090,SC2148" }Filter by Severity
{ "file_path": "/path/to/script.sh", "severity": "error" }Troubleshooting
Problem | Solution |
ShellCheck not found | Install via |
MCP package not installed |
|
Server not connecting | Verify |
Timeout errors | Increase timeout: |
Development
pip install -e ".[dev]"
pytest
ruff check .See CHANGELOG.md for release history and ARCHITECTURE.md for design docs.
License
MIT
Available Tools
2 toolsshellcheckA
Run ShellCheck on a shell script to find bugs, stylistic issues, and potential errors. Use when: reviewing shell scripts, validating CI pipeline scripts, or debugging script errors. Prefer over: manual bash syntax inspection when you want automated rule-based analysis (300+ rules). Avoid when: checking many large scripts — run ShellCheck locally for bulk analysis.
Supported shells: bash, sh, dash, ksh, ash
Returns structured JSON with issue details including line, column, code, message, and severity.
Common error codes:
SC1090: Can't follow non-constant source
SC2148: Tips depend on target shell and yours is unknown
SC2086: Double quote to prevent globbing
SC2164: Use cd with || exit
SC2006: Use $(...) instead of legacy backticks
SC2029: Note that, unlike in BASH, a variable cannot contain a newline
SC2230: Which is redundant
SC2068: Double quote array subscript
SC2196: Several way to test global flag
SC2001: See if you can use ${var//search/replace}
SC2162: read without -r will mangle backslashes
SC2129: Style: Consider using { cmd1; cmd2; } >> file instead of individual redirects
Use exclude parameter to suppress warnings (e.g., "SC1090,SC2148"). Use severity parameter to filter by minimum severity (error, warning, info, style).
Inputs: shell, exclude, severity, file_path, +3 more.
shellcheck_infoA
Get ShellCheck version and server capability info. Use when: verifying ShellCheck is installed or checking available shell versions. Prefer over: shellcheck when you don't need an actual analysis (cheaper — no script processing). Avoid when: you need script analysis — use shellcheck instead.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one performs script analysis, the other provides server info. No ambiguity.
Both tool names follow the pattern 'shellcheck' with an optional suffix ('shellcheck', 'shellcheck_info'), maintaining consistency.
With only 2 tools, it is below the typical 3-15 range for a well-scoped server, but it covers the essential functionality of a shellcheck service.
The core lifecycle is covered (run analysis and check capability), but a tool to list available rules or get detailed help is missing, which is a minor gap.
Maintenance
Related MCP Connectors
Scan AI agent skills, MCP server packages and MCP configs before you install them. Static analysis.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Audit your MCP servers for poisoned tools and leaked secrets, and check AI-generated code for flaws.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCode linting and style checking tools for AI agents, exposed as an MCP server. Supports style checks, naming conventions, complexity analysis, dead code detection, and import analysis.45 npmMIT
- AlicenseAqualityFmaintenanceMCP server that integrates sql-sop SQL linter into LLM clients, enabling linting SQL queries and listing lint rules via chat tools.2MIT

shell-mcpofficial
AlicenseNot gradedqualityDmaintenanceGives AI agents shell access by providing a run_command tool for executing shell commands and returning stdout, stderr, and exit code.26 npm1ISC- FlicenseAqualityDmaintenanceA simple MCP server that exposes a terminal tool, allowing AI agents to execute shell commands.1-