Enables comprehensive interaction with GitHub repositories, providing tools to search repositories, manage issues and pull requests, browse file contents, and handle branches and commits.
Allows for the management of GitHub Actions workflows, including listing workflow files, monitoring workflow run status, and triggering manual workflow dispatches.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GitHub MCP Servershow me open issues labeled 'bug' in microsoft/vscode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GitHub MCP Server
A Model Context Protocol (MCP) server that enables LLMs to interact with GitHub repositories, issues, pull requests, workflows, and more.
Features
Repository Management
search_repositories - Search repos by query, language, stars
get_repository - Get detailed repo information
list_repository_files - Browse directory contents
get_file_contents - Read file content
Issue Tracking
list_issues - List/filter issues by state, labels, assignee
get_issue - Get issue details with comments
create_issue - Create new issues
update_issue - Update existing issues
add_issue_comment - Comment on issues
Pull Requests
list_pull_requests - List PRs with filters
get_pull_request - Get PR details with diff stats
create_pull_request - Create new PRs
list_pr_files - List changed files
merge_pull_request - Merge PRs (merge/squash/rebase)
Branches & Commits
list_branches - List branches with protection status
get_commits - Get commit history
compare_commits - Compare branches/tags/commits
GitHub Actions
list_workflows - List workflow files
get_workflow_runs - Get recent workflow runs
trigger_workflow - Dispatch workflow runs
Code Search
search_code - Search code across repositories
Users & Organizations
get_user - Get user/org profile
list_user_repos - List user's repositories
Installation
# Clone the repository
git clone https://github.com/yourusername/github-mcp-server.git
cd github-mcp-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txtConfiguration
GitHub Token
Create a Personal Access Token at https://github.com/settings/tokens with these scopes:
repo- Full control of private repositoriesread:org- Read organization membershipworkflow- Update GitHub Action workflows
Set the token as an environment variable:
# Linux/Mac
export GITHUB_TOKEN=ghp_your_token_here
# Windows (PowerShell)
$env:GITHUB_TOKEN = "ghp_your_token_here"
# Windows (CMD)
set GITHUB_TOKEN=ghp_your_token_hereUsage
Running the Server
# Direct execution
python github_mcp_server.py
# With MCP Inspector (development)
uv run mcp dev github_mcp_server.py
# With MCP CLI
uv run mcp run github_mcp_server.pyClaude Desktop Integration
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"github": {
"command": "python",
"args": ["/path/to/github_mcp_server.py"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Tool Examples
Search Repositories
search_repositories("kubernetes helm language:go stars:>1000")Get Repository Info
get_repository("microsoft", "vscode")List Issues
list_issues("owner", "repo", state="open", labels="bug,help wanted")Create Issue
create_issue("owner", "repo", "Bug: Login fails", body="Steps to reproduce...", labels=["bug"])List Pull Requests
list_pull_requests("owner", "repo", state="open")Create Pull Request
create_pull_request("owner", "repo", "Add feature X", "feature-branch", "main")Search Code
search_code("import tensorflow language:python")Get Workflow Runs
get_workflow_runs("owner", "repo", branch="main", status="completed")Response Formats
All tools support two response formats:
markdown (default) - Human-readable formatted output
json - Structured data for programmatic use
get_repository("owner", "repo", format="json")Error Handling
The server provides actionable error messages:
Rate Limiting: Indicates when limits reset
Not Found: Suggests verifying resource exists
Authentication: Prompts to check token validity
Validation: Lists specific field errors
Architecture
github_mcp_server.py
├── Configuration (API_BASE_URL, CHARACTER_LIMIT)
├── Enums (ResponseFormat, IssueState, PRMergeMethod)
├── Pydantic Models (input validation)
├── API Client Helpers (github_request, truncate_content)
├── Repository Tools (search, get, list files, read)
├── Issue Tools (list, get, create, update, comment)
├── Pull Request Tools (list, get, create, merge)
├── Branch & Commit Tools (list, history, compare)
├── Actions Tools (workflows, runs, trigger)
├── Code Search Tool
├── User Tools (profile, repos)
└── Server Entry PointDevelopment
Testing Syntax
python -m py_compile github_mcp_server.pyRunning in Development
# With MCP Inspector
uv run mcp dev github_mcp_server.pyLicense
MIT License
Author
Hansen Nkefor
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.