| name | github |
| description | GitHub API operations - repositories, issues, pull requests, actions, code security, discussions, gists, and more. Use for GitHub-related tasks like managing PRs, issues, searching code, and monitoring workflows. |
| allowed-tools | read, write, bash |
GitHub Skill
Overview
This skill provides access to the official GitHub MCP server with progressive disclosure for optimal context usage.
Context Savings: ~95% reduction
- MCP Mode: ~50,000 tokens always loaded (80+ tools)
- Skill Mode: ~500 tokens metadata + on-demand loading
Requirements
- Docker installed and running
GITHUB_PERSONAL_ACCESS_TOKENenvironment variable set
Toolsets
The server provides 80+ tools across 19 toolsets:
| Toolset | Description |
|---|---|
actions |
Workflow management, runs, jobs, artifacts |
code_security |
Scanning alerts, code analysis |
discussions |
Forum interactions |
gists |
Code snippets management |
issues |
Issue creation, updates, commenting |
labels |
Label management and filtering |
projects |
GitHub Projects board management |
pull_requests |
PR creation, review, merging |
repos |
Code search, commits, releases, branches |
users |
User search and management |
orgs |
Organization and team management |
notifications |
Notification management |
secret_scanning |
Secret scanning alerts |
context |
Context about the user |
Quick Reference
# List available tools
python executor.py --list
# Get repository info
python executor.py --tool get_repository --args '{"owner": "anthropics", "repo": "claude-code"}'
# List issues
python executor.py --tool list_issues --args '{"owner": "anthropics", "repo": "claude-code"}'
# Search code
python executor.py --tool search_code --args '{"query": "language:python MCP"}'
# Create issue
python executor.py --tool create_issue --args '{"owner": "me", "repo": "myrepo", "title": "Bug", "body": "Description"}'
# List pull requests
python executor.py --tool list_pull_requests --args '{"owner": "anthropics", "repo": "claude-code"}'
Common Tools (Default Toolsets: 40 tools)
Repository Operations
search_repositories- Search for repositoriescreate_repository- Create a new repositoryfork_repository- Fork a repositorylist_commits- List repository commitsget_commit- Get commit detailsget_file_contents- Get file contents from a repositorycreate_or_update_file- Create or update a filedelete_file- Delete a filepush_files- Push multiple filessearch_code- Search for code across GitHublist_branches- List repository branchescreate_branch- Create a new branchlist_tags- List repository tagsget_tag- Get tag detailslist_releases- List releasesget_latest_release- Get latest releaseget_release_by_tag- Get release by tag
Issue Operations
list_issues- List repository issuesissue_read- Read issue detailsissue_write- Create/update issuesadd_issue_comment- Add a comment to an issuesearch_issues- Search for issueslist_issue_types- List issue types (for organizations)get_label- Get label detailssub_issue_write- Manage sub-issuesassign_copilot_to_issue- Assign Copilot to an issue
Pull Request Operations
list_pull_requests- List repository pull requestspull_request_read- Read PR detailscreate_pull_request- Create a new PRupdate_pull_request- Update a PRupdate_pull_request_branch- Update PR branchmerge_pull_request- Merge a PRsearch_pull_requests- Search for pull requestspull_request_review_write- Create/submit PR reviewsadd_comment_to_pending_review- Add comments to pending reviewrequest_copilot_review- Request Copilot review
User & Team Operations
get_me- Get current authenticated usersearch_users- Search for usersget_teams- Get organization teamsget_team_members- Get team members
Configuration
The skill uses Docker to run the official GitHub MCP server:
- Image:
ghcr.io/github/github-mcp-server - Auth:
GITHUB_PERSONAL_ACCESS_TOKENenvironment variable
Environment Variables
| Variable | Required | Description |
|---|---|---|
GITHUB_PERSONAL_ACCESS_TOKEN |
Yes | GitHub PAT for authentication |
GITHUB_HOST |
No | For GitHub Enterprise (default: github.com) |
GITHUB_TOOLSETS |
No | Comma-separated toolsets to enable |
GITHUB_READ_ONLY |
No | Set to 1 for read-only mode |
Limiting Toolsets
To reduce context and improve tool selection, enable only needed toolsets:
# Only repos and issues
GITHUB_TOOLSETS=repos,issues python executor.py --list
# Only pull requests and code security
GITHUB_TOOLSETS=pull_requests,code_security python executor.py --list
Error Handling
If tool execution fails:
- Verify Docker is running:
docker ps - Check GitHub token is set:
echo $GITHUB_PERSONAL_ACCESS_TOKEN - Ensure token has required permissions for the operation
- Review executor.py output for details
Related
- Official GitHub MCP Server: https://github.com/github/github-mcp-server
- GitHub API Documentation: https://docs.github.com/en/rest