Skip to content

Conversation

@codefromthecrypt
Copy link
Collaborator

@codefromthecrypt codefromthecrypt commented Dec 30, 2025

Summary

Upgrade to rmcp 0.12.0 and sacp 10.0.0 by removing SSE transport (dropped in rmcp 0.11.0).

The rmcp upgrade has the following impact:

SSE Migration

SSE extensions can be migrated to http streamable alternatives or worst case mcp-proxy

Migration (use mcp-proxy):

extensions:
  agent-fin:
    type: stdio
    cmd: uvx
    args: [mcp-proxy, --sse-url, https://agent-fin.biodnd.com/sse]

Type of Change

  • Feature
  • Refactor / Code quality

AI Assistance

  • This PR was created or reviewed with AI assistance

Testing

  • ./target/release/goose configure → SSE visible, warning shown, can delete
  • ./target/release/goose run → Warning printed, SSE fails to start
  • just run-ui → Yellow alert, SSE visible, can delete

Related Issues

Screenshots/Demos (for UX changes)

All these tests show there is a warning and people can actually delete sse extensions without manual config

These used a valid sse server that at least allows anonymous tools/list

  extensions:
    test-sse:
      enabled: true
      type: sse
      name: test-sse
      uri: https://agent-fin.biodnd.com/sse
      description: "Test SSE extension"

CLI Session Run

$  ./target/release/goose session                                                                                                                                                       
Warning: 'test-sse': SSE is unsupported, migrate to streamable_http
starting session | provider: tetrate model: claude-opus-4-1
    session id: 20251231_12
    working directory: /Users/codefromthecrypt/oss/goose

goose is running! Enter your instructions, or try asking what goose can do.

Context: ○○○○○○○○○○ 0% (0/200000 tokens)

CLI Configure Toggle Extensions

$  ./target/release/goose configure                                                                                                                                                       

This will update your existing config files
  if you prefer, you can edit them directly at /Users/codefromthecrypt/.config/goose

┌   goose-configure 
│
◇  What would you like to configure?
│  Toggle Extensions 
│
Warning: 'test-sse': SSE is unsupported, migrate to streamable_http
◆  enable extensions: (use "space" to toggle and "enter" to submit)

CLI Configure Remove Extension

$ ./target/release/goose configure

This will update your existing config files
  if you prefer, you can edit them directly at /Users/codefromthecrypt/.config/goose

┌   goose-configure 
│
◇  What would you like to configure?
│  Remove Extension 
│
Warning: 'test-sse': SSE is unsupported, migrate to streamable_http
◆  Select extensions to remove (note: you can only remove disabled extensions - use "space" to toggle and "enter" to submit)
│  ◻ test-sse (<)
│  ◻ memory 
│  ◻ autovisualiser 
│  ◻ chatrecall 
│  ◻ todo 
│  ◻ tutorial 
│  ◻ GitHub 
│  ◻ skills 
│  ◻ kiwi 
│  ◻ code_execution 
└  

UI warns but doesn't fail completely on SSE

Screenshot 2025-12-31 at 11 38 20 AM

UI Extensions Section

$ just run-ui

Navigate to Settings > Extensions
Screenshot 2025-12-31 at 11 38 34 AM

@github-actions
Copy link
Contributor

github-actions bot commented Dec 30, 2025

PR Preview Action v1.6.3

🚀 View preview at
https://block.github.io/goose/pr-preview/pr-6304/

Built to branch gh-pages at 2025-12-31 06:29 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@michaelneale
Copy link
Collaborator

cc @alexhancock FYI

@codefromthecrypt
Copy link
Collaborator Author

codefromthecrypt commented Dec 31, 2025

I am reworking this and almost done.. to use toast notification on existing sse config so users can know and still be able to delete or change them without manual editing config files

@codefromthecrypt codefromthecrypt force-pushed the remove-sse-transport branch 5 times, most recently from beae3e2 to 30d16ca Compare December 31, 2025 05:48
Remove SSE transport (dropped in rmcp 0.11.0). SSE extensions show warnings and can be deleted, but will not start. Use streamable HTTP or mcp-proxy for migration.

Signed-off-by: Adrian Cole <[email protected]>
let warnings = goose::config::get_warnings();
Ok(Json(ExtensionResponse {
extensions,
warnings,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the key here to allow the UI to respond with a warning in a compatible way is to add an extra field to the response. This is used later in the screenshots of the PR

/// Server-sent events client with a URI endpoint
/// SSE transport is no longer supported - kept only for config file compatibility
#[serde(rename = "sse")]
Sse {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this retains only the minimal fields to keep the UI working, so that errors can be displayed and it can actually delete sse extensions

.collect()
}

pub fn get_warnings() -> Vec<String> {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I chose to not unit test this because it is more distracting in this case, and hopefully we can reap all sse code in a version or two including this


[dev-dependencies]
sacp = "10.0.0-alpha.3"
sacp = { workspace = true }
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sacp now can be a top level dep as we can use a later version of rmcp compatibly

@codefromthecrypt codefromthecrypt marked this pull request as ready for review December 31, 2025 06:16
Copilot AI review requested due to automatic review settings December 31, 2025 06:16
@codefromthecrypt codefromthecrypt requested a review from a team as a code owner December 31, 2025 06:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades to rmcp 0.12.0 and sacp 10.0.0 by removing the deprecated SSE transport, which was dropped from the MCP spec due to load balancer incompatibility. The upgrade brings custom requests/notifications support and improved graceful shutdown.

Key changes:

  • SSE transport removed from all codebases (Rust, TypeScript, docs)
  • SSE config kept for backward compatibility with warnings
  • Migration path provided via mcp-proxy for legacy SSE extensions
  • Updated to use new RMCP/SACP builder patterns

Reviewed changes

Copilot reviewed 67 out of 69 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Cargo.toml Upgraded rmcp to 0.12.0, sacp to 10.0.0
crates/goose/Cargo.toml Removed SSE transport features
crates/goose/src/agents/extension.rs Deprecated SSE variant, kept for compatibility
crates/goose/src/agents/extension_manager.rs SSE returns error instead of attempting connection
crates/goose/src/config/extensions.rs Added warning generation for SSE extensions
crates/goose-server/src/routes/config_management.rs Added warnings field to API response
crates/goose-cli/src/cli.rs Removed --with-remote-extension flag
crates/goose-cli/src/session/builder.rs Removed remote_extensions handling
crates/goose-cli/src/commands/configure.rs Removed SSE option from configure dialog
crates/goose-cli/src/commands/acp.rs Updated to use new SACP builder patterns
crates/goose/tests/acp_integration_test.rs Updated tests to use new API constructors
ui/desktop/src/utils/providerUtils.ts SSE fails immediately with error message
ui/desktop/src/components/settings/extensions/utils.ts Removed SSE form handling
ui/desktop/src/components/settings/extensions/ExtensionsSection.tsx Added warning banner for SSE extensions
ui/desktop/src/components/ConfigContext.tsx Added extensionWarnings state
ui/desktop/openapi.json Updated SSE schema to compatibility-only mode
documentation/static/servers.json Updated JetBrains/Pieces to use stdio/HTTP
documentation/docs/**/*.md Replaced SSE references with Streamable HTTP
Files not reviewed (1)
  • ui/desktop/package-lock.json: Language not supported

Signed-off-by: Adrian Cole <[email protected]>
Copy link
Collaborator

@baxen baxen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! I tested locally and handling of old extensions worked on the CLI and UI. Tested normal usage as well just to be sure the new version of rmcp is not impacting anything - things working great

codefromthecrypt added a commit that referenced this pull request Jan 1, 2026
## Summary
Update MCP extension documentation to remove SSE transport option and standardize on "Streamable HTTP" naming.

### Type of Change
- [x] Documentation

### Testing
Documentation only - no code changes.

### Related Issues
Part of #6304

Signed-off-by: Adrian Cole <[email protected]>
Copilot AI review requested due to automatic review settings January 1, 2026 22:53
@codefromthecrypt
Copy link
Collaborator Author

split off the docs update to #6319 to decouple the merge, but still keep the changes ready when folks are in

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 51 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • ui/desktop/package-lock.json: Language not supported

@codefromthecrypt codefromthecrypt merged commit 5a5312a into main Jan 1, 2026
24 checks passed
@codefromthecrypt codefromthecrypt deleted the remove-sse-transport branch January 1, 2026 23:07
codefromthecrypt added a commit that referenced this pull request Jan 1, 2026
## Summary
Update MCP extension documentation to remove SSE transport option and standardize on "Streamable HTTP" naming.

### Type of Change
- [x] Documentation

### Testing
Documentation only - no code changes.

### Related Issues
Part of #6304

Signed-off-by: Adrian Cole <[email protected]>
codefromthecrypt added a commit that referenced this pull request Jan 9, 2026
## Summary
Update MCP extension documentation to remove SSE transport option and standardize on "Streamable HTTP" naming.

### Type of Change
- [x] Documentation

### Testing
Documentation only - no code changes.

### Related Issues
Part of #6304

Signed-off-by: Adrian Cole <[email protected]>
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.

4 participants