Skip to content

Conversation

@btdeviant
Copy link
Contributor

Motivation

MCP is officially adopting streamable-https for client-to-server comms with optional sse for server-to-client comms.

Backend

This change provides support for streamable-http as a distinct transport option in the backend. The new transport provides support for optional sse server-to-client communication for backwards compatibility, but retains the legacy SSE transport type so as not to impact users who currently have configurations using this transport.

This will allow for a cleaner, easier deprecation of the sse transport option in later releases.

Desktop

Adds support for streamable-http as a custom connection with the ability to add and modify custom headers. Retains SSE for legacy support purposes.

CLI

Automatically detects streamable-http vs sse when using the --with-remote-extension flag

  • I have verified this does not duplicate an existing feature request

@angiejones angiejones requested a review from DOsinga June 22, 2025 21:14
@michaelneale michaelneale requested a review from baxen June 23, 2025 00:49
@michaelneale
Copy link
Collaborator

@baxen this could work - if we didn't migrate over to the rust-sdk for MCP

@btdeviant
Copy link
Contributor Author

btdeviant commented Jun 24, 2025

@baxen this could work - if we didn't migrate over to the rust-sdk for MCP

@michaelneale @baxen - If it helps I can make some updates to this PR to ease that transition when the time comes! Perhaps an abstraction layer for the transport, config, etc w/ a feature flag?

If you don't mind me asking, is there a plan to retain full backwards compatibility for users who currently have SSE as a distinct option, or would it be preferable to migrate and consolidate those who have sse config to streamable-http and use the native backwards compatibility?

@btdeviant
Copy link
Contributor Author

Hey @alexhancock , looks like a linting error that may be unrelated to my changes. Just wanted to put it on your radar - let me know if there's anything I can do on my end!

@DOsinga
Copy link
Collaborator

DOsinga commented Jul 1, 2025

Hey @alexhancock , looks like a linting error that may be unrelated to my changes. Just wanted to put it on your radar - let me know if there's anything I can do on my end!

there was an issue like this a while ago, if you haven't recently merged in master, that might solve it

@btdeviant
Copy link
Contributor Author

Hey @alexhancock , looks like a linting error that may be unrelated to my changes. Just wanted to put it on your radar - let me know if there's anything I can do on my end!

there was an issue like this a while ago, if you haven't recently merged in master, that might solve it

Awesome, thanks @DOsinga - ran what I could in the ci workflow for both the crates and the ui on my local and all looks good (famous last words), all merged 🤞🏼

@jeremiah1066 jeremiah1066 merged commit 2948d4a into block:main Jul 1, 2025
6 checks passed
jsibbison-square added a commit that referenced this pull request Jul 2, 2025
* main:
  feat: Structured output for recipes (#3188)
  Fix cost tracking accuracy and OpenRouter model pricing (#3189)
  docs: update cli install instructions for windows (#3205)
  Docs: Cost tracking on the desktop app (#3204)
  feat: Adding streamable-http transport support for backend, desktop and cli (#2942)
  fix: use the correct `contains` syntax on create-recipe-pr.yml (#3193)
wpfleger96 added a commit to wpfleger96/goose that referenced this pull request Jul 2, 2025
* main:
  fix: Pass Google AI API key in HTTP header, not query param (block#3192)
  docs: add linter to CONTRIBUTING.md (block#3168)
  feat: Structured output for recipes (block#3188)
  Fix cost tracking accuracy and OpenRouter model pricing (block#3189)
  docs: update cli install instructions for windows (block#3205)
  Docs: Cost tracking on the desktop app (block#3204)
  feat: Adding streamable-http transport support for backend, desktop and cli (block#2942)
  fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193)
@btdeviant btdeviant deleted the streamable-http branch July 2, 2025 17:03
AaronGoldsmith added a commit to AaronGoldsmith/goose that referenced this pull request Jul 2, 2025
* main: (37 commits)
  fix: fix desktop recipe url generation (block#3209)
  feat: improve UX for saving recipes (block#3214)
  fix: Pass Google AI API key in HTTP header, not query param (block#3192)
  docs: add linter to CONTRIBUTING.md (block#3168)
  feat: Structured output for recipes (block#3188)
  Fix cost tracking accuracy and OpenRouter model pricing (block#3189)
  docs: update cli install instructions for windows (block#3205)
  Docs: Cost tracking on the desktop app (block#3204)
  feat: Adding streamable-http transport support for backend, desktop and cli (block#2942)
  fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193)
  Temporarily Remove GH Copilot Provider  (block#3199)
  docs: fix tab navigation (block#3201)
  feat: use tiktoken-rs instead of tokenizers, single global tokenizer (block#3115)
  add playwright-mcp server to extensions list (block#3010)
  Add `/extension` path for extension installation (block#3011)
  feat(desktop): Prioritize suffix when truncating path in header (block#3110)
  chore(release): release version 1.0.31 (block#3185)
  feat: additional sub recipes via command line (block#3163)
  Add Internal Recipes To Recipes Cookbook (block#3179)
  pipe the argument to storage (block#3184)
  ...
baxen added a commit to Developerayo/goose that referenced this pull request Jul 2, 2025
* main: (150 commits)
  Defend against invalid sessions (block#3229)
  Clean up session file optionality for --no-session (block#3230)
  Feat: Support Recipe Parameters in Goose desktop app (block#3155)
  docs: update recipe example (block#3222)
  Add native OAuth 2.0 authentication support to MCP client (block#3213)
  build: Check in Cargo.lock changes (block#3220)
  fix: fix desktop recipe url generation (block#3209)
  feat: improve UX for saving recipes (block#3214)
  fix: Pass Google AI API key in HTTP header, not query param (block#3192)
  docs: add linter to CONTRIBUTING.md (block#3168)
  feat: Structured output for recipes (block#3188)
  Fix cost tracking accuracy and OpenRouter model pricing (block#3189)
  docs: update cli install instructions for windows (block#3205)
  Docs: Cost tracking on the desktop app (block#3204)
  feat: Adding streamable-http transport support for backend, desktop and cli (block#2942)
  fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193)
  Temporarily Remove GH Copilot Provider  (block#3199)
  docs: fix tab navigation (block#3201)
  feat: use tiktoken-rs instead of tokenizers, single global tokenizer (block#3115)
  add playwright-mcp server to extensions list (block#3010)
  ...
atarantino pushed a commit to atarantino/goose that referenced this pull request Jul 14, 2025
s-soroosh pushed a commit to s-soroosh/goose that referenced this pull request Jul 18, 2025
cbruyndoncx pushed a commit to cbruyndoncx/goose that referenced this pull request Jul 20, 2025
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.

5 participants