-
Notifications
You must be signed in to change notification settings - Fork 38
Add comprehensive GitHub MCP Server configuration and access control specification #11989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot add support for existing GitHub tool features : toolsets and tools |
…ol spec Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added comprehensive documentation for Changes:
The specification now clarifies how tool selection (
|
|
@copilot rename allowed-repos to repos, allowed-roles to roles, |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot rename allow-private-repos to private-repos |
|
@copilot add remote vs local mode for completion |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added Changes:
Mode options:
|
|
@copilot review specification and current tools.github implementation to spot missed features (some features are new like repos/role). |
…rgs, lockdown, app Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Reviewed implementation in Added Documentation:
Added Examples:
The specification now documents all 9 GitHub MCP server configuration fields with 11 comprehensive examples. |
Provides complete W3C-style specification for GitHub MCP server configuration, documenting all 9 existing configuration fields and introducing 3 new access control extensions for repository scoping, role-based permissions, and public/private boundaries at the MCP Gateway layer.
Configuration Fields
Existing GitHub MCP Server Features (Complete Documentation)
mode- Deployment mode selectionMode Comparison:
https://api.githubcopilot.com/mcp/, fast initialization, no Docker requiredtoolsets- Toolset-based tool selection (recommended)tools- Individual tool filtering (alternative)read-only- Write operation restrictionsgithub-token- Custom authentication tokenversion- Docker image pinning (local mode only)args- Docker runtime arguments (local mode only)lockdown- Repository isolationapp- GitHub App authenticationAccess Control Extensions (This Specification)
repos- Repository scoping with wildcardsroles- Permission-based filteringprivate-repos- Visibility enforcementSpecification Structure
Architecture
Access control enforced at gateway middleware layer:
toolsetsortools)repospatterns (OR logic)rolesprivate-reposKey Principle: Tool selection determines what operations are possible; access control determines where operations are permitted.
File
specs/github-mcp-access-control-specification.md(2,026 lines)mode- Remote vs local deploymenttoolsets- Toolset-based tool selectiontools- Individual tool filteringread-only- Write operation restrictionsgithub-token- Custom authenticationversion- Docker image pinning (local mode)args- Docker runtime arguments (local mode)lockdown- Repository isolationapp- GitHub App authenticationrepos,roles,private-repos)Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.