-
Notifications
You must be signed in to change notification settings - Fork 2.4k
feat: Adding streamable-http transport support for backend, desktop and cli #2942
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@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? |
aab8126 to
097ef7d
Compare
… backwards compatibility
097ef7d to
8af43c7
Compare
|
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 🤞🏼 |
* 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)
* 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)
* 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) ...
* 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) ...
…nd cli (block#2942) Signed-off-by: Adam Tarantino <[email protected]>
…nd cli (block#2942) Signed-off-by: Soroosh <[email protected]>
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-extensionflag