Skip to content

Commit a8c3f0e

Browse files
docs(config): document health_check_interval Docker no-op (FR-014/T015a)
Implements the FR-014 documentation requirement added to the spec: state in the settings help text (web + macOS) and docs/configuration.md that health_check_interval does not apply to Docker-isolated servers (their liveness is monitored at the container level, not via MCP ping), while tool_discovery_interval applies to all server types. Documentation-only; no behaviour change — the existing Docker health-check skip is unchanged. Related #608 Co-Authored-By: Paperclip <noreply@paperclip.ing>
1 parent 8d1f7b5 commit a8c3f0e

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

docs/configuration.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,16 @@ quiet a chatty upstream that returns a large tool catalog.
111111

112112
| Field | Type | Default | Description |
113113
|-------|------|---------|-------------|
114-
| `health_check_interval` | duration | `"30s"` | How often to probe each connected server for liveness with a lightweight MCP `ping`. `"0s"` disables the periodic probe. Range: `5s``1h`. |
115-
| `tool_discovery_interval` | duration | `"5m"` | How often to re-list every server's tools to rebuild the search index. `"0s"` disables the periodic sweep. Range: `30s``24h`. |
114+
| `health_check_interval` | duration | `"30s"` | How often to probe each connected server for liveness with a lightweight MCP `ping`. `"0s"` disables the periodic probe. Range: `5s``1h`. **Does not apply to Docker-isolated servers** (see note below). |
115+
| `tool_discovery_interval` | duration | `"5m"` | How often to re-list every server's tools to rebuild the search index. `"0s"` disables the periodic sweep. Range: `30s``24h`. Applies to all server types, including Docker. |
116+
117+
> **Docker-isolated servers.** `health_check_interval` has **no effect** on
118+
> Docker-isolated servers. Their liveness is monitored separately at the
119+
> container level on a fixed internal cadence (not an MCP `ping`), so the
120+
> periodic ping probe is intentionally skipped for them. `tool_discovery_interval`
121+
> still applies to Docker servers. Remote (HTTP/SSE) servers benefit most from
122+
> the `ping` switch, since both the probe and the former `tools/list` crossed
123+
> the network.
116124
117125
**Liveness uses `ping`, not `tools/list`.** The health-check loop issues the
118126
MCP-standard `ping` request rather than re-listing every tool, so an idle proxy

frontend/src/views/settings/fields.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ export const ADVANCED_ACCORDIONS: SettingsAccordion[] = [
336336
title: 'Tool discovery & health checks',
337337
description: 'How often mcpproxy probes upstream servers for liveness and re-discovers their tools. Lower these to reduce background traffic to chatty servers.',
338338
fields: [
339-
{ key: 'health_check_interval', label: 'Health-check interval', help: 'How often to send a lightweight liveness ping to each connected server. "0s" disables the periodic probe (a dead server is then detected lazily on the next tool call). Range: 5s–1h. Default 30s.', control: 'duration', placeholder: '30s', optional: true },
339+
{ key: 'health_check_interval', label: 'Health-check interval', help: 'How often to send a lightweight liveness ping to each connected server. "0s" disables the periodic probe (a dead server is then detected lazily on the next tool call). Range: 5s–1h. Default 30s. Does not apply to Docker-isolated servers — their liveness is monitored at the container level.', control: 'duration', placeholder: '30s', optional: true },
340340
{ key: 'tool_discovery_interval', label: 'Tool-discovery interval', help: 'How often to re-list every server’s tools to rebuild the search index. "0s" disables the periodic sweep — tool changes are then picked up only at connect time and via tools/list_changed push notifications. Range: 30s–24h. Default 5m.', control: 'duration', placeholder: '5m', optional: true },
341341
],
342342
},

native/macos/MCPProxy/MCPProxy/Settings/SettingsCatalog.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ enum SettingsCatalog {
262262
title: "Tool discovery & health checks",
263263
help: "How often mcpproxy probes upstream servers for liveness and re-discovers their tools. Lower these to reduce background traffic to chatty servers.",
264264
fields: [
265-
ConfigField(key: "health_check_interval", label: "Health-check interval", help: "How often to send a lightweight liveness ping to each connected server. \"0s\" disables the periodic probe (a dead server is then detected lazily on the next tool call). Range: 5s\u{2013}1h. Default 30s.", control: .duration, optional: true),
265+
ConfigField(key: "health_check_interval", label: "Health-check interval", help: "How often to send a lightweight liveness ping to each connected server. \"0s\" disables the periodic probe (a dead server is then detected lazily on the next tool call). Range: 5s\u{2013}1h. Default 30s. Does not apply to Docker-isolated servers \u{2014} their liveness is monitored at the container level.", control: .duration, optional: true),
266266
ConfigField(key: "tool_discovery_interval", label: "Tool-discovery interval", help: "How often to re-list every server\u{2019}s tools to rebuild the search index. \"0s\" disables the periodic sweep \u{2014} tool changes are then picked up only at connect time and via tools/list_changed push notifications. Range: 30s\u{2013}24h. Default 5m.", control: .duration, optional: true),
267267
]
268268
),

0 commit comments

Comments
 (0)