Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 6 additions & 40 deletions documentation/docs/getting-started/using-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -636,29 +616,15 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
:::


### Remote Extensions over SSE

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
### Remote Extensions over Streamable 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"
Expand Down
11 changes: 4 additions & 7 deletions documentation/docs/guides/goose-cli-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:**
Expand All @@ -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
Expand Down Expand Up @@ -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:**
Expand Down
1 change: 0 additions & 1 deletion documentation/docs/guides/recipes/recipe-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 0 additions & 6 deletions documentation/docs/guides/running-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions documentation/docs/mcp/_template_.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
]}
Expand Down Expand Up @@ -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: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
Expand Down
5 changes: 2 additions & 3 deletions documentation/docs/mcp/brave-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```

Expand Down
14 changes: 7 additions & 7 deletions documentation/docs/mcp/cloudflare-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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`
Expand All @@ -107,21 +107,21 @@ 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>

#### Radar Server (For traffic insights)

<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>

Expand Down
5 changes: 2 additions & 3 deletions documentation/docs/mcp/google-drive-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```

Expand Down
5 changes: 2 additions & 3 deletions documentation/docs/mcp/google-maps-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```

Expand Down
39 changes: 23 additions & 16 deletions documentation/docs/mcp/jetbrains-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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>
:::
Expand All @@ -43,30 +43,38 @@ 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
2. Click `Extensions` on the sidebar
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>
Expand Down Expand Up @@ -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
Expand All @@ -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 ...]

Expand Down Expand Up @@ -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
Expand Down
Loading
Loading