diff --git a/documentation/docs/mcp/github-mcp.md b/documentation/docs/mcp/github-mcp.md index 497ebe15ea99..5403521e2adf 100644 --- a/documentation/docs/mcp/github-mcp.md +++ b/documentation/docs/mcp/github-mcp.md @@ -10,66 +10,294 @@ import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructi -This tutorial covers how to add the [GitHub MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/github) as a Goose extension to enable file operations, repository management, search functionality, and more. +This tutorial covers how to add the [GitHub MCP Server](https://github.com/github/github-mcp-server) as a Goose extension to enable file operations, repository management, search functionality, and more. :::tip TLDR - [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol%2Fserver-github&id=github&name=GitHub&description=GitHub%20API&env=GITHUB_PERSONAL_ACCESS_TOKEN%3DGitHub%20Personal%20Access%20Token) + Use `Add custom extension` in Settings → Extensions to add a `Streamable HTTP` extension type with: - **Command** - ```sh - npx -y @modelcontextprotocol/server-github - ``` + Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with: - **Environment Variable** + **Endpoint URL** + ``` + https://api.githubcopilot.com/mcp/ ``` - GITHUB_PERSONAL_ACCESS_TOKEN: + **Custom Request Header** + ``` + Authorization: Bearer ``` ::: ## Configuration - -:::info -Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`. -::: +These steps configure the Remote MCP Server. For other deployment options, see the [official GitHub MCP Server documentation](https://github.com/github/github-mcp-server). - 1. [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol%2Fserver-github&id=github&name=GitHub&description=GitHub%20API&env=GITHUB_PERSONAL_ACCESS_TOKEN%3DGitHub%20Personal%20Access%20Token) - 2. Press `Yes` to confirm the installation - 3. Obtain a [GitHub Personal Access Token](https://github.com/settings/personal-access-tokens) and paste it in - 4. Click `Save Configuration` - 5. Scroll to the top and click `Exit` from the upper left corner + 1. Obtain a [GitHub Personal Access Token](https://github.com/settings/personal-access-tokens) + 2. Click the gear icon `⚙️` in the top right corner + 3. Click `Advanced settings` + 4. Under `Extensions`, click `Add custom extension` + 5. On the `Add custom extension` modal, enter the following: + - **Extension Name**: GitHub + - **Type**: Streamable HTTP + - **Endpoint**: `https://api.githubcopilot.com/mcp/` + - **Request Headers**: + - **Header name**: `Authorization` + - **Value**: `Bearer ` + 6. Click `+ Add` to save the header + 7. Click `Add Extension` to save the extension + + 1. Run the `configure` command: + ```sh + goose configure + ``` + + 2. Choose to add a `Remote Extension (Streaming HTTP)` + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◆ What type of extension would you like to add? + │ ○ Built-in Extension + │ ○ Command-line Extension (Run a local command or script) + │ ○ Remote Extension (SSE) + // highlight-start + │ ● Remote Extension (Streaming HTTP) + // highlight-end + └ + ``` + + 3. Give your extension a name + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + // highlight-start + ◆ What would you like to call this extension? + │ github + // highlight-end + └ + ``` + + 4. Enter the Streaming HTTP endpoint URI + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + // highlight-start + ◆ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + // highlight-end + └ + ``` + + 5. Set the timeout + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + // highlight-start + ◆ Please set the timeout for this tool (in secs): + │ 300 + // highlight-end + └ + ``` + + 6. Choose whether to add a description + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + ◇ Please set the timeout for this tool (in secs): + │ 300 + │ + // highlight-start + ◆ Would you like to add a description? + │ No + // highlight-end + └ + ``` + + 7. Add a custom header for authentication + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + ◇ Please set the timeout for this tool (in secs): + │ 300 + │ + ◇ Would you like to add a description? + │ No + │ + // highlight-start + ◆ Would you like to add custom headers? + │ Yes + // highlight-end + └ + ``` + + 8. Enter the Authorization header + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + ◇ Please set the timeout for this tool (in secs): + │ 300 + │ + ◇ Would you like to add a description? + │ No + │ + ◇ Would you like to add custom headers? + │ Yes + │ + // highlight-start + ◆ Header name: + │ Authorization + // highlight-end + └ + ``` - - When creating your access token, you can specify the repositories and granular permissions you'd like Goose to have access to.{" "} - - Create one here - . - - } - /> + 9. Enter your [GitHub Personal Access Token](https://github.com/settings/personal-access-tokens) + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + ◇ Please set the timeout for this tool (in secs): + │ 300 + │ + ◇ Would you like to add a description? + │ No + │ + ◇ Would you like to add custom headers? + │ Yes + │ + ◇ Header name: + │ Authorization + │ + // highlight-start + ◆ Header value: + │ Bearer ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + // highlight-end + └ + ``` + 10. Choose not to add another header + ```sh + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Remote Extension (Streaming HTTP) + │ + ◇ What would you like to call this extension? + │ github + │ + ◇ What is the Streaming HTTP endpoint URI? + │ https://api.githubcopilot.com/mcp/ + │ + ◇ Please set the timeout for this tool (in secs): + │ 100 + │ + ◇ Would you like to add a description? + │ No + │ + ◇ Would you like to add custom headers? + │ Yes + │ + ◇ Header name: + │ Authorization + │ + ◇ Header value: + │ Bearer ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + │ + // highlight-start + ◆ Add another header? + │ No + │ + // highlight-end + └ Added github extension + ``` + ## Example Usage