docs: remove SSE transport and rename to Streamable HTTP (#6319)

Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Adrian Cole
2026-01-13 05:42:48 +08:00
committed by GitHub
parent ce0fcea905
commit 8880192071
23 changed files with 143 additions and 215 deletions
@@ -153,8 +153,7 @@ See available servers in the **[MCP Server Directory](https://www.pulsemcp.com/s
3. Choose the type of extension you'd like to add:
- `Built-In Extension`: Use an extension that comes pre-installed with goose.
- `Command-Line Extension`: Add a local command or script to run as an extension.
- `Remote Extension (SSE)`: Connect to a remote system via SSE (Server-Sent Events).
- `Remote Extension (Streaming HTTP)`: Connect to a remote system via Streaming HTTP
- `Remote Extension (Streamable HTTP)`: Connect to a remote system via Streamable HTTP
4. Follow the prompts based on the type of extension you selected.
@@ -284,32 +283,13 @@ goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol/server-github&timeo
Note that each parameter to the `npx` command is passed as a separate `arg` parameter in the deeplink.
</TabItem>
<TabItem value="sse" label="Server-Sent Events">
```
goose://extension?url=<remote-sse-url>&id=<id>&name=<name>&description=<description>
```
Parameters:
- `url`: The URL of the remote SSE server
- `timeout`: Maximum time (in seconds) to wait for extension responses
- `id`: Unique identifier for the extension
- `name`: Display name for the extension
- `description`: Brief description of the extension's functionality
For example, a deeplink for a URL like `http://localhost:8080/sse` would look like this when URL-encoded:
```
goose://extension?url=http%3A%2F%2Flocalhost%3A8080%2Fsse&timeout=<timeout>&id=<id>&name=<name>&description=<description>>
```
</TabItem>
<TabItem value="streamable_http" label="Streaming HTTP">
<TabItem value="streamable_http" label="Streamable HTTP">
```
goose://extension?url=<remote-streamable-http-url>&type=streamable_http&id=<id>&name=<n>&description=<description>
```
Parameters:
- `url`: The URL of the remote Streaming HTTP server
- `url`: The URL of the remote Streamable HTTP server
- `type`: Must be set to `streamable_http` to specify the protocol type
- `timeout`: Maximum time (in seconds) to wait for extension responses
- `id`: Unique identifier for the extension
@@ -636,29 +616,15 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
:::
### Remote Extensions over SSE
### Remote Extensions over Streamable HTTP
To enable a remote extension over SSE while starting a session, run the following command:
```bash
goose session --with-remote-extension "{extension URL}" --with-remote-extension "{another extension URL}"
```
For example, to start a session with a remote extension over SSE running on localhost on port 8080, you'd run:
```bash
goose session --with-remote-extension "http://localhost:8080/sse"
```
### Remote Extensions over Streaming HTTP
To enable a remote extension over Streaming HTTP while starting a session, run the following command:
To enable a remote extension over Streamable HTTP while starting a session, run the following command:
```bash
goose session --with-streamable-http-extension "{extension URL}" --with-streamable-http-extension "{another extension URL}"
```
For example, to start a session with a Streaming HTTP extension, you'd run:
For example, to start a session with a Streamable HTTP extension, you'd run:
```bash
goose session --with-streamable-http-extension "https://example.com/streamable"
@@ -110,8 +110,7 @@ Start or resume interactive chat sessions.
**Extension Options:**
- **`--with-extension <command>`**: Add stdio extensions
- **`--with-remote-extension <url>`**: Add remote extensions over SSE
- **`--with-streamable-http-extension <url>`**: Add remote extensions over Streaming HTTP
- **`--with-streamable-http-extension <url>`**: Add remote extensions over Streamable HTTP
- **`--with-builtin <id>`**: Enable built-in extensions (e.g., 'developer', 'computercontroller')
**Usage:**
@@ -128,13 +127,12 @@ goose session --resume --path ./session.jsonl # legacy session storage
# Start with extensions
goose session --with-extension "npx -y @modelcontextprotocol/server-memory"
goose session --with-builtin developer
goose session --with-remote-extension "http://localhost:8080/sse"
goose session --with-streamable-http-extension "http://localhost:8080/mcp"
# Advanced: Mix multiple extension types
goose session \
--with-extension "echo hello" \
--with-remote-extension "http://sse.example.com/sse" \
--with-streamable-http-extension "http://http.example.com" \
--with-streamable-http-extension "http://localhost:8080/mcp" \
--with-builtin "developer"
# Control session behavior
@@ -303,8 +301,7 @@ Execute commands from an instruction file or stdin. Check out the [full guide](/
**Extension Options:**
- **`--with-extension <COMMAND>`**: Add stdio extensions (can be used multiple times)
- **`--with-remote-extension <URL>`**: Add remote extensions over SSE (can be used multiple times)
- **`--with-streamable-http-extension <URL>`**: Add remote extensions over Streaming HTTP (can be used multiple times)
- **`--with-streamable-http-extension <URL>`**: Add remote extensions over Streamable HTTP (can be used multiple times)
- **`--with-builtin <name>`**: Add builtin extensions by name (e.g., 'developer' or multiple: 'developer,github')
**Control Options:**
@@ -170,7 +170,6 @@ The `extensions` field allows you to specify which Model Context Protocol (MCP)
#### Extension Types
- **`stdio`**: Standard I/O client with command and arguments
- **`sse`**: Server-sent events client with a URI endpoint
- **`builtin`**: Built-in extension that is part of the bundled goose MCP server
- **`platform`**: Platform extensions that run in the agent process
- **`streamable_http`**: Streamable HTTP client with URI endpoint
@@ -120,12 +120,6 @@ goose run --with-builtin "developer,computercontroller" -t "your instructions"
goose run --with-extension "ENV1=value1 custom-extension-args" -t "your instructions"
```
- Using remote SSE extensions
```bash
goose run --with-remote-extension "url" -t "your instructions"
```
- Using streamable HTTP extensions
```bash
+6 -6
View File
@@ -70,13 +70,13 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
apiKeyLinkText="Service Access Token"
/>
<!-- For external SSE or HTTP MCP servers -->
<!-- For HTTP MCP servers -->
<GooseDesktopInstaller
extensionId="{extension_id}"
extensionName="{Extension Name}"
description="{Extension description}"
type="sse" // or "http"
url="https://example-server.com/endpoint"
type="http"
url="https://example-server.com/mcp"
envVars={[ // also used for http request headers
{ name: "SOME_KEY", label: "Description or placeholder value" }
]}
@@ -107,12 +107,12 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
}
/>
<!-- For external SSE or HTTP MCP servers -->
<!-- For HTTP MCP servers -->
<CLIExtensionInstructions
name="{Extension Name}"
description="{Extension description}"
type="sse" // or "http"
url="https://example-server.com/endpoint"
type="http"
url="https://example-server.com/mcp"
timeout={300}
envVars={[ // also used for http request headers
{ key: "API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
+2 -3
View File
@@ -69,9 +69,8 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```
+7 -7
View File
@@ -15,12 +15,12 @@ Cloudflare provides multiple specialized MCP servers for different aspects of th
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fobservability.mcp.cloudflare.com%2Fsse&id=cloudflare-observability&name=Cloudflare%20Observability&description=Debug%20and%20get%20insight%20into%20your%20application%27s%20logs%20and%20analytics&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fobservability.mcp.cloudflare.com%2Fmcp&id=cloudflare-observability&name=Cloudflare%20Observability&description=Debug%20and%20get%20insight%20into%20your%20application%27s%20logs%20and%20analytics&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
</TabItem>
<TabItem value="cli" label="goose CLI">
**Command**
```sh
npx mcp-remote https://observability.mcp.cloudflare.com/sse
npx mcp-remote https://observability.mcp.cloudflare.com/mcp
```
</TabItem>
</Tabs>
@@ -94,7 +94,7 @@ Choose one or more servers based on your needs. Here are the most popular config
2. Choose to add a `Command-line Extension`
3. Give your extension a name: `cloudflare-observability`
4. Enter the command: `npx mcp-remote https://observability.mcp.cloudflare.com/sse`
4. Enter the command: `npx mcp-remote https://observability.mcp.cloudflare.com/mcp`
5. Set timeout: `300` seconds
6. Add environment variable:
- Name: `CLOUDFLARE_API_TOKEN`
@@ -107,10 +107,10 @@ Choose one or more servers based on your needs. Here are the most popular config
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fbindings.mcp.cloudflare.com%2Fsse&id=cloudflare-bindings&name=Cloudflare%20Workers%20Bindings&description=Build%20Workers%20applications%20with%20storage%2C%20AI%2C%20and%20compute%20primitives&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fbindings.mcp.cloudflare.com%2Fmcp&id=cloudflare-bindings&name=Cloudflare%20Workers%20Bindings&description=Build%20Workers%20applications%20with%20storage%2C%20AI%2C%20and%20compute%20primitives&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
</TabItem>
<TabItem value="cli" label="goose CLI">
Command: `npx mcp-remote https://bindings.mcp.cloudflare.com/sse`
Command: `npx mcp-remote https://bindings.mcp.cloudflare.com/mcp`
</TabItem>
</Tabs>
@@ -118,10 +118,10 @@ Choose one or more servers based on your needs. Here are the most popular config
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fradar.mcp.cloudflare.com%2Fsse&id=cloudflare-radar&name=Cloudflare%20Radar&description=Get%20global%20Internet%20traffic%20insights%2C%20trends%2C%20URL%20scans%2C%20and%20other%20utilities&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
[Launch the installer](goose://extension?cmd=npx&arg=mcp-remote&arg=https%3A%2F%2Fradar.mcp.cloudflare.com%2Fmcp&id=cloudflare-radar&name=Cloudflare%20Radar&description=Get%20global%20Internet%20traffic%20insights%2C%20trends%2C%20URL%20scans%2C%20and%20other%20utilities&env=CLOUDFLARE_API_TOKEN%3DCloudflare%20API%20Token)
</TabItem>
<TabItem value="cli" label="goose CLI">
Command: `npx mcp-remote https://radar.mcp.cloudflare.com/sse`
Command: `npx mcp-remote https://radar.mcp.cloudflare.com/mcp`
</TabItem>
</Tabs>
+2 -3
View File
@@ -132,9 +132,8 @@ You'll need to re-authenticate once a day when using the Google Drive extension.
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```
+2 -3
View File
@@ -69,9 +69,8 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```
+23 -16
View File
@@ -22,16 +22,16 @@ This tutorial covers how to add the JetBrains extension to integrate with any Je
<TabItem value="later" label="2025.2 and later" default>
Versions 2025.2 and later have built-in MCP server support and generate a dynamic configuration specific to your IDE instance.
The instructions in this tutorial show how to configure the recommended remote SSE extension. See your IDE's documentation for more details (e.g. [MCP Server](https://www.jetbrains.com/help/idea/mcp-server.html) for IntelliJ IDEA).
See your IDE's documentation for more details (e.g. [MCP Server](https://www.jetbrains.com/help/idea/mcp-server.html) for IntelliJ IDEA).
:::tip TLDR
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
Use `Add custom extension` in Settings → Extensions to add a `Server-Sent Events (SSE)` extension type with your IDE-specific SSE config.
Use `Add custom extension` in Settings → Extensions with the command from `Copy Stdio Config` in your IDE.
</TabItem>
<TabItem value="cli" label="goose CLI">
Use `goose configure` to add a `Remote Extension (SSE)` extension type with your IDE-specific SSE config.
Use `goose configure` with the command from `Copy Stdio Config` in your IDE.
</TabItem>
</Tabs>
:::
@@ -43,11 +43,11 @@ This tutorial covers how to add the JetBrains extension to integrate with any Je
1. Go to `Settings > Tools > MCP Server` in your IDE
2. If needed, click `Enable MCP Server` to enable the MCP server
3. Click `Copy SSE Config`
3. Click `Copy Stdio Config`
4. Click `OK` to save your changes and start the server
5. Copy the `url` value from the config
5. Copy the `command`, `args`, and `env` values from the config
2. Add the JetBrains extension to goose, replacing "YOUR_IDE_SPECIFIC_URL" in the instructions with the URL you copied:
2. Add the JetBrains extension to goose using the command from the config:
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
@@ -55,18 +55,26 @@ This tutorial covers how to add the JetBrains extension to integrate with any Je
3. Click `Add custom extension`
4. On the `Add custom extension` modal, enter the following:
- **Extension Name**: JetBrains
- **Type**: Server-Sent Events (SSE)
- **Endpoint**: YOUR_IDE_SPECIFIC_URL
- **Type**: STDIO
- **Description**: Integrate goose with any JetBrains IDE
- **Command**: Combine the `command` and `args` from your IDE's Stdio config into a single command string
- **Environment Variables**: Add `IJ_MCP_SERVER_PORT` with the port value from the `env` section of your copied Stdio config
5. Click `Add Extension` to save the extension
6. Navigate to the chat
</TabItem>
<TabItem value="cli" label="goose CLI">
<CLIExtensionInstructions
<CLIExtensionInstructions
name="jetbrains"
description="Integrate goose with any JetBrains IDE"
type="sse"
url="YOUR_IDE_SPECIFIC_URL"
type="stdio"
command="YOUR_COMMAND_AND_ARGS_FROM_IDE"
timeout={300}
envVars={[{ key: "IJ_MCP_SERVER_PORT", value: "YOUR_PORT_FROM_IDE" }]}
commandNote={
<>
Combine <code>command</code> and <code>args</code> into a single string. The port value comes from the <code>env</code> section of your copied Stdio config.
</>
}
/>
</TabItem>
</Tabs>
@@ -158,8 +166,8 @@ Anthropic's Claude 4 Sonnet was used for this task.
</TabItem>
</Tabs>
:::tip
When using goose to refactor code, it's recommended to commit your code to version control _before_ making changes. This way, you have a clean snapshot to compare against, making it easy to review gooses modifications, revert if needed, and track improvements.
:::tip
When using goose to refactor code, it's recommended to commit your code to version control _before_ making changes. This way, you have a clean snapshot to compare against, making it easy to review goose's modifications, revert if needed, and track improvements.
:::
### goose Prompt
@@ -175,7 +183,7 @@ After 2 minutes, goose was done with the upgrade! 🎉
I'll make several improvements to modernize this codebase to use Java 21 (latest LTS) features. Here are the changes I'll implement:
1. Update the `pom.xml` to use Java 21
2. Use newer Java features
2. Use newer Java features
[... code changes ...]
@@ -248,7 +256,6 @@ The codebase is now using the latest Java LTS version (21) and incorporates many
Using the JetBrains extension provided several advantages and made it easier for goose to:
- navigate through the codebase
- track changes
+7 -25
View File
@@ -19,40 +19,22 @@ This tutorial covers how to add the [Pieces for Developers MCP Server](https://d
2. Enable [Long-Term Memory Context](https://docs.pieces.app/products/quick-guides/ltm-context) in PiecesOS
3. Locate your MCP Server URL
- In PiecesOS, navigate to Settings > Model Context Protocol (MCP)
- Copy the server URL
:::tip
The default server URL is shown below. PiecesOS may use a different port if 39300 is already in use on your system:
```
http://localhost:39300/model_context_protocol/2024-11-05/sse
```
:::
### Add Pieces MCP Server
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
<GooseDesktopInstaller
extensionId="pieces"
extensionName="Pieces for Developers"
description="Provides access to your Pieces Long-Term Memory. You need to have Pieces installed to use this."
url="http://localhost:39300/model_context_protocol/2024-11-05/sse"
command="uvx"
args={["--from", "pieces-cli", "pieces", "--ignore-onboarding", "mcp", "start"]}
/>
</TabItem>
<TabItem value="cli" label="goose CLI">
<CLIExtensionInstructions
name="Pieces"
description="Provides access to your Pieces Long-Term Memory"
type="sse"
url="http://localhost:39300/model_context_protocol/2024-11-05/sse"
commandNote={
<>
Use the server URL you copied from PiecesOS settings. PiecesOS may use a different port if 39300 is already in use on your system.
</>
}
type="stdio"
command="uvx --from pieces-cli pieces --ignore-onboarding mcp start"
/>
</TabItem>
</Tabs>
@@ -74,7 +56,7 @@ Here's a report summarizing your key activities from yesterday, based on the mos
1. Code Development with goose:
Activity: You worked on integrating SSE MCP servers into the goose CLI, making enhancements to handle extensions via schema URLs.
Activity: You worked on integrating MCP servers into the goose CLI, making enhancements to handle extensions via schema URLs.
Description: This task involved modifying code and testing new integrations to support advanced functionalities. It also included interactions with the goose community on Discord for feedback and troubleshooting.
2. Documentation Updates:
@@ -96,11 +78,11 @@ Here's a report summarizing your key activities from yesterday, based on the mos
Activity: Planned integration workflows for MCP and documented their use cases.
Description: You worked on strategies for implementing MCP integrations effectively, involving planning sessions to optimize future project deployments and align them with user requirements and project objectives.
These activities demonstrate a productive day with a focus on development, collaboration, and content management within your technical community.
```
:::tip
For more examples of prompts you can use with the Pieces for Developers MCP Server, see the [Pieces MCP prompting guide](https://docs.pieces.app/products/mcp/prompting?utm_source=goose&utm_medium=collab&utm_campaign=mcp).
:::
:::
+2 -3
View File
@@ -94,9 +94,8 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```
+2 -3
View File
@@ -63,9 +63,8 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```
+2 -3
View File
@@ -69,9 +69,8 @@ Before adding this extension, make sure [PortAudio](https://github.com/GoogleClo
│ ○ Built-in Extension
// highlight-start
│ ● Command-line Extension (Run a local command or script)
// highlight-end
│ ○ Remote Extension (SSE)
│ ○ Remote Extension (Streaming HTTP)
// highlight-end
│ ○ Remote Extension (Streamable HTTP)
```