TL;DR
Users need clear, client-specific setup instructions with explicit GitHub token permissions. Currently, setting up the remote GitHub MCP server requires guessing which of 35+ token scopes to select and figuring out different client syntax. This issue proposes adding comprehensive setup guides for Claude Code CLI, Claude Desktop, and Cursor, plus a detailed permission mapping that connects security goals to specific GitHub scopes.
Related Work
This proposal complements existing PR #498 which adds basic Claude Code local setup. However, #498 only covers local Docker setup and doesn't address:
- Remote MCP server setup (the new hosted option)
- Detailed token permissions (which scopes to grant/deny)
- Multiple client support (Cursor, Claude Desktop)
- Security best practices (1Password, token naming)
Our proposal can either:
Problem Statement
Following the successful merge of #514 which added PAT configuration examples, there's still a gap in documentation for client-specific setup instructions. Users currently need to:
- Guess which GitHub token scopes to select from 35+ available options
- Figure out client-specific syntax (different flags, formats)
- Understand security implications without clear guidance
As noted in this comment on #514, users coming from Claude Code would particularly benefit from specific permission mappings that connect the security approach to actual GitHub token scopes.
This is especially challenging when different MCP servers (like Hugging Face) provide comprehensive client-specific setup instructions, setting user expectations.
Current Issues This Would Address
Proposed Solution
Add comprehensive client-specific setup documentation that includes:
1. Client Setup Instructions
Similar to Hugging Face's approach, provide setup instructions for popular clients:
Claude Code (CLI)
# Using GitHub PAT
claude mcp add -t http github-remote https://api.githubcopilot.com/mcp/ -H "Authorization: Bearer YOUR_GITHUB_TOKEN"
# Using 1Password integration
claude mcp add -t http github-remote https://api.githubcopilot.com/mcp/ -H "Authorization: Bearer $(op read 'op://Private/github-mcp-token/token')"
Claude Desktop
{
"mcpServers": {
"github-remote": {
"url": "https://api.githubcopilot.com/mcp/",
"authorization_token": "YOUR_GITHUB_TOKEN"
}
}
}
Cursor
{
"mcpServers": {
"github-remote": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer YOUR_GITHUB_TOKEN"
}
}
}
}
2. MCP Server Naming Convention
We propose establishing a naming convention for MCP servers:
- Format:
[provider]-[location] (e.g., github-remote, github-local)
- Benefits:
- Clear distinction between remote and local servers
- Prevents naming conflicts when using both
- Consistent with other MCP integrations
- The
mcp prefix is implicit in the context
3. Detailed PAT Permissions Guide
Map high-level goals to specific GitHub scopes, addressing the need identified in #514 (comment):
Required Scopes ✅
- repo: Full repository access (code, issues, PRs)
- workflow: Update GitHub Actions workflows
- user: Read user profile information
- notifications: Access and manage notifications
Recommended Scopes 🟡
- write:org: Manage organization membership
- project: Full project board access
- gist: Create and manage code snippets
- write:packages: Upload packages to GitHub Registry
- admin:repo_hook: Manage repository webhooks
Explicitly NOT Granted 🔴
- delete_repo: Prevents accidental repository deletion
- delete:packages: Protects package dependencies
- admin:public_key: Avoids SSH key compromise
- admin:gpg_key: Prevents GPG key management issues
- codespace: No Codespaces access needed
- security_events: Security scanning not required
- read:audit_log: Sensitive audit logs excluded
4. Security Best Practices
- Token Naming: Use pattern
mcp-github-[client]-[date]
- Expiration: Set to 90 days maximum
- Storage: Use password managers or secret management tools
- Rotation: Quarterly token rotation recommended
Benefits
- Reduces setup friction - Users can get started quickly
- Improves security - Clear guidance on minimal permissions
- Prevents over-permissioning - Explicit "do not grant" list
- Matches user expectations - Similar to other MCP providers
- Helps Claude Code users - Specific guidance for CLI setup
- Clear naming conventions - Avoid confusion between local/remote servers
Implementation
Could be added as:
- New section in README.md under "Setup Instructions"
- Separate
docs/client-setup.md file
- Or integrated into existing documentation structure
References
Would love feedback on this approach and happy to submit a PR once we align on the structure!
TL;DR
Users need clear, client-specific setup instructions with explicit GitHub token permissions. Currently, setting up the remote GitHub MCP server requires guessing which of 35+ token scopes to select and figuring out different client syntax. This issue proposes adding comprehensive setup guides for Claude Code CLI, Claude Desktop, and Cursor, plus a detailed permission mapping that connects security goals to specific GitHub scopes.
Related Work
This proposal complements existing PR #498 which adds basic Claude Code local setup. However, #498 only covers local Docker setup and doesn't address:
Our proposal can either:
Problem Statement
Following the successful merge of #514 which added PAT configuration examples, there's still a gap in documentation for client-specific setup instructions. Users currently need to:
As noted in this comment on #514, users coming from Claude Code would particularly benefit from specific permission mappings that connect the security approach to actual GitHub token scopes.
This is especially challenging when different MCP servers (like Hugging Face) provide comprehensive client-specific setup instructions, setting user expectations.
Current Issues This Would Address
Proposed Solution
Add comprehensive client-specific setup documentation that includes:
1. Client Setup Instructions
Similar to Hugging Face's approach, provide setup instructions for popular clients:
Claude Code (CLI)
Claude Desktop
{ "mcpServers": { "github-remote": { "url": "https://api.githubcopilot.com/mcp/", "authorization_token": "YOUR_GITHUB_TOKEN" } } }Cursor
{ "mcpServers": { "github-remote": { "url": "https://api.githubcopilot.com/mcp/", "headers": { "Authorization": "Bearer YOUR_GITHUB_TOKEN" } } } }2. MCP Server Naming Convention
We propose establishing a naming convention for MCP servers:
[provider]-[location](e.g.,github-remote,github-local)mcpprefix is implicit in the context3. Detailed PAT Permissions Guide
Map high-level goals to specific GitHub scopes, addressing the need identified in #514 (comment):
Required Scopes ✅
Recommended Scopes 🟡
Explicitly NOT Granted 🔴
4. Security Best Practices
mcp-github-[client]-[date]Benefits
Implementation
Could be added as:
docs/client-setup.mdfileReferences
Would love feedback on this approach and happy to submit a PR once we align on the structure!