Changes for version 0.002 - 2026-04-24

  • Add bin/mcp-run-bash — stdio entry point for MCP::Run::Bash, configurable via MCP_RUN_ALLOWED_COMMANDS, MCP_RUN_WORKING_DIRECTORY, MCP_RUN_TIMEOUT, MCP_RUN_COMPRESS and MCP_RUN_TOOL_NAME env vars. Compression is enabled by default; disable with MCP_RUN_COMPRESS=0
  • Add MCP::Run::run_stdio convenience constructor
  • Add bin/mcp-run-compress — wrap a shell command through MCP::Run::Compress filters. Ships a Claude Code PreToolUse hook (--hook) plus an --install-claude flag that registers the hook in ~/.claude/settings.json so every Bash tool call gets its output compressed automatically
    • Prefix a Bash command with `no-compress ` to bypass compression for that single invocation — the hook strips the prefix and passes the raw command through unwrapped
    • --install-claude also drops a minimal skill at ~/.claude/skills/bash-output-is-compressed-prefix-no-compress-to-bypass/ that teaches Claude about the bypass
  • Add MCP::Run::Compress for automatic output compression
    • 8-stage filter pipeline (strip_ansi, match_output, transform, strip_lines, keep_lines, truncate, head/tail, max_lines, on_empty)
    • 30+ command-specific filters (ls, git, make, docker, kubectl, etc.)
    • Output detection to differentiate command output formats
    • Per-server and per-tool-call compression toggle
  • Add MCP::Run::Compress::Filters.pod documentation
  • Add Text::Trim dependency

Documentation

MCP server that executes shell commands via bash over stdio
Wrap a shell command through MCP::Run::Compress for LLM-friendly output

Modules

MCP server with a command execution tool
MCP server that executes commands via bash
Output compression for LLMs
Command Output Compression Reference