feat: MCP health probe runner with tool-call probes #17

Merged
michal merged 1 commits from feat/health-probe-runner into main 2026-02-23 00:39:10 +00:00
Owner

Summary

  • Periodic MCP tool-call probes (like k8s livenessProbe) for running instances
  • STDIO probes via docker exec + disposable MCP client
  • HTTP/SSE probes via JSON-RPC
  • Instance findById includes server relation (fixes describe showing IDs)
  • healthy/degraded/unhealthy status tracking with event log

Test plan

  • 12 health probe unit tests pass
  • 248 mcpd tests pass
  • 208 CLI tests pass
  • Deploy and verify probes detect broken HA instance

🤖 Generated with Claude Code

## Summary - Periodic MCP tool-call probes (like k8s livenessProbe) for running instances - STDIO probes via docker exec + disposable MCP client - HTTP/SSE probes via JSON-RPC - Instance findById includes server relation (fixes describe showing IDs) - healthy/degraded/unhealthy status tracking with event log ## Test plan - [x] 12 health probe unit tests pass - [x] 248 mcpd tests pass - [x] 208 CLI tests pass - [ ] Deploy and verify probes detect broken HA instance 🤖 Generated with [Claude Code](https://claude.com/claude-code)
michal added 1 commit 2026-02-23 00:39:03 +00:00
feat: MCP health probe runner — periodic tool-call probes for instances
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / package (pull_request) Has been cancelled
cde1c59fd6
Implements Kubernetes-style liveness probes that call MCP tools defined
in server healthCheck configs. For STDIO servers, uses docker exec to
spawn a disposable MCP client that sends initialize + tool call. For
HTTP/SSE servers, sends JSON-RPC directly.

- HealthProbeRunner service with configurable interval/threshold/timeout
- execInContainer added to orchestrator interface + Docker implementation
- Instance findById now includes server relation (fixes describe showing IDs)
- Events appended to instance (last 50), healthStatus tracked as
  healthy/degraded/unhealthy
- 12 unit tests covering probing, thresholds, intervals, cleanup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
michal merged commit 79dd6e723d into main 2026-02-23 00:39:10 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#17