Install
$ agentstack add mcp-chayan-1906-github-mcp β scanned Β· β verified β works with Claude Code, Cursor, and more.
Security review
β PassedNo issues found. Passed automated security review. Β· v0.1.0 How review works β
- β Prompt-injection patterns
- β Secret / credential exfiltration
- β Dangerous shell & filesystem operations
- β Untrusted network calls
- β Known-malicious package signatures
What it can access
- β Network access Used
- β Filesystem access No
- β Shell / process execution No
- β Environment & secrets No
- β Dynamic code execution No
From automated source analysis of v0.1.0. βUsedβ means the capability is present in the source β more access means more to trust, not that itβs unsafe.
About
π GitHub MCP Server
[](https://github.com/chayan-1906/GitHub-MCP) [](https://nodejs.org/) [](https://www.typescriptlang.org/) [](https://expressjs.com/) [](https://www.mongodb.com/) [](https://opensource.org/licenses/MIT) [](https://modelcontextprotocol.io/) [](https://docs.github.com/en/developers/apps/building-oauth-apps)
An MCP-compliant server built with TypeScript to extend Claude and other AI agents with superpowers for GitHub Repositories, Branches, Commits, Issues, Pull Requests, Releases, and Actions. Pre-built executables available for macOS, Windows, and Linux for easy end-user installation without Node.js dependencies.
βοΈ Quick Start
Option 1: Use Pre-built Package
1. Install Claude Desktop:
Download from https://claude.ai/download
2. Download the Executable:
macOS: π¦ Download macOS Executable
Windows: π¦ Download Windows Executable
3. Run the Executable:
- For macOS users:
``bash chmod +x github ./github ``
- For Windows users:
Double-click the file, or run via terminal: .\github.exe
Note:
- No need to run the executable repeatedly
- Do NOT delete the executable after running
- If you rename, move, or modify the executable, you must run it again (Step 3) to restart it properly
4. π Explore Available Tools (Optional)
Visit the homepage to browse all available tools:
- Homepage: http://localhost:20253/
- See all 44+ GitHub tools with user-friendly descriptions
- Great for understanding what the server can do
5. (Optional) Stop the Server:
You can stop the server if needed (launching Claude will automatically stop the currently running instance/port)
6. Launch Claude Desktop
Start Claude Desktop application
7. Start Asking Tasks:
Claude will now recognize the available tools with descriptions
Important: When prompting Claude, include "use available GitHub tools" in your prompts to ensure the LLM utilizes the GitHub MCP tools instead of defaulting to web search
Option 2: Build from Source
1. π Clone the repo
git clone https://github.com/chayan-1906/GitHub-MCP.git
cd GitHub-MCP
2. π¦ Install dependencies
npm install
3. π§ Setup Configuration
Configure your credentials in src/config/config.ts:
export const PORT = 20253
export const DB_NAME = "github";
export const CLIENT_ID = "your_github_client_id"
export const CLIENT_SECRET = "your_github_client_secret"
export const GITHUB_CALLBACK_URL = `http://localhost:${PORT}/github/oauth/callback`
export const MONGODB_URI = "your_mongodb_connection_string"
export const TOKEN_SECRET = "your_token_secret"
Replace placeholder values with your actual GitHub OAuth app credentials and MongoDB connection string.
Generate a secure token secret:
openssl rand -hex 32
4. π Explore Available Tools
Visit the homepage to see all available tools with user-friendly descriptions:
- Homepage: http://localhost:20253/
- Browse all 44+ GitHub tools organized by category
- View user-friendly descriptions and use cases
- Perfect for understanding the server's capabilities
5. π§ Switch GitHub Accounts
To authenticate with a different GitHub account or refresh your session:
- Visit: http://localhost:20253/auth
- Complete OAuth flow with desired GitHub account
6. π§ͺ Run the MCP Server
npm run dev
Or compile and run:
npm run build
npm run bundle
npm run package
π User Guide
Detailed documentation: GitHub MCP User Guide
π§° Available Tools
| Tool Name | Category | Description | |--------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | my-github-account | Profile | Retrieves details of the authenticated GitHub user, including username, display name, email (if available), avatar URL, and profile link | | | | | | list-repositories | Repositories | Fetches repositories user has access to. Calls repeatedly with increasing currentPage until result is empty | | get-repository-details | Repositories | Fetches metadata of a GitHub repository (e.g., default branch, visibility, description, etc.). Useful before accessing files or commits from a repo | | create-repository | Repositories | Creates a new GitHub repository for the authenticated user with optional description, visibility, and initialization | | update-repository | Repositories | Updates repository description and/or tags (topics) of a GitHub repository | | rename-repository | Repositories | Renames a GitHub repository owned by the authenticated user | | delete-repository | Repositories | Deletes a GitHub repository owned by the authenticated user. This action is irreversible | | modify-repository-visibility | Repositories | Modifies a GitHub repository visibility (private/public/internal) | | list-collaborators | Repositories | Returns a combined list of accepted collaborators and pending invitations for a GitHub Repository, each marked with their status | | add-remove-collaborators | Repositories | Adds or removes a collaborator from a GitHub repository | | | | | | list-branches | Branches | Fetches branches of the authenticated user's repository. Calls repeatedly with increasing currentPage until the result is empty | | get-branch-details | Branches | Fetches details of a specific branch in a GitHub repository | | create-branch | Branches | Creates a new branch from a given commit SHA (usually the latest commit of an existing branch) | | set-default-branch | Branches | Sets the default branch in a GitHub repository | | delete-branch | Branches | Deletes a branch from a GitHub repository. Cannot delete the default branch | | | | | | repository-tree | Files | Displays the hierarchical tree structure of a GitHub repository branch with ASCII tree formatting. Shows files and directories in a visual tree layout with filtering and pagination support. | | get-file-content | Files | Reads and returns the raw content of a specific file from a GitHub repository branch | | commit-remote-file | Files | Commits a file to a GitHub Repository using GitHub API. This does not use the local file system. β’ parentCommitSha & baseTreeSha: must be real SHAs. β’ If the repository is empty, omit these fields (don't pass 000β¦000). | | | | | | list-commits | Commits | Fetches commits in a branch of a GitHub repository, page by page | | get-commit-modifications | Commits | Returns the list of files modified in a specific GitHub commit | | | | | | list-issues | Issues | Fetches issues from a GitHub repository, page by page. Calls repeatedly with increasing currentPage until result is empty | | get-issue-details | Issues | Fetches detailed information about a specific GitHub issue by issue number | | get-issue-comments | Issues | Fetches all comments for a GitHub issue, including the original issue, all comments, and participant details. Automatically fetches all pages of comments | | create-issue | Issues | Creates a new issue in a GitHub repository. Including body and labels is optional | | update-issue | Issues | Updates the title, body, and/or labels of an existing GitHub issue. Also works for pull requests since PRs are treated as issues for label management. | | update-issue-state | Issues | Updates the state of a GitHub issue (open or closed) by issue number | | assign-issue | Issues | Assigns one or more GitHub users to a GitHub issue | | | | | | list-pull-requests | Pull Requests | Fetches all pull requests from a GitHub repository, page by page. Filter by state and sort options available | | get-pull-request-details | Pull Requests | Fetches detailed information about a specific GitHub pull request by PR number | | create-pull-request | Pull Requests | Creates a new pull request in a GitHub repository. Compares changes between two branches and creates a PR for review | | update-pull-request | Pull Requests | Updates title, body, state, and base branch of an existing pull request | | list-pull-request-commits | Pull Requests | Lists all commits in a specific pull request with pagination support | | list-pull-request-files | Pull Requests | Lists all files changed in a specific pull request with diff information | | update-pull-request-state | Pull Requests | Updates the state of a pull request (open or closed) | | merge-pull-request | Pull Requests | Merges a GitHub pull request only if PR is open, not draft, and has no conflicts | | get-pull-request-reviews | Pull Requests | Lists all reviews for a specific GitHub pull request, page by page | | create-pull-request-review | Pull Requests | Creates a review for a GitHub pull request. Can approve, request changes, or add com
β¦
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source β we do not rehost the code.
- Author: chayan-1906
- Source: chayan-1906/GitHub-MCP
- License: MIT
- Homepage: https://versed-blinker-33e.notion.site/GitHub-MCP-User-Guide-2120c027172280fb81ccda9b88b8e265
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet β be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.