Back to Goose

{Extension Name} Extension

documentation/docs/mcp/_template_.mdx

1.33.14.1 KB
Original Source
<!-- You can use the "Add MCP Server" recipe from the Recipe Cookbook to create a draft tutorial -->

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions'; import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller'; import GooseBuiltinInstaller from '@site/src/components/GooseBuiltinInstaller';

<YouTubeShortEmbed videoUrl="https://www.youtube.com/embed/VIDEO_ID" />

This tutorial covers how to add the {Extension Name} MCP Server as a goose extension to enable ________________.

:::tip Quick Install <Tabs groupId="interface"> <TabItem value="ui" label="goose Desktop" default> Launch the installer </TabItem> <TabItem value="cli" label="goose CLI"> Command

sh
{command}
</TabItem> </Tabs> **Environment Variable** ``` {env_var}: <ENV_VALUE> ``` :::

Configuration

:::info Note that you'll need Node.js installed on your system to run this command, as it uses npx. :::

:::info Note that you'll need uv installed on your system to run this command, as it uses uvx. :::

<Tabs groupId="interface"> <TabItem value="ui" label="goose Desktop" default>
<!-- For built-in extensions -->
<GooseBuiltinInstaller
  extensionName="{Extension Name}"
  description="{Extension description}"
  extensionId="{extension_id}"
/>

<!-- For external STDIO MCP servers (npx, uvx, git, etc.) -->
<GooseDesktopInstaller
  extensionId="{extension_id}"
  extensionName="{Extension Name}"
  description="{Extension description}"
  type="stdio"
  command="npx"
  args={["-y", "@package/name"]}
  timeout={300}
  envVars={[
    { name: "API_KEY", label: "Description or placeholder value" }
  ]}
  apiKeyLink="https://example.com/api-keys"
  apiKeyLinkText="Service Access Token"
/>

<!-- For HTTP MCP servers -->
<GooseDesktopInstaller
  extensionId="{extension_id}"
  extensionName="{Extension Name}"
  description="{Extension description}"
  type="http"
  url="https://example-server.com/mcp"
  envVars={[                                    // also used for http request headers
    { name: "SOME_KEY", label: "Description or placeholder value" }
  ]}
  apiKeyLink="https://example.com/api-keys"
  apiKeyLinkText="Service Access Token"
/>
</TabItem> <TabItem value="cli" label="goose CLI">
<!-- For external STDIO MCP servers (npx, uvx, git, etc.) -->
<CLIExtensionInstructions
  name="{Extension Name}"
  description="{Extension description}"
  type="stdio"
  command="{full command with args}"
  timeout={300}
  envVars={[
    { key: "API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
  ]}
  infoNote={
    <>
      Get your API key from 
      <a href="https://example.com/api-keys" target="_blank" rel="noopener noreferrer">
        example.com
      </a> and paste it in.
    </>
  }
/>

<!-- For HTTP MCP servers -->
<CLIExtensionInstructions
  name="{Extension Name}"
  description="{Extension description}"
  type="http"
  url="https://example-server.com/mcp"
  timeout={300}
  envVars={[                                    // also used for http request headers
    { key: "API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" }
  ]}
  infoNote={
    <>
      Get your API key from{" "}
      <a href="https://example.com/api-keys" target="_blank" rel="noopener noreferrer">
        example.com
      </a>.
    </>
  }
/>
</TabItem> </Tabs>

Example Usage

{describe any environment setup, access controls, and what you want to accomplish.}

goose Prompt

exact prompt

goose Output

:::note Desktop

{exact output}

:::