Skip to content

[Automated] Draft docs (agentgateway): respect idle timeout on MCP path - #1309

Merged
artberger merged 3 commits into
mainfrom
pr-tracker-draft-agentgateway-3894
Oct 20, 2026
Merged

artberger merged 3 commits into
mainfrom
pr-tracker-draft-agentgateway-3894

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

agentgateway/agentgateway#3894 — respect idle timeout on MCP path

Docs versions: standalone/main, kubernetes/main

No code-path rule covers 1 touched file(s). The planner could route these only by identifier search, so the candidate pages may miss what they changed, including in the other mode:

  • crates/agentgateway/src/proxy/httpproxy.rs

What changes for users: MCP upstream responses now honor response idle timeout settings. In standalone, responseIdleTimeout on mcp.policies.timeout can end an MCP response whose server stops sending body frames; in Kubernetes, spec.traffic.timeouts.responseIdle does the same for MCP routes.

What the docs now say: The standalone Timeouts page now says that responseIdleTimeout watches MCP target response streams and shows the field in the simplified MCP example. The Kubernetes Request timeouts page now notes, for main only, that response idle timeout applies to MCP routes and names spec.traffic.timeouts.responseIdle.

Not verified: No cluster; the Kubernetes policy and standalone runtime behavior are unrun.

How agentgateway-3894 was drafted, and what was not verified
  • Code PR: respect idle timeout on MCP path agentgateway#3894
  • Code issue: none linked
  • Product: agentgateway (upstream) → agentgateway/website
  • Docs version: standalone/main and kubernetes/main; documented in the development tree, which is where unreleased changes go
  • Category: scoped-edit / pr

Plan, and what changed it

  • Planned: Document the MCP-specific response idle timeout behavior on the timeout pages named by the code-path rules.
  • Learned: the code diff shows only the MCP early return was missing the existing timeout wrapper, while the target pages and generated standalone reference already define the timeout field.
  • Did: Added a gated Kubernetes note, updated the standalone MCP timeout example, and wrote a proposed Fixes note.

Why a documentation change is necessary

The pull request wraps MCP backend responses with the existing response idle timeout handler before returning from the MCP branch. The standalone page documented responseIdleTimeout and showed simplified MCP timeout configuration, but the MCP example did not show the field and the prose did not state that MCP streams use it. The Kubernetes request timeout page is the route-level timeout guide, and the new MCP behavior affects a route-level timeout field there.

What changed on disk

  • assets/agw-docs/pages/resiliency/timeouts/request.md — Adds a main-only note that spec.traffic.timeouts.responseIdle applies to MCP routes.
  • content/docs/standalone/main/documentation/configuration/resiliency/timeouts.md — Clarifies the MCP behavior of responseIdleTimeout and adds the field to the simplified MCP example.

How to verify this change

  1. In standalone mode, add responseIdleTimeout: 5s under mcp.policies.timeout as shown on the Timeouts page, and run agentgateway -f config-mcp.yaml --validate-only; the configuration is accepted.
  2. Run that configuration with an MCP target that starts a response and then stops sending body frames for longer than the configured idle timeout.
  3. The MCP client receives an error for response idle timeout; if the target sends each frame before the timeout, the stream stays open.
  4. In Kubernetes mode, apply an AgentgatewayPolicy with spec.traffic.timeouts.responseIdle attached to an MCP route, and repeat the stalled MCP response check.

What was not verified

The configuration was not applied to a cluster, so every command in this diff is unrun. The standalone validation and the MCP stall runtime case were not run in this sandbox.

Validation of the added standalone configuration

0 of 1 added config file(s) passed --validate-only (latest with cr.agentgateway.dev/agentgateway:latest, main with cr.agentgateway.dev/agentgateway:latest-dev).
Validation checks field names and types only. Commands, runtime behavior, and field paths written in prose are unverified.

Rejected:

  • content/docs/standalone/main/documentation/configuration/resiliency/timeouts.md:41 — Run 'docker run --help' for more information
How the pages were chosen (triage report)

Draft a documentation change

agentgateway/agentgateway#3894 — respect idle timeout on MCP path

  • Product: agentgateway (upstream) → agentgateway/website
  • Docs version: standalone/main, kubernetes/main
  • Summary (read from the body): Because MCP has its own early return it was missing this
  • Not tested: no cluster was available, so every command in this diff is unrun
  • No rule covers 1 touched file(s). The candidate pages below come from the files that DID match a rule, so they may scope this narrower than the change is. Read these before deciding the change is only about the pages listed:
    • crates/agentgateway/src/proxy/httpproxy.rs

Release notes

This pull request also adds its release-note entries:

  • content/docs/kubernetes/main/release-notes/release-notes.md: respect idle timeout on MCP path (fix, under MCP)
  • content/docs/standalone/main/release-notes/release-notes.md: respect idle timeout on MCP path (fix, under MCP)

Check these release-note links and names. Each note is on its page, but a link may not reach the drafted content there, or a name may belong to the other mode:

  • content/docs/kubernetes/main/release-notes/release-notes.md: respect idle timeout on MCP path agentgateway#3894's note names responseIdleTimeout, which content/docs/standalone/main mentions and content/docs/kubernetes/main does not. Check that this tree's readers can set it, or word the note for this mode.
  • content/docs/standalone/main/release-notes/release-notes.md: respect idle timeout on MCP path agentgateway#3894's note names spec.traffic.timeouts.responseIdle, which content/docs/kubernetes/main mentions and content/docs/standalone/main does not. Check that this tree's readers can set it, or word the note for this mode.

Draft branch: pr-tracker-draft-agentgateway-3894

Signed-off-by: GitHub Action <action@github.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Deploying agentproxy with  Cloudflare Pages  Cloudflare Pages

Latest commit: 07e0d1a
Status:⚡️  Build in progress...

View logs

Signed-off-by: Art Berger <art.berger@solo.io>
@artberger
artberger merged commit 8bc4d83 into main Oct 20, 2026
5 of 6 checks passed
@artberger
artberger deleted the pr-tracker-draft-agentgateway-3894 branch October 20, 2026 14:26
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.

2 participants