Skip to content
This repository was archived by the owner on Aug 3, 2026. It is now read-only.
This repository was archived by the owner on Aug 3, 2026. It is now read-only.

Upgrade governed kagent-tools MCP surface to stable 2025-11-25 #405

Description

@fmind

Context

MCP's current stable protocol revision is 2025-11-25, but the governed general-purpose kagent-tools server still negotiates 2025-06-18. This is an upstream release boundary, not a reason to consume draft code:

  • Fgentic already pins the latest stable multi-architecture image, ghcr.io/kagent-dev/kagent/tools:0.2.1@sha256:50b431281d3e32666f27a292962fd486aabaac157083a844d037c12137e353aa.
  • kagent-dev/tools v0.2.1 and current main pin mark3labs/mcp-go v0.43.2, whose latest protocol constant is 2025-06-18.
  • Fgentic's official-Go-SDK pin collector offers 2025-11-25; the committed initialize pin records the server's real downgrade to 2025-06-18.
  • kagent v0.9.11 and agentgateway v1.3.1 already support 2025-11-25; they are not the blocker.
  • Draft upstream PR kagent-dev/tools#66 migrates to the official Go SDK, but it is unmerged and has no stable released image.

Human: unblock when kagent-dev/tools ships a stable release negotiating MCP 2025-11-25 (upstream hard block). Do not add agent-ready before then. Do not use the draft PR image or a locally maintained fork merely to claim currency.

Tasks

  • Confirm a stable kagent-dev/tools release uses either the official MCP Go SDK or mcp-go >= v0.44.0 and actually negotiates 2025-11-25.
  • Verify the immutable OCI index contains both Linux amd64 and arm64 manifests, then update the image operand in infra/kagent/helmrelease.yaml and infra/agentgateway/mcp-surface.pin.json.
  • Regenerate the complete initialize/tools/prompts/resources/templates surface pin and semantically review all schema, annotation, instruction, capability, and metadata changes.
  • Update scripts/test-mcp-governance.sh to initialize with 2025-11-25, assert the exact negotiated response, and send MCP-Protocol-Version: 2025-11-25 on every subsequent notification/list/call/session request.
  • Add exact-version positive and older/missing/invalid-version negative assertions at the governed gateway boundary without weakening MCP authorization/tool-surface checks.
  • Add an exact negotiated-version assertion to the pin collector tests and update docs/security.md §7.4 with the released server/version evidence.

Acceptance criteria

  • The released stable server and the gateway path negotiate exactly MCP 2025-11-25; no draft, release candidate, fork-only image, or silent downgrade is accepted.
  • Every subsequent Streamable HTTP request carries MCP-Protocol-Version: 2025-11-25; wrong/invalid values fail according to the stable transport contract.
  • The governed surface pin matches the exact released multi-architecture digest and all semantic drift is reviewed.
  • The read-only process flag, scoped RBAC, five-tool allowlist, authentication, content-free audit, and NetworkPolicy controls remain intact.
  • mise run check:mcp-governance, mise run test:mcp-governance, mise run check, and mise run test pass warning-free.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/infraKubernetes, Flux, Helm, Terraformarea/securityThreat model, policies, supply chainpriority/p1Next: near-term, after the p0 frontier (urgency, not phase)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions