GitHub MCP Server

by golwalak

Not rated
GitHub

About

Interact with GitHub repositories, issues, pull requests, and more. Requires a GitHub personal access token.

Details

Author
golwalak
Categories
Developer Tools, Other, Project Management

Setup

Install GitHub MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/golwalak/workiva-igam

Follow the installation instructions in the repository README, then restart your MCP client.

This workspace contains both aGitHub MCP Serverfor GitHub integration andPython scriptsfor Workiva Identity, Governance, and Access Management (IGAM) reporting.

A Model Context Protocol (MCP) server that provides comprehensive GitHub integration capabilities. This server allows AI assistants and other MCP clients to interact with GitHub repositories, issues, pull requests, and more through a standardized interface.

Python scripts for retrieving, processing, and reporting on Workiva user account data for compliance and analysis purposes.

A Model Context Protocol (MCP) server that provides comprehensive GitHub integration capabilities. This server allows AI assistants and other MCP clients to interact with GitHub repositories, issues, pull requests, and more through a standardized interface.

- list-repositories: List repositories for a user or organization
- get-repository: Get detailed information about a specific repository
- search-repositories: Search for repositories across GitHub

- list-issues: List issues for a repository with filtering options
- create-issue: Create new issues with labels and assignees
- update-issue: Update existing issues (title, body, state, labels, assignees)
- search-issues: Search for issues and pull requests across GitHub

- list-pull-requests: List pull requests for a repository
- create-pull-request: Create new pull requests with draft support

- get-file-contents: Retrieve file contents or directory listings from repositories

- get-user: Get detailed information about GitHub users

- Node.js 16 or higher
- TypeScript
- A GitHub personal access token

git clone <repository-url> cd github-mcp-server

You need a GitHub personal access token to use this server. Create one at:https://github.com/settings/tokens

The token needs the following scopes depending on your use case:

- repo- Full control of private repositories
- public_repo- Access to public repositories
- read:user- Read user profile information
- read:org- Read organization information

Set theGITHUB_TOKENenvironment variable:

$env:GITHUB_TOKEN="your_github_token_here"
export GITHUB_TOKEN=your_github_token_here

- Update your Claude Desktop configuration file:

Windows:%APPDATA%\Claude\claude_desktop_config.jsonmacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "github": { "command": "node", "args": ["C:\\absolute\\path\\to\\github-mcp-server\\build\\index.js"], "env": { "GITHUB_TOKEN": "your_github_token_here" } } } }

The project includes a.vscode/mcp.jsonconfiguration file. Update theGITHUB_TOKENvalue and use the MCP extension for VS Code.

List repositories for a user or organization.

- owner(string): Username or organization name
- type(optional): Repository type filter ("all", "owner", "member")
- sort(optional): Sort by ("created", "updated", "pushed", "full_name")
- per_page(optional): Number of results per page (max 100)

Get detailed information about a specific repository.

- owner(string): Repository owner
- repo(string): Repository name

- query(string): Search query
- sort(optional): Sort field ("stars", "forks", "help-wanted-issues", "updated")
- order(optional): Sort order ("asc", "desc")
- per_page(optional): Number of results per page (max 100)

- owner(string): Repository owner
- repo(string): Repository name
- state(optional): Issue state ("open", "closed", "all")
- labels(optional): Comma-separated list of labels
- assignee(optional): Username of assignee
- per_page(optional): Number of results per page (max 100)

- owner(string): Repository owner
- repo(string): Repository name
- title(string): Issue title
- body(optional): Issue body/description
- labels(optional): Array of label names
- assignees(optional): Array of usernames to assign

- owner(string): Repository owner
- repo(string): Repository name
- issue_number(number): Issue number
- title(optional): New issue title
- body(optional): New issue body
- state(optional): New issue state ("open", "closed")
- labels(optional): Array of label names
- assignees(optional): Array of usernames to assign

- owner(string): Repository owner
- repo(string): Repository name
- state(optional): Pull request state ("open", "closed", "all")
- head(optional): Filter by head branch
- base(optional): Filter by base branch
- per_page(optional): Number of results per page (max 100)

- owner(string): Repository owner
- repo(string): Repository name
- title(string): Pull request title
- head(string): Head branch name
- base(string): Base branch name
- body(optional): Pull request body/description
- draft(optional): Create as draft pull request

Get the contents of a file from a repository.

