Skip to content

Optimizer is trying to use streamable-http for SSE servers in Kubernetes #210

@danbarr

Description

@danbarr

I'm running the latest mcp-optimizer 0.2.1 in K8s (deployed via the Helm chart). It's successfully indexing streamable-http servers, but I also have one SSE server running (oci-registry). This server fails to be indexed, and it seems the optimizer is trying to use the wrong connection type:

2025-12-22 20:16:19 [info     ] Using streamable-http client for workload 'oci-registry' [mcp_optimizer.mcp_client] normalized_url=http://mcp-oci-registry-proxy.toolhive-system.svc.cluster.local:8080/mcp original_url=http://mcp-oci-registry-proxy.toolhive-system.svc.cluster.local:8080/sse#oci-registry proxy_mode_field=streamable-http workload=oci-registry
2025-12-22 20:16:19 [info     ] Initializing MCP session for workload 'oci-registry' [mcp_optimizer.mcp_client] workload=oci-registry
2025-12-22 20:16:19 [error    ] MCP session error              [mcp_optimizer.mcp_client] error='MCP protocol error: Session terminated' workload=Workload(created_at='2025-12-19T23:01:11Z', group='demo-tools', labels={'demo.toolhive.stacklok.dev/vmcp-backend': 'true'}, name='oci-registry', package='ghcr.io/stackloklabs/ocireg-mcp/server:0.0.6', port=8080, proxy_mode='streamable-http', remote=False, status='running', status_context='MCP server is running', tool_type='mcp', tools=[], transport_type='sse', url='http://mcp-oci-registry-proxy.toolhive-system.svc.cluster.local:8080/sse#oci-registry')
2025-12-22 20:16:19 [warning  ] Failed to process workload 'oci-registry': MCP protocol error: Session terminated [mcp_optimizer.ingestion] error_type=WorkloadConnectionError workload_name=oci-registry workload_package=ghcr.io/stackloklabs/ocireg-mcp/server:0.0.6 workload_url=http://mcp-oci-registry-proxy.toolhive-system.svc.cluster.local:8080/sse#oci-registry
2025-12-22 20:16:19 [warning  ] Failed to process workload - see details above [mcp_optimizer.ingestion] error='MCP protocol error: Session terminated' workload_name=oci-registry workload_remote=False workload_url=http://mcp-oci-registry-proxy.toolhive-system.svc.cluster.local:8080/sse#oci-registry

Note the Using streamable-http client for workload 'oci-registry' even though transport_type='sse'. It seems to be detecting proxy_mode='streamable-http'; however proxy_mode isn't explicitly set on this workload and in any case is only relevant to stdio servers?

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