Skip to content

Comments

feat: upgrade mcp-go to v0.43.2 with streamable HTTP transport#38

Open
danielheringers wants to merge 4 commits intooisee:mainfrom
danielheringers:feat/mcp-go-0.43.2-http-streamable
Open

feat: upgrade mcp-go to v0.43.2 with streamable HTTP transport#38
danielheringers wants to merge 4 commits intooisee:mainfrom
danielheringers:feat/mcp-go-0.43.2-http-streamable

Conversation

@danielheringers
Copy link

Summary

  • Upgrade github.com/mark3labs/mcp-go from v0.17.0 to v0.43.2
  • Migrate MCP tool handlers from request.Params.Arguments to request.GetArguments()
  • Add Streamable HTTP as an alternative MCP transport (--transport http-streamable)
  • Keep backward compatibility with stdio as the default transport

Changes

  • go.mod, go.sum
    • bump mcp-go and update transitive deps
  • internal/mcp/handlers_*.go
    • migrate handler argument reads to request.GetArguments()
  • internal/mcp/server.go
    • add transport routing (Serve, ServeStdio, ServeStreamableHTTP)
    • add default HTTP bind/path constants
  • cmd/vsp/main.go
    • add --transport flag and SAP_TRANSPORT env support
    • normalize and validate transport values (stdio, http-streamable)
  • Added tests:
    • internal/mcp/arguments_migration_test.go
    • internal/mcp/server_transport_test.go
    • cmd/vsp/main_test.go
  • Docs:
    • README.md, ARCHITECTURE.md, CLAUDE.md

Test plan

  • go test -run TestHandlersUseGetArgumentsAPI ./internal/mcp -v
  • go test -run "TestServe_|TestServeStreamableHTTP_" ./internal/mcp -v
  • go test -run "TestValidateConfig_Transport|TestResolveConfig_Transport|TestRootCmdHasTransportFlag" ./cmd/vsp -v
  • go test ./internal/mcp ./cmd/vsp
  • go test -cover ./internal/mcp ./cmd/vsp
    • internal/mcp: 9.1%
    • cmd/vsp: 15.1%
  • Manual HTTP Streamable smoke test on /mcp
    • initialize: OK
    • notifications/initialized: OK
    • tools/list: OK (non-empty list)

Notes

  • go test ./... currently fails in pkg/cache (Example_withSQLite) due CGO/SQLite runtime constraint (CGO_ENABLED=0), which is outside this PR scope.
  • Kept GetDependencyZIP compatibility behavior in embedded/deps/embed.go to avoid regressions while related upstream discussion is ongoing.

Fixes #21

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.

Streaming HTTP support

1 participant