---
schema: rendered-html/v1
title: "Goose 🤝 FastMCP - FastMCP"
source_url: https://gofastmcp.com/integrations/goose
generated_at: 2026-06-11T19:40:57.975910+00:00
---




[FastMCP home page![light logo](images/gofastmcp__com__integrations__goose__wordmark.avif)![dark logo](images/gofastmcp__com__integrations__goose__wordmark-white.avif)](gofastmcp__com.md)







AI Assistants

Goose 🤝 FastMCP



















  - [ChatGPT](gofastmcp__com__integrations__chatgpt.md)
  - [Claude Code](gofastmcp__com__integrations__claude-code.md)
  - [Claude Desktop](gofastmcp__com__integrations__claude-desktop.md)
  - [Cursor](gofastmcp__com__integrations__cursor.md)
  - [Gemini CLI](gofastmcp__com__integrations__gemini-cli.md)
  - [Goose](/integrations/goose)




- [Requirements](#requirements)
- [Create a Server](#create-a-server)
- [Install the Server](#install-the-server)
  - [FastMCP CLI](#fastmcp-cli)
  - [Dependencies](#dependencies)
  - [Python Version](#python-version)
  - [Environment Variables](#environment-variables)
  - [Manual Configuration](#manual-configuration)
  - [Dependencies](#dependencies-2)
  - [Environment Variables](#environment-variables-2)
- [Using the Server](#using-the-server)

AI Assistants

# Goose 🤝 FastMCP


Install and use FastMCP servers in Goose


**This integration focuses on running local FastMCP server files with STDIO transport.** For remote servers running with HTTP or SSE transport, use your client's native configuration - FastMCP's integrations focus on simplifying the complex local setup with dependencies and `uv` commands.

[Goose](https://block.github.io/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) 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) Create a Server

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


import random

mcp = FastMCP(name="Dice Roller")

def roll_dice(n_dice: int) -> list[int]:
    """Roll `n_dice` 6-sided dice and return the results."""
    return [random.randint(1, 6) for _ in range(n_dice)]

    mcp.run()

## [​](#install-the-server) Install the Server

### [​](#fastmcp-cli) 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.

fastmcp install goose server.py

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:

# These are equivalent if your server object is named 'mcp'
fastmcp install goose server.py
fastmcp install goose server.py:mcp

# Use explicit object name if your server has a different name
fastmcp install goose server.py:my_custom_server

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:

uvx --with pandas fastmcp run /path/to/server.py

#### [​](#dependencies) Dependencies

Use the `--with` flag to specify additional packages your server needs:

fastmcp install goose server.py --with pandas --with requests

Alternatively, you can use a `fastmcp.json` configuration file (recommended):

fastmcp.json

  "$schema": "https://gofastmcp.com/public/schemas/fastmcp.json/v1.json",
  "source": {
    "path": "server.py",
    "entrypoint": "mcp"
  },
  "environment": {
    "dependencies": ["pandas", "requests"]

#### [​](#python-version) Python Version

Use `--python` to specify which Python version your server should use:

fastmcp install goose server.py --python 3.11

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) 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) Manual Configuration

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

extensions:
  dice-roller:
    name: Dice Roller
    cmd: uvx
    args: [fastmcp, run, /path/to/server.py]
    enabled: true
    type: stdio
    timeout: 300

#### [​](#dependencies-2) Dependencies

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

extensions:
  dice-roller:
    name: Dice Roller
    cmd: uvx
    args: [--with, pandas, --with, requests, fastmcp, run, /path/to/server.py]
    enabled: true
    type: stdio
    timeout: 300

#### [​](#environment-variables-2) Environment Variables

Environment variables can be specified in the `envs` field:

extensions:
  weather-server:
    name: Weather Server
    cmd: uvx
    args: [fastmcp, run, /path/to/weather_server.py]
    enabled: true
    envs:
      API_KEY: your-api-key
      DEBUG: "true"
    type: stdio
    timeout: 300

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

[Gemini CLI 🤝 FastMCP

Previous](gofastmcp__com__integrations__gemini-cli.md)[Anthropic API 🤝 FastMCP

Next](gofastmcp__com__integrations__anthropic.md)






