Skip to main content
Goose is an open-source AI agent from Block that supports MCP servers as extensions. FastMCP can install your server directly into Goose using its deeplink protocol — one command opens Goose with an install dialog ready to go.

Requirements

This integration uses Goose’s deeplink protocol to register your server as a STDIO extension running via uvx. You must have Goose installed on your system for the deeplink to open automatically. For remote deployments, configure your FastMCP server with HTTP transport and add it to Goose directly using goose configure or the config file.

Create a Server

The examples in this guide will use the following simple dice-rolling server, saved as server.py.
server.py

Install the Server

FastMCP CLI

The easiest way to install a FastMCP server in Goose is using the fastmcp install goose command. This generates a goose:// deeplink and opens it, prompting Goose to install the server.
The install command supports the same file.py:object notation as the run command. If no object is specified, it will automatically look for a FastMCP server object named mcp, server, or app in your file:
Under the hood, the generated command uses uvx to run your server in an isolated environment. Goose requires uvx rather than uv run, so the install produces a command like:

Dependencies

Use the --with flag to specify additional packages your server needs:
Alternatively, you can use a fastmcp.json configuration file (recommended):
fastmcp.json

Python Version

Use --python to specify which Python version your server should use:
The Goose install uses uvx, which does not support --project, --with-requirements, or --with-editable. If you need these options, use fastmcp install mcp-json to generate a full configuration and add it to Goose manually.

Environment Variables

Goose’s deeplink protocol does not support environment variables. If your server needs them (like API keys), you have two options:
  1. Configure after install: Run goose configure and add environment variables to the extension.
  2. Manual config: Use fastmcp install mcp-json to generate the full configuration, then add it to ~/.config/goose/config.yaml with the envs field.

Manual Configuration

For more control, you can manually edit Goose’s configuration file at ~/.config/goose/config.yaml:

Dependencies

When manually configuring, add packages using --with flags in the args:

Environment Variables

Environment variables can be specified in the envs field:
You can also use goose configure to add extensions interactively, which prompts for environment variables.
uvx (from uv) must be installed and available in your system PATH. Goose uses uvx to run Python-based extensions in isolated environments.

Using the Server

Once your server is installed, you can start using your FastMCP server with Goose. Try asking Goose something like:
“Roll some dice for me”
Goose will automatically detect your roll_dice tool and use it to fulfill your request, returning something like:
🎲 Here are your dice rolls: 4, 6, 4 You rolled 3 dice with a total of 14!
Goose can now access all the tools, resources, and prompts you’ve defined in your FastMCP server.