diff --git a/README.md b/README.md
index dff62321b8..38cdb8c2fb 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ Built for developers who want to connect their AI tools to GitHub context and ca
## Remote GitHub MCP Server
-[](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D&quality=insiders)
+[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252F%2522%257D%257D) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252F%2522%257D%257D)
The remote GitHub MCP Server is hosted by GitHub and provides the easiest method for getting up and running. If your MCP host does not support remote MCP servers, don't worry! You can use the [local version of the GitHub MCP Server](https://github.com/github/github-mcp-server?tab=readme-ov-file#local-github-mcp-server) instead.
@@ -176,7 +176,7 @@ GitHub Enterprise Server does not support remote server hosting. Please refer to
## Local GitHub MCP Server
-[](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D&quality=insiders)
+[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522args%2522%253A%255B%2522run%2522%252C%2522-i%2522%252C%2522--rm%2522%252C%2522-e%2522%252C%2522GITHUB_PERSONAL_ACCESS_TOKEN%2522%252C%2522ghcr.io%252Fgithub%252Fgithub-mcp-server%2522%255D%252C%2522command%2522%253A%2522docker%2522%252C%2522env%2522%253A%257B%2522GITHUB_PERSONAL_ACCESS_TOKEN%2522%253A%2522%2524%257Binput%253Agithub_token%257D%2522%257D%257D%252C%2522inputs%2522%253A%255B%257B%2522description%2522%253A%2522GitHub%2520Personal%2520Access%2520Token%2522%252C%2522id%2522%253A%2522github_token%2522%252C%2522password%2522%253Atrue%252C%2522type%2522%253A%2522promptString%2522%257D%255D%257D) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522args%2522%253A%255B%2522run%2522%252C%2522-i%2522%252C%2522--rm%2522%252C%2522-e%2522%252C%2522GITHUB_PERSONAL_ACCESS_TOKEN%2522%252C%2522ghcr.io%252Fgithub%252Fgithub-mcp-server%2522%255D%252C%2522command%2522%253A%2522docker%2522%252C%2522env%2522%253A%257B%2522GITHUB_PERSONAL_ACCESS_TOKEN%2522%253A%2522%2524%257Binput%253Agithub_token%257D%2522%257D%257D%252C%2522inputs%2522%253A%255B%257B%2522description%2522%253A%2522GitHub%2520Personal%2520Access%2520Token%2522%252C%2522id%2522%253A%2522github_token%2522%252C%2522password%2522%253Atrue%252C%2522type%2522%253A%2522promptString%2522%257D%255D%257D)
### Prerequisites
diff --git a/cmd/github-mcp-server/generate_docs.go b/cmd/github-mcp-server/generate_docs.go
index 78ed8361a8..89d12d5508 100644
--- a/cmd/github-mcp-server/generate_docs.go
+++ b/cmd/github-mcp-server/generate_docs.go
@@ -3,7 +3,6 @@ package main
import (
"context"
"fmt"
- "net/url"
"os"
"slices"
"sort"
@@ -368,8 +367,12 @@ func generateRemoteToolsetsDoc() string {
// Add "default" and "all" meta toolsets first (special cases). The base
// URL serves the default toolset; /x/all enables every toolset at once.
metaIcon := octiconImg("apps", "../")
- fmt.Fprintf(&buf, "| %s
`default` | Default toolset | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2F%%22%%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Freadonly%%22%%7D) |\n", metaIcon)
- fmt.Fprintf(&buf, "| %s
`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/x/all | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Fx%%2Fall%%22%%7D) | [read-only](https://api.githubcopilot.com/mcp/x/all/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Fx%%2Fall%%2Freadonly%%22%%7D) |\n", metaIcon)
+ defaultInstall := mustHTTPToolsetInstallLink("github", "https://api.githubcopilot.com/mcp/")
+ defaultReadonlyInstall := mustHTTPToolsetInstallLink("github", "https://api.githubcopilot.com/mcp/readonly")
+ allInstall := mustHTTPToolsetInstallLink("gh-all", "https://api.githubcopilot.com/mcp/x/all")
+ allReadonlyInstall := mustHTTPToolsetInstallLink("gh-all", "https://api.githubcopilot.com/mcp/x/all/readonly")
+ fmt.Fprintf(&buf, "| %s
`default` | Default toolset | https://api.githubcopilot.com/mcp/ | %s | [read-only](https://api.githubcopilot.com/mcp/readonly) | %s |\n", metaIcon, defaultInstall, defaultReadonlyInstall)
+ fmt.Fprintf(&buf, "| %s
`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/x/all | %s | [read-only](https://api.githubcopilot.com/mcp/x/all/readonly) | %s |\n", metaIcon, allInstall, allReadonlyInstall)
// AvailableToolsets() returns toolsets that have tools, sorted by ID
// Exclude context (handled separately)
@@ -379,16 +382,8 @@ func generateRemoteToolsetsDoc() string {
apiURL := fmt.Sprintf("https://api.githubcopilot.com/mcp/x/%s", idStr)
readonlyURL := fmt.Sprintf("https://api.githubcopilot.com/mcp/x/%s/readonly", idStr)
- // Create install config JSON (URL encoded)
- installConfig := url.QueryEscape(fmt.Sprintf(`{"type": "http","url": "%s"}`, apiURL))
- readonlyConfig := url.QueryEscape(fmt.Sprintf(`{"type": "http","url": "%s"}`, readonlyURL))
-
- // Fix URL encoding to use %20 instead of + for spaces
- installConfig = strings.ReplaceAll(installConfig, "+", "%20")
- readonlyConfig = strings.ReplaceAll(readonlyConfig, "+", "%20")
-
- installLink := fmt.Sprintf("[Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-%s&config=%s)", idStr, installConfig)
- readonlyInstallLink := fmt.Sprintf("[Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-%s&config=%s)", idStr, readonlyConfig)
+ installLink := mustHTTPToolsetInstallLink(fmt.Sprintf("gh-%s", idStr), apiURL)
+ readonlyInstallLink := mustHTTPToolsetInstallLink(fmt.Sprintf("gh-%s", idStr), readonlyURL)
icon := octiconImg(ts.Icon, "../")
fmt.Fprintf(&buf, "| %s
`%s` | %s | %s | %s | [read-only](%s) | %s |\n",
@@ -419,16 +414,8 @@ func generateRemoteOnlyToolsetsDoc() string {
apiURL := fmt.Sprintf("https://api.githubcopilot.com/mcp/x/%s", idStr)
readonlyURL := fmt.Sprintf("https://api.githubcopilot.com/mcp/x/%s/readonly", idStr)
- // Create install config JSON (URL encoded)
- installConfig := url.QueryEscape(fmt.Sprintf(`{"type": "http","url": "%s"}`, apiURL))
- readonlyConfig := url.QueryEscape(fmt.Sprintf(`{"type": "http","url": "%s"}`, readonlyURL))
-
- // Fix URL encoding to use %20 instead of + for spaces
- installConfig = strings.ReplaceAll(installConfig, "+", "%20")
- readonlyConfig = strings.ReplaceAll(readonlyConfig, "+", "%20")
-
- installLink := fmt.Sprintf("[Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-%s&config=%s)", idStr, installConfig)
- readonlyInstallLink := fmt.Sprintf("[Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-%s&config=%s)", idStr, readonlyConfig)
+ installLink := mustHTTPToolsetInstallLink(fmt.Sprintf("gh-%s", idStr), apiURL)
+ readonlyInstallLink := mustHTTPToolsetInstallLink(fmt.Sprintf("gh-%s", idStr), readonlyURL)
icon := octiconImg(ts.Icon, "../")
fmt.Fprintf(&buf, "| %s
`%s` | %s | %s | %s | [read-only](%s) | %s |\n",
@@ -445,6 +432,14 @@ func generateRemoteOnlyToolsetsDoc() string {
return strings.TrimSuffix(buf.String(), "\n")
}
+func mustHTTPToolsetInstallLink(name, serverURL string) string {
+ link, err := github.VSCodeHTTPToolsetInstallLink(name, serverURL)
+ if err != nil {
+ panic(fmt.Sprintf("failed to build VS Code install link for %s: %v", name, err))
+ }
+ return link
+}
+
func generateDeprecatedAliasesDocs(docsPath string) error {
// Read the current file
content, err := os.ReadFile(docsPath) //#nosec G304
diff --git a/docs/remote-server.md b/docs/remote-server.md
index aa083d2f29..5be92f6b55 100644
--- a/docs/remote-server.md
+++ b/docs/remote-server.md
@@ -1,6 +1,6 @@
# Remote GitHub MCP Server 🚀
-[](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D&quality=insiders)
+[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252F%2522%257D%257D) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252F%2522%257D%257D)
Easily connect to the GitHub MCP Server using the hosted version – no local setup or runtime required.
@@ -19,26 +19,26 @@ Below is a table of available toolsets for the remote GitHub MCP Server. Each to
| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |
| ---- | ----------- | ------- | ------------------------- | -------------- | ----------------------------------- |
-| 
`default` | Default toolset | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Freadonly%22%7D) |
-| 
`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/x/all | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fall%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/all/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fall%2Freadonly%22%7D) |
-| 
`actions` | GitHub Actions workflows and CI/CD operations | https://api.githubcopilot.com/mcp/x/actions | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-actions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Factions%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/actions/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-actions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Factions%2Freadonly%22%7D) |
-| 
`code_security` | Code security related tools, such as GitHub Code Scanning | https://api.githubcopilot.com/mcp/x/code_security | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-code_security&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcode_security%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/code_security/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-code_security&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcode_security%2Freadonly%22%7D) |
-| 
`copilot` | Copilot related tools | https://api.githubcopilot.com/mcp/x/copilot | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-copilot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcopilot%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/copilot/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-copilot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcopilot%2Freadonly%22%7D) |
-| 
`dependabot` | Dependabot tools | https://api.githubcopilot.com/mcp/x/dependabot | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-dependabot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdependabot%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/dependabot/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-dependabot&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdependabot%2Freadonly%22%7D) |
-| 
`discussions` | GitHub Discussions related tools | https://api.githubcopilot.com/mcp/x/discussions | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-discussions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdiscussions%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/discussions/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-discussions&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fdiscussions%2Freadonly%22%7D) |
-| 
`gists` | GitHub Gist related tools | https://api.githubcopilot.com/mcp/x/gists | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-gists&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgists%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/gists/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-gists&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgists%2Freadonly%22%7D) |
-| 
`git` | GitHub Git API related tools for low-level Git operations | https://api.githubcopilot.com/mcp/x/git | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-git&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgit%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/git/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-git&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgit%2Freadonly%22%7D) |
-| 
`issues` | GitHub Issues related tools | https://api.githubcopilot.com/mcp/x/issues | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-issues&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fissues%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/issues/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-issues&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fissues%2Freadonly%22%7D) |
-| 
`labels` | GitHub Labels related tools | https://api.githubcopilot.com/mcp/x/labels | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-labels&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Flabels%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/labels/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-labels&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Flabels%2Freadonly%22%7D) |
-| 
`notifications` | GitHub Notifications related tools | https://api.githubcopilot.com/mcp/x/notifications | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-notifications&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fnotifications%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/notifications/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-notifications&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fnotifications%2Freadonly%22%7D) |
-| 
`orgs` | GitHub Organization related tools | https://api.githubcopilot.com/mcp/x/orgs | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-orgs&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Forgs%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/orgs/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-orgs&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Forgs%2Freadonly%22%7D) |
-| 
`projects` | GitHub Projects related tools | https://api.githubcopilot.com/mcp/x/projects | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-projects&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fprojects%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/projects/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-projects&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fprojects%2Freadonly%22%7D) |
-| 
`pull_requests` | GitHub Pull Request related tools | https://api.githubcopilot.com/mcp/x/pull_requests | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-pull_requests&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fpull_requests%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/pull_requests/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-pull_requests&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fpull_requests%2Freadonly%22%7D) |
-| 
`repos` | GitHub Repository related tools | https://api.githubcopilot.com/mcp/x/repos | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-repos&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Frepos%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/repos/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-repos&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Frepos%2Freadonly%22%7D) |
-| 
`secret_protection` | Secret protection related tools, such as GitHub Secret Scanning | https://api.githubcopilot.com/mcp/x/secret_protection | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-secret_protection&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fsecret_protection%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/secret_protection/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-secret_protection&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fsecret_protection%2Freadonly%22%7D) |
-| 
`security_advisories` | Security advisories related tools | https://api.githubcopilot.com/mcp/x/security_advisories | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-security_advisories&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fsecurity_advisories%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/security_advisories/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-security_advisories&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fsecurity_advisories%2Freadonly%22%7D) |
-| 
`stargazers` | GitHub Stargazers related tools | https://api.githubcopilot.com/mcp/x/stargazers | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-stargazers&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fstargazers%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/stargazers/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-stargazers&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fstargazers%2Freadonly%22%7D) |
-| 
`users` | GitHub User related tools | https://api.githubcopilot.com/mcp/x/users | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-users&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fusers%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/users/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-users&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fusers%2Freadonly%22%7D) |
+| 
`default` | Default toolset | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252F%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522github%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Freadonly%2522%257D%257D) |
+| 
`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/x/all | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-all%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fall%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/all/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-all%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fall%252Freadonly%2522%257D%257D) |
+| 
`actions` | GitHub Actions workflows and CI/CD operations | https://api.githubcopilot.com/mcp/x/actions | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-actions%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Factions%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/actions/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-actions%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Factions%252Freadonly%2522%257D%257D) |
+| 
`code_security` | Code security related tools, such as GitHub Code Scanning | https://api.githubcopilot.com/mcp/x/code_security | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-code_security%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcode_security%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/code_security/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-code_security%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcode_security%252Freadonly%2522%257D%257D) |
+| 
`copilot` | Copilot related tools | https://api.githubcopilot.com/mcp/x/copilot | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-copilot%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcopilot%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/copilot/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-copilot%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcopilot%252Freadonly%2522%257D%257D) |
+| 
`dependabot` | Dependabot tools | https://api.githubcopilot.com/mcp/x/dependabot | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-dependabot%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fdependabot%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/dependabot/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-dependabot%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fdependabot%252Freadonly%2522%257D%257D) |
+| 
`discussions` | GitHub Discussions related tools | https://api.githubcopilot.com/mcp/x/discussions | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-discussions%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fdiscussions%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/discussions/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-discussions%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fdiscussions%252Freadonly%2522%257D%257D) |
+| 
`gists` | GitHub Gist related tools | https://api.githubcopilot.com/mcp/x/gists | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-gists%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgists%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/gists/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-gists%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgists%252Freadonly%2522%257D%257D) |
+| 
`git` | GitHub Git API related tools for low-level Git operations | https://api.githubcopilot.com/mcp/x/git | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-git%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgit%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/git/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-git%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgit%252Freadonly%2522%257D%257D) |
+| 
`issues` | GitHub Issues related tools | https://api.githubcopilot.com/mcp/x/issues | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-issues%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fissues%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/issues/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-issues%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fissues%252Freadonly%2522%257D%257D) |
+| 
`labels` | GitHub Labels related tools | https://api.githubcopilot.com/mcp/x/labels | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-labels%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Flabels%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/labels/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-labels%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Flabels%252Freadonly%2522%257D%257D) |
+| 
`notifications` | GitHub Notifications related tools | https://api.githubcopilot.com/mcp/x/notifications | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-notifications%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fnotifications%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/notifications/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-notifications%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fnotifications%252Freadonly%2522%257D%257D) |
+| 
`orgs` | GitHub Organization related tools | https://api.githubcopilot.com/mcp/x/orgs | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-orgs%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Forgs%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/orgs/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-orgs%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Forgs%252Freadonly%2522%257D%257D) |
+| 
`projects` | GitHub Projects related tools | https://api.githubcopilot.com/mcp/x/projects | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-projects%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fprojects%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/projects/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-projects%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fprojects%252Freadonly%2522%257D%257D) |
+| 
`pull_requests` | GitHub Pull Request related tools | https://api.githubcopilot.com/mcp/x/pull_requests | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-pull_requests%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fpull_requests%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/pull_requests/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-pull_requests%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fpull_requests%252Freadonly%2522%257D%257D) |
+| 
`repos` | GitHub Repository related tools | https://api.githubcopilot.com/mcp/x/repos | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-repos%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Frepos%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/repos/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-repos%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Frepos%252Freadonly%2522%257D%257D) |
+| 
`secret_protection` | Secret protection related tools, such as GitHub Secret Scanning | https://api.githubcopilot.com/mcp/x/secret_protection | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-secret_protection%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fsecret_protection%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/secret_protection/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-secret_protection%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fsecret_protection%252Freadonly%2522%257D%257D) |
+| 
`security_advisories` | Security advisories related tools | https://api.githubcopilot.com/mcp/x/security_advisories | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-security_advisories%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fsecurity_advisories%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/security_advisories/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-security_advisories%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fsecurity_advisories%252Freadonly%2522%257D%257D) |
+| 
`stargazers` | GitHub Stargazers related tools | https://api.githubcopilot.com/mcp/x/stargazers | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-stargazers%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fstargazers%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/stargazers/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-stargazers%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fstargazers%252Freadonly%2522%257D%257D) |
+| 
`users` | GitHub User related tools | https://api.githubcopilot.com/mcp/x/users | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-users%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fusers%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/users/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-users%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fusers%252Freadonly%2522%257D%257D) |
### Additional _Remote_ Server Toolsets
@@ -48,8 +48,8 @@ These toolsets are only available in the remote GitHub MCP Server and are not in
| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |
| ---- | ----------- | ------- | ------------------------- | -------------- | ----------------------------------- |
-| 
`copilot_spaces` | Copilot Spaces tools | https://api.githubcopilot.com/mcp/x/copilot_spaces | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-copilot_spaces&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcopilot_spaces%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/copilot_spaces/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-copilot_spaces&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fcopilot_spaces%2Freadonly%22%7D) |
-| 
`github_support_docs_search` | Retrieve documentation to answer GitHub product and support questions. Topics include: GitHub Actions Workflows, Authentication, ... | https://api.githubcopilot.com/mcp/x/github_support_docs_search | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-github_support_docs_search&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgithub_support_docs_search%22%7D) | [read-only](https://api.githubcopilot.com/mcp/x/github_support_docs_search/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-github_support_docs_search&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2Fx%2Fgithub_support_docs_search%2Freadonly%22%7D) |
+| 
`copilot_spaces` | Copilot Spaces tools | https://api.githubcopilot.com/mcp/x/copilot_spaces | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-copilot_spaces%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcopilot_spaces%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/copilot_spaces/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-copilot_spaces%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fcopilot_spaces%252Freadonly%2522%257D%257D) |
+| 
`github_support_docs_search` | Retrieve documentation to answer GitHub product and support questions. Topics include: GitHub Actions Workflows, Authentication, ... | https://api.githubcopilot.com/mcp/x/github_support_docs_search | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-github_support_docs_search%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgithub_support_docs_search%2522%257D%257D) | [read-only](https://api.githubcopilot.com/mcp/x/github_support_docs_search/readonly) | [Install](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522gh-github_support_docs_search%2522%252C%2522config%2522%253A%257B%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.githubcopilot.com%252Fmcp%252Fx%252Fgithub_support_docs_search%252Freadonly%2522%257D%257D) |
### Optional Headers
diff --git a/pkg/github/vscode_install.go b/pkg/github/vscode_install.go
new file mode 100644
index 0000000000..8b897be5b9
--- /dev/null
+++ b/pkg/github/vscode_install.go
@@ -0,0 +1,61 @@
+package github
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/url"
+ "strings"
+)
+
+const vscodeRedirectBase = "https://insiders.vscode.dev/redirect"
+
+// VSCodeInstallPayload is the JSON payload passed to the vscode(:-insiders):mcp/install handler.
+type VSCodeInstallPayload struct {
+ Name string `json:"name"`
+ Config map[string]any `json:"config"`
+ Inputs []map[string]any `json:"inputs,omitempty"`
+}
+
+// VSCodeInstallRedirectURL builds a one-click VS Code MCP install redirect URL.
+// When insiders is true, the link targets VS Code Insiders via the vscode-insiders: protocol
+// instead of the broken quality=insiders query parameter on /redirect/mcp/install.
+func VSCodeInstallRedirectURL(name string, config map[string]any, inputs []map[string]any, insiders bool) (string, error) {
+ payload := VSCodeInstallPayload{
+ Name: name,
+ Config: config,
+ Inputs: inputs,
+ }
+
+ payloadJSON, err := json.Marshal(payload)
+ if err != nil {
+ return "", fmt.Errorf("failed to marshal VS Code install payload: %w", err)
+ }
+
+ scheme := "vscode"
+ if insiders {
+ scheme = "vscode-insiders"
+ }
+
+ protocolURL := fmt.Sprintf("%s:mcp/install?%s", scheme, url.QueryEscape(string(payloadJSON)))
+ // url.QueryEscape uses + for spaces; VS Code expects %20.
+ protocolURL = strings.ReplaceAll(protocolURL, "+", "%20")
+
+ return fmt.Sprintf("%s?url=%s", vscodeRedirectBase, url.QueryEscape(protocolURL)), nil
+}
+
+// VSCodeInstallRedirectURLHTTP builds a redirect URL for an HTTP MCP server config.
+func VSCodeInstallRedirectURLHTTP(name, serverURL string, insiders bool) (string, error) {
+ return VSCodeInstallRedirectURL(name, map[string]any{
+ "type": "http",
+ "url": serverURL,
+ }, nil, insiders)
+}
+
+// VSCodeHTTPToolsetInstallLink returns a markdown install link for a remote HTTP toolset.
+func VSCodeHTTPToolsetInstallLink(name, serverURL string) (string, error) {
+ installURL, err := VSCodeInstallRedirectURLHTTP(name, serverURL, false)
+ if err != nil {
+ return "", err
+ }
+ return fmt.Sprintf("[Install](%s)", installURL), nil
+}
diff --git a/pkg/github/vscode_install_test.go b/pkg/github/vscode_install_test.go
new file mode 100644
index 0000000000..4b2d48a54f
--- /dev/null
+++ b/pkg/github/vscode_install_test.go
@@ -0,0 +1,118 @@
+package github
+
+import (
+ "net/url"
+ "strings"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+func TestVSCodeInstallRedirectURLHTTP(t *testing.T) {
+ t.Parallel()
+
+ tests := []struct {
+ name string
+ insiders bool
+ wantSub []string
+ notWant []string
+ }{
+ {
+ name: "stable uses vscode protocol redirect",
+ insiders: false,
+ wantSub: []string{
+ "https://insiders.vscode.dev/redirect?url=",
+ "vscode%3Amcp%2Finstall%3F",
+ "%2522name%2522%253A%2522github%2522",
+ "%2522type%2522%253A%2522http%2522",
+ "api.githubcopilot.com%252Fmcp%252F",
+ },
+ notWant: []string{"quality=insiders", "vscode-insiders", "/redirect/mcp/install"},
+ },
+ {
+ name: "insiders uses vscode-insiders protocol redirect",
+ insiders: true,
+ wantSub: []string{
+ "https://insiders.vscode.dev/redirect?url=",
+ "vscode-insiders%3Amcp%2Finstall%3F",
+ "%2522name%2522%253A%2522github%2522",
+ "%2522config%2522%253A%257B",
+ "%2522type%2522%253A%2522http%2522",
+ "api.githubcopilot.com%252Fmcp%252F",
+ },
+ notWant: []string{"quality=insiders", "/redirect/mcp/install"},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ t.Parallel()
+
+ got, err := VSCodeInstallRedirectURLHTTP("github", "https://api.githubcopilot.com/mcp/", tt.insiders)
+ require.NoError(t, err)
+
+ for _, sub := range tt.wantSub {
+ assert.Contains(t, got, sub)
+ }
+ for _, sub := range tt.notWant {
+ assert.NotContains(t, got, sub)
+ }
+ })
+ }
+}
+
+func TestVSCodeInstallRedirectURL_withInputs(t *testing.T) {
+ t.Parallel()
+
+ inputs := []map[string]any{
+ {
+ "id": "github_token",
+ "type": "promptString",
+ "description": "GitHub Personal Access Token",
+ "password": true,
+ },
+ }
+ config := map[string]any{
+ "command": "docker",
+ "args": []string{"run", "-i", "--rm", "ghcr.io/github/github-mcp-server"},
+ }
+
+ got, err := VSCodeInstallRedirectURL("github", config, inputs, true)
+ require.NoError(t, err)
+
+ assert.Contains(t, got, "vscode-insiders%3Amcp%2Finstall%3F")
+ assert.Contains(t, got, "%2522inputs%2522%253A%255B")
+ assert.NotContains(t, got, "quality=insiders")
+}
+
+func TestVSCodeInstallRedirectURL_decodesToNestedConfig(t *testing.T) {
+ t.Parallel()
+
+ installURL, err := VSCodeInstallRedirectURLHTTP("github", "https://api.githubcopilot.com/mcp/", true)
+ require.NoError(t, err)
+
+ parsed, err := url.Parse(installURL)
+ require.NoError(t, err)
+
+ redirectTarget, err := url.QueryUnescape(parsed.Query().Get("url"))
+ require.NoError(t, err)
+
+ _, payload, ok := strings.Cut(redirectTarget, "mcp/install?")
+ require.True(t, ok)
+
+ decodedPayload, err := url.QueryUnescape(payload)
+ require.NoError(t, err)
+
+ assert.JSONEq(t, `{"name":"github","config":{"type":"http","url":"https://api.githubcopilot.com/mcp/"}}`, decodedPayload)
+}
+
+func TestVSCodeHTTPToolsetInstallLink(t *testing.T) {
+ t.Parallel()
+
+ link, err := VSCodeHTTPToolsetInstallLink("gh-issues", "https://api.githubcopilot.com/mcp/x/issues")
+ require.NoError(t, err)
+
+ assert.True(t, strings.HasPrefix(link, "[Install](https://insiders.vscode.dev/redirect?url="))
+ assert.Contains(t, link, "%2522name%2522%253A%2522gh-issues%2522")
+}