- owner(string): Repository owner
- repo(string): Repository name
- path(string): File path in the repository
- ref(optional): Branch, tag, or commit SHA

Search for issues and pull requests on GitHub.

- query(string): Search query
- sort(optional): Sort field
- order(optional): Sort order ("asc", "desc")
- per_page(optional): Number of results per page (max 100)

Here are some example queries you can use with the GitHub MCP server:
- List repositories: "Show me the repositories for the microsoft organization"
- Create an issue: "Create an issue in myrepo titled 'Bug fix needed' with the label 'bug'"
- Search repositories: "Find popular Python repositories related to machine learning"
- Get file contents: "Show me the README.md file from the main branch of microsoft/vscode"
- List issues: "Show me all open issues in microsoft/typescript assigned to someone"

The server implements comprehensive error handling:

- GitHub API errors are caught and returned with descriptive messages
- Rate limiting is handled gracefully
- Authentication errors provide clear guidance
- Validation errors for required parameters

- Never expose your GitHub token in logs or commit it to version control
- Use environment variables for token storage
- The server validates all inputs before making API calls
- Follow the principle of least privilege when setting token scopes

src/ index.ts # Main MCP server implementation .github/ copilot-instructions.md # Development guidelines .vscode/ mcp.json # VS Code MCP configuration build/ # Compiled JavaScript output package.json # Project configuration tsconfig.json # TypeScript configuration

- Follow the coding guidelines in.github/copilot-instructions.md
- Use TypeScript for all code
- Implement proper error handling for new tools
- Add comprehensive documentation for new features
- Test with various GitHub repositories and scenarios

Test the server by running it and using various tools:

# Set your GitHub token export GITHUB_TOKEN=your_token_here # Start the server npm run start # The server will listen on stdio for MCP protocol messages

Thepython/directory contains Python scripts for Workiva Identity, Governance, and Access Management (IGAM) reporting.

- OAuth 2.0 Authentication: Secure API access using client credentials flow
- User Data Processing: Retrieve and filter Workiva user account information
- CSV Report Generation: Standardized reports for compliance and analysis
- Email Notifications: Automated report delivery with attachments
- Data Visualization: Role distribution charts and analytics
- Comprehensive Logging: Detailed execution logs for troubleshooting

cp config.ini.template config.ini # Edit config.ini with your Workiva API credentials
python/ ├── W_IGAM_Request_new.py # Main IGAM reporting script ├── config.example.ini # Configuration example template ├── config.ini.template # Configuration template ├── requirements.txt # Python dependencies ├── requirements-azure.txt # Azure-specific dependencies ├── README.md # Python scripts documentation ├── utils/ # Utility modules │ ├── visualize_roles.py # Advanced role visualization │ ├── simple_visualize_roles.py # Simple visualization │ ├── data_validator.py # Data validation utilities │ └── azure_config_loader.py # Azure configuration loader └── tests/ # Test files └── test_workiva_igam_integration.py # Integration tests

Theconfig/directory contains configuration templates:

- MCP Server configs: Templates for Claude Desktop and other MCP clients
- Python configs: Example configuration files for IGAM scripts

Create aconfig.inifile with your Workiva API credentials:

- API endpoints (token_url, users_url)
- OAuth client credentials (client_id, client_secret)
- Output settings (directory, filename)
- Email notification settings (optional)

Security Note: Never commit the actualconfig.inifile with real credentials to version control.

For detailed documentation, seepython/README.md.

Interact with GitHub repositories, including issues, pull requests, commits, releases, and actions.

Provides tools for mapping and analyzing GitHub repositories using a Personal Access Token for authentication.

Integrates with GitHub, allowing LLMs to interact with repositories, issues, and pull requests via the GitHub API.

Interact with the GitHub API to create and manage repositories, including setting descriptions, topics, and website URLs.

An MCP server for interacting with GitHub, allowing you to manage repositories, issues, and pull requests.

Interact with the GitHub API using PyGithub to manage repositories, issues, and pull requests.

Repository analysis, issues, pull requests, and code structure exploration

A production-ready MCP server that connects any MCP-compatible AI agent to the GitHub API. Manage repositories, issues, pull requests, and search — all through natural language.

Official GitHub MCP server for repository search, issues, pull requests, code context, and GitHub workflows in MCP-compatible AI clients.

A portable MCP server for performing various GitHub operations on any repository.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.