You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add CLI flag and config support for feature flags in the local server:
- Add --features flag to main.go (StringSlice, comma-separated)
- Add EnabledFeatures field to StdioServerConfig and MCPServerConfig
- Create createFeatureChecker() that builds a set from enabled features
- Wire WithFeatureChecker() into the toolset group filter chain
This enables tools/resources/prompts that have FeatureFlagEnable set to
a flag name that is passed via --features. The checker uses a simple
set membership test for O(1) lookup.
Usage:
github-mcp-server stdio --features=my_feature,another_feature
GITHUB_FEATURES=my_feature github-mcp-server stdio
Copy file name to clipboardExpand all lines: README.md
+1-6Lines changed: 1 addition & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -384,6 +384,7 @@ You can also configure specific tools using the `--tools` flag. Tools can be use
384
384
- Tools, toolsets, and dynamic toolsets can all be used together
385
385
- Read-only mode takes priority: write tools are skipped if `--read-only` is set, even if explicitly requested via `--tools`
386
386
- Tool names must match exactly (e.g., `get_file_contents`, not `getFileContents`). Invalid tool names will cause the server to fail at startup with an error message
387
+
- When tools are renamed, old names are preserved as aliases for backward compatibility. See [Deprecated Tool Aliases](docs/deprecated-tool-aliases.md) for details.
387
388
388
389
### Using Toolsets With Docker
389
390
@@ -459,7 +460,6 @@ The following sets of tools are available:
459
460
|`code_security`| Code security related tools, such as GitHub Code Scanning |
460
461
|`dependabot`| Dependabot tools |
461
462
|`discussions`| GitHub Discussions related tools |
462
-
|`experiments`| Experimental features that are not considered stable yet |
463
463
|`gists`| GitHub Gist related tools |
464
464
|`git`| GitHub Git API related tools for low-level Git operations |
465
465
|`issues`| GitHub Issues related tools |
@@ -718,11 +718,6 @@ The following sets of tools are available:
718
718
-`owner`: Repository owner (string, required)
719
719
-`repo`: Repository name (string, required)
720
720
721
-
-**get_label** - Get a specific label from a repository.
722
-
-`name`: Label name. (string, required)
723
-
-`owner`: Repository owner (username or organization name) (string, required)
724
-
-`repo`: Repository name (string, required)
725
-
726
721
-**issue_read** - Get issue details
727
722
-`issue_number`: The number of the issue (number, required)
728
723
-`method`: The read operation to perform on a single issue.
// Add the context toolset row (handled separately in README)
134
130
lines=append(lines, "| `context` | **Strongly recommended**: Tools that provide context about the current user and GitHub context you are operating in |")
135
131
136
-
// Get all toolsets except context (which is handled separately above)
137
-
vartoolsetNames []string
138
-
forname:=rangetsg.Toolsets {
139
-
ifname!="context"&&name!="dynamic" { // Skip context and dynamic toolsets as they're handled separately
This document tracks tool renames in the GitHub MCP Server. When tools are renamed, the old names are preserved as aliases for backward compatibility. Using a deprecated alias will still work, but clients should migrate to the new canonical name.
4
+
5
+
## Current Deprecations
6
+
7
+
<!-- START AUTOMATED ALIASES -->
8
+
| Old Name | New Name |
9
+
|----------|----------|
10
+
|*(none currently)*||
11
+
<!-- END AUTOMATED ALIASES -->
12
+
13
+
## How It Works
14
+
15
+
When a tool is renamed:
16
+
17
+
1. The old name is added to `DeprecatedToolAliases` in [pkg/github/deprecated_tool_aliases.go](../pkg/github/deprecated_tool_aliases.go)
18
+
2. Clients using the old name will receive the new tool
19
+
3. A deprecation notice is logged when the alias is used
20
+
21
+
## For Developers
22
+
23
+
To deprecate a tool name when renaming:
24
+
25
+
```go
26
+
varDeprecatedToolAliases = map[string]string{
27
+
"old_tool_name": "new_tool_name",
28
+
}
29
+
```
30
+
31
+
The alias resolution happens at server startup, ensuring backward compatibility for existing client configurations.
0 commit comments