Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -530,21 +530,21 @@ The local GitHub MCP Server offers an insiders version with early access to new
1. **Using Command Line Argument**:

```bash
./github-mcp-server --insider-mode
./github-mcp-server --insiders-mode
```

2. **Using Environment Variable**:

```bash
GITHUB_INSIDER_MODE=true ./github-mcp-server
GITHUB_INSIDERS_MODE=true ./github-mcp-server
```

When using Docker:

```bash
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_INSIDER_MODE=true \
-e GITHUB_INSIDERS_MODE=true \
ghcr.io/github/github-mcp-server
```

Expand Down
6 changes: 3 additions & 3 deletions cmd/github-mcp-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ var (
LogFilePath: viper.GetString("log-file"),
ContentWindowSize: viper.GetInt("content-window-size"),
LockdownMode: viper.GetBool("lockdown-mode"),
InsiderMode: viper.GetBool("insider-mode"),
InsidersMode: viper.GetBool("insiders-mode"),
RepoAccessCacheTTL: &ttl,
}
return ghmcp.RunStdioServer(stdioServerConfig)
Expand All @@ -109,7 +109,7 @@ func init() {
rootCmd.PersistentFlags().String("gh-host", "", "Specify the GitHub hostname (for GitHub Enterprise etc.)")
rootCmd.PersistentFlags().Int("content-window-size", 5000, "Specify the content window size")
rootCmd.PersistentFlags().Bool("lockdown-mode", false, "Enable lockdown mode")
rootCmd.PersistentFlags().Bool("insider-mode", false, "Enable insider features")
rootCmd.PersistentFlags().Bool("insiders-mode", false, "Enable insiders features")
rootCmd.PersistentFlags().Duration("repo-access-cache-ttl", 5*time.Minute, "Override the repo access cache TTL (e.g. 1m, 0s to disable)")

// Bind flag to viper
Expand All @@ -124,7 +124,7 @@ func init() {
_ = viper.BindPFlag("host", rootCmd.PersistentFlags().Lookup("gh-host"))
_ = viper.BindPFlag("content-window-size", rootCmd.PersistentFlags().Lookup("content-window-size"))
_ = viper.BindPFlag("lockdown-mode", rootCmd.PersistentFlags().Lookup("lockdown-mode"))
_ = viper.BindPFlag("insider-mode", rootCmd.PersistentFlags().Lookup("insider-mode"))
_ = viper.BindPFlag("insiders-mode", rootCmd.PersistentFlags().Lookup("insiders-mode"))
_ = viper.BindPFlag("repo-access-cache-ttl", rootCmd.PersistentFlags().Lookup("repo-access-cache-ttl"))

// Add subcommands
Expand Down
2 changes: 1 addition & 1 deletion docs/remote-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ The Remote GitHub MCP server has optional headers equivalent to the Local server
- Equivalent to `GITHUB_LOCKDOWN_MODE` env var for Local server.
- If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.
- `X-MCP-Insiders`: Enables insiders mode for early access to new features.
- Equivalent to `GITHUB_INSIDER_MODE` env var or `--insider-mode` flag for Local server.
- Equivalent to `GITHUB_INSIDERS_MODE` env var or `--insiders-mode` flag for Local server.
- If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.

> **Looking for examples?** See the [Server Configuration Guide](./server-configuration.md) for common recipes like minimal setups, read-only mode, and combining tools with toolsets.
Expand Down
12 changes: 6 additions & 6 deletions internal/ghmcp/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ type MCPServerConfig struct {
// LockdownMode indicates if we should enable lockdown mode
LockdownMode bool

// Insider indicates if we should enable experimental features
InsiderMode bool
// InsidersMode indicates if we should enable experimental features
InsidersMode bool

// Logger is used for logging within the server
Logger *slog.Logger
Expand Down Expand Up @@ -227,7 +227,7 @@ func NewMCPServer(cfg MCPServerConfig) (*mcp.Server, error) {
cfg.Translator,
github.FeatureFlags{
LockdownMode: cfg.LockdownMode,
InsiderMode: cfg.InsiderMode,
InsidersMode: cfg.InsidersMode,
},
cfg.ContentWindowSize,
featureChecker,
Expand Down Expand Up @@ -331,8 +331,8 @@ type StdioServerConfig struct {
// LockdownMode indicates if we should enable lockdown mode
LockdownMode bool

// InsiderMode indicates if we should enable experimental features
InsiderMode bool
// InsidersMode indicates if we should enable experimental features
InsidersMode bool

// RepoAccessCacheTTL overrides the default TTL for repository access cache entries.
RepoAccessCacheTTL *time.Duration
Expand Down Expand Up @@ -390,7 +390,7 @@ func RunStdioServer(cfg StdioServerConfig) error {
Translator: t,
ContentWindowSize: cfg.ContentWindowSize,
LockdownMode: cfg.LockdownMode,
InsiderMode: cfg.InsiderMode,
InsidersMode: cfg.InsidersMode,
Logger: logger,
RepoAccessTTL: cfg.RepoAccessCacheTTL,
TokenScopes: tokenScopes,
Expand Down
2 changes: 1 addition & 1 deletion internal/ghmcp/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestNewMCPServer_CreatesSuccessfully(t *testing.T) {
Translator: translations.NullTranslationHelper,
ContentWindowSize: 5000,
LockdownMode: false,
InsiderMode: false,
InsidersMode: false,
}

// Create the server
Expand Down
2 changes: 1 addition & 1 deletion pkg/github/feature_flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ package github
// FeatureFlags defines runtime feature toggles that adjust tool behavior.
type FeatureFlags struct {
LockdownMode bool
InsiderMode bool
InsidersMode bool
}
10 changes: 5 additions & 5 deletions pkg/github/feature_flags_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func HelloWorldTool(t translations.TranslationHelperFunc) inventory.ServerTool {
if deps.IsFeatureEnabled(ctx, RemoteMCPEnthusiasticGreeting) {
greeting += " Welcome to the future of MCP! 🎉"
}
if deps.GetFlags().InsiderMode {
if deps.GetFlags().InsidersMode {
greeting += " Experimental features are enabled! 🚀"
}

Expand Down Expand Up @@ -140,17 +140,17 @@ func TestHelloWorld_ConditionalBehavior_Config(t *testing.T) {

tests := []struct {
name string
insiderMode bool
insidersMode bool
expectedGreeting string
}{
{
name: "Experimental disabled - default greeting",
insiderMode: false,
insidersMode: false,
expectedGreeting: "Hello, world!",
},
{
name: "Experimental enabled - experimental greeting",
insiderMode: true,
insidersMode: true,
expectedGreeting: "Hello, world! Experimental features are enabled! 🚀",
},
}
Expand All @@ -163,7 +163,7 @@ func TestHelloWorld_ConditionalBehavior_Config(t *testing.T) {
deps := NewBaseDeps(
nil, nil, nil, nil,
translations.NullTranslationHelper,
FeatureFlags{InsiderMode: tt.insiderMode},
FeatureFlags{InsidersMode: tt.insidersMode},
0,
nil,
)
Expand Down
2 changes: 1 addition & 1 deletion pkg/github/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func stubRepoAccessCache(client *githubv4.Client, ttl time.Duration) *lockdown.R
func stubFeatureFlags(enabledFlags map[string]bool) FeatureFlags {
return FeatureFlags{
LockdownMode: enabledFlags["lockdown-mode"],
InsiderMode: enabledFlags["insider-mode"],
InsidersMode: enabledFlags["insiders-mode"],
}
}

Expand Down
Loading