Skip to content

feat: built-in ssh-mcp healthcheck CLI + Dockerfile integration (v0.5.4)#24

Merged
blackaxgit merged 2 commits into
mainfrom
fix/docker-healthcheck
Apr 13, 2026
Merged

feat: built-in ssh-mcp healthcheck CLI + Dockerfile integration (v0.5.4)#24
blackaxgit merged 2 commits into
mainfrom
fix/docker-healthcheck

Conversation

@blackaxgit
Copy link
Copy Markdown
Owner

Summary

New ssh-mcp healthcheck CLI subcommand implemented by 3 parallel agents. Replaces the ~40-line inline Python healthcheck that operators previously had to embed in their compose files.

Agent Files Delivered
healthcheck-core healthcheck.py, server.py, test_healthcheck.py New module, CLI dispatch, 13 tests
docker-integration Dockerfile, compose.yaml Baked-in HEALTHCHECK, simplified compose
docs-version README, CHANGELOG, init.py New docs section, v0.5.4 bump

What it does

  • Auto-detects transport via SSH_MCP_TRANSPORT
  • stdio mode: import check + config parse
  • http mode: real MCP initialize JSON-RPC POST
  • Auth modes: reads SSH_MCP_HTTP_TOKEN / SSH_MCP_HTTP_TOKEN_FILE, respects SSH_MCP_HTTP_AUTH=none
  • 4xx responses = healthy (server alive, request rejected)
  • 5xx / URLError = unhealthy
  • Stdlib only — no curl/wget dependency
  • 3-second hard timeout
  • Never logs the token

Quality gates

Check Result
pytest 520 passed (+13 new)
mypy strict clean (7 files)
ruff check clean
ruff format clean

Operator UX win

Before:

healthcheck:
  test:
    - CMD-SHELL
    - |
      python3 -c "
      import json, os, sys, urllib.request
      port = os.environ.get('SSH_MCP_HTTP_PORT', '8000')
      # ... 30 more lines ...
      "

After:

(nothing — Dockerfile HEALTHCHECK handles it)

@blackaxgit blackaxgit merged commit e54eee3 into main Apr 13, 2026
6 checks passed
@blackaxgit blackaxgit deleted the fix/docker-healthcheck branch April 13, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant