Skip to content

No progressToken forwarding or progress notification bridging for downstream tools #974

Description

@QuentinBisson

Problem

muster cannot relay per-request progress from downstream tools:

  • The internal MCPClient interface is CallTool(ctx, name, args) (internal/aggregator/types.go:38) — there is no way to thread a progressToken / request _meta to the downstream server.
  • notifications/progress from downstream servers is not bridged back to the calling client session.

Long-running downstream tools (cluster provisioning, large queries) give zero feedback through muster; clients see nothing until the final result or a timeout.

Scope

This is a structural change, intentionally split from the serialization fixes:

  1. Extend the MCPClient interface (or add a variant) to accept request _meta, and forward the caller's progressToken on call_tool invocations.
  2. Bridge notifications/progress from the downstream connection to the calling session, translating the token.
  3. Decide behavior for pooled/session connections where one downstream client serves multiple aggregator sessions.

Related but explicitly out of scope: sampling and elicitation passthrough (downstream server-initiated requests). That is a separate design discussion about whether muster should proxy interactive capabilities at all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions