Extensions are add-ons that provide a way to extend the functionality of Goose by connecting with applications and tools you already use in your workflow. These extensions can be used to add new features, access data and resources, or integrate with other systems.
3. Under `Extensions`, you can toggle the built-in extensions on or off.
</TabItem>
</Tabs>
:::tip
All of Goose's built-in extensions are MCP servers in their own right. If you'd like
to use the MCP servers included with Goose with any other agent, you are free to do so.
:::
## Discovering Extensions
Goose provides a [central directory][extensions-directory] of extensions that you can install and use. The page will give you a test command to try out extensions before installing them.
## Adding Extensions
Extensions can be installed directly via the [extensions directory][extensions-directory], CLI, or UI.
:::tip
For advanced users, you can also edit the `~/.config/goose/config.yaml` file directly to add an extension.
:::
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
1. Run the following command:
```
goose configure
```
2. Select `Add Extension` from the menu.
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`: Connect to a remote system via SSE (Server-Sent Events).
4. Follow the prompts based on the type of extension you selected.
You can install [any MCP server](https://github.com/modelcontextprotocol/servers?tab=readme-ov-file#model-context-protocol-servers) as a Goose extension.
You'll then be prompted to enter a command and any environment variables needed.
</TabItem>
<TabItem value="ui" label="Goose Desktop">
1. Click `...` in the top right corner of the Goose Desktop.
2. Select `Settings` from the menu.
3. Under `Extensions`, you can add a MCP server as an extension manually by clicking on the (+) button to the right.
4. In the dialog that appears, enter the details of the MCP server including any environment variables needed.
</TabItem>
</Tabs>
For example, to connect to the [Fetch Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch), enter `uvx mcp-server-fetch` as the command.
Goose extensions are implemented with MCP, a standard protocol that allows AI models and agents to securely connect with local or remote resources. Learn how to build your own [extension as an MCP server](https://modelcontextprotocol.io/quickstart/server).