-
v0.2.0
Stablereleased this
2026-09-29 12:07:27 -06:00 | 1 commits to main since this releaseResilient bridge: automatic reconnect, opt-in heartbeat liveness, and fail-fast connection errors.
What's new
- Reconnect with backoff (
#3): retries initial connect and post-connect drops with 1x/2x/4x/8x backoff via--initial-retry-interval(default5s,MCP_BRIDGE_INITIAL_RETRY_INTERVAL). Replays the storedinitialize, sendsnotifications/initialized, then flushes stdin lines buffered while down.--max-disconnected-time(MCP_BRIDGE_MAX_DISCONNECTED_TIME, empty/0= retry forever) caps how long to keep retrying. Per-callErrRejectedfailures no longer kill the connection. - Opt-in heartbeat liveness (
#4):--heartbeat(MCP_BRIDGE_HEARTBEAT, default off) sends an MCPpingafter--heartbeat-interval(default30s) with no traffic in either direction; a pong missing past--heartbeat-timeout(default10s) drops into the normal reconnect path. Ping responses are never forwarded to stdout. With--heartbeatoff, behavior is unchanged: no ticker, no pings. - Fail fast instead of hanging (
#4): probe401/403is a fatal auth error, probe404reports endpoint-not-found, probe5xxreports remote server error; auth failures on write/replay paths bypass the retry loop. Any failure before the first live session exits non-zero with a clear stderr message (previously: loggedconnected, retried forever onForbidden, client timed out appearing hung). - Fix: flags placed after the positional URL are now honored (
parseTrailingFlagswas a no-op).
Usage
# Retry forever (default), 5s initial backoff mcp-ferryman https://example.com/mcp # Bound reconnect window, faster first retry mcp-ferryman --max-disconnected-time 5m --initial-retry-interval 2s https://example.com/mcp # Opt-in liveness detection on idle connections mcp-ferryman --heartbeat --heartbeat-interval 30s --heartbeat-timeout 10s https://example.com/mcpInstall
Download a binary for your platform from the assets below (linux/darwin, amd64/arm64) and verify it against
checksums.txt:sha256sum -c checksums.txt --ignore-missingmacOS note: the darwin builds are unsigned, so Gatekeeper will block first launch. Clear the quarantine flag after downloading:
xattr -d com.apple.quarantine ./mcp-ferryman-darwin-arm64Full diff: https://git.w33ble.com/w33ble/mcp-ferryman/compare/v0.1.0...v0.2.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Reconnect with backoff (