
GitHub
Enables interaction with GitHub through the GitHub API, supporting file operations, repository management, advanced search, and issue tracking with comprehensive error handling and automatic branch creation.
asbloom-py
Tools
create_or_update_file
Create or update a single file in a GitHub repository
search_repositories
Search for GitHub repositories
create_repository
Create a new GitHub repository in your account
get_file_contents
Get the contents of a file or directory from a GitHub repository
push_files
Push multiple files to a GitHub repository in a single commit
create_issue
Create a new issue in a GitHub repository
create_pull_request
Create a new pull request in a GitHub repository
fork_repository
Fork a GitHub repository to your account or specified organization
create_branch
Create a new branch in a GitHub repository
README
GitHub MCP Server
MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.
Features
- Automatic Branch Creation: When creating/updating files or pushing changes, branches are automatically created if they don't exist
- Comprehensive Error Handling: Clear error messages for common issues
- Git History Preservation: Operations maintain proper Git history without force pushing
- Batch Operations: Support for both single-file and multi-file operations
- Advanced Search: Support for searching code, issues/PRs, and users
Tools
-
create_or_update_file
- Create or update a single file in a repository
- Inputs:
owner
(string): Repository owner (username or organization)repo
(string): Repository namepath
(string): Path where to create/update the filecontent
(string): Content of the filemessage
(string): Commit messagebranch
(string): Branch to create/update the file insha
(optional string): SHA of file being replaced (for updates)
- Returns: File content and commit details
-
push_files
- Push multiple files in a single commit
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository namebranch
(string): Branch to push tofiles
(array): Files to push, each withpath
andcontent
message
(string): Commit message
- Returns: Updated branch reference
-
search_repositories
- Search for GitHub repositories
- Inputs:
query
(string): Search querypage
(optional number): Page number for paginationperPage
(optional number): Results per page (max 100)
- Returns: Repository search results
-
create_repository
- Create a new GitHub repository
- Inputs:
name
(string): Repository namedescription
(optional string): Repository descriptionprivate
(optional boolean): Whether repo should be privateautoInit
(optional boolean): Initialize with README
- Returns: Created repository details
-
get_file_contents
- Get contents of a file or directory
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository namepath
(string): Path to file/directorybranch
(optional string): Branch to get contents from
- Returns: File/directory contents
-
create_issue
- Create a new issue
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nametitle
(string): Issue titlebody
(optional string): Issue descriptionassignees
(optional string[]): Usernames to assignlabels
(optional string[]): Labels to addmilestone
(optional number): Milestone number
- Returns: Created issue details
-
create_pull_request
- Create a new pull request
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nametitle
(string): PR titlebody
(optional string): PR descriptionhead
(string): Branch containing changesbase
(string): Branch to merge intodraft
(optional boolean): Create as draft PRmaintainer_can_modify
(optional boolean): Allow maintainer edits
- Returns: Created pull request details
-
fork_repository
- Fork a repository
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nameorganization
(optional string): Organization to fork to
- Returns: Forked repository details
-
create_branch
- Create a new branch
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository namebranch
(string): Name for new branchfrom_branch
(optional string): Source branch (defaults to repo default)
- Returns: Created branch reference
-
list_issues
- List and filter repository issues
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository namestate
(optional string): Filter by state ('open', 'closed', 'all')labels
(optional string[]): Filter by labelssort
(optional string): Sort by ('created', 'updated', 'comments')direction
(optional string): Sort direction ('asc', 'desc')since
(optional string): Filter by date (ISO 8601 timestamp)page
(optional number): Page numberper_page
(optional number): Results per page
- Returns: Array of issue details
-
update_issue
- Update an existing issue
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nameissue_number
(number): Issue number to updatetitle
(optional string): New titlebody
(optional string): New descriptionstate
(optional string): New state ('open' or 'closed')labels
(optional string[]): New labelsassignees
(optional string[]): New assigneesmilestone
(optional number): New milestone number
- Returns: Updated issue details
-
add_issue_comment
- Add a comment to an issue
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nameissue_number
(number): Issue number to comment onbody
(string): Comment text
- Returns: Created comment details
-
search_code
- Search for code across GitHub repositories
- Inputs:
q
(string): Search query using GitHub code search syntaxsort
(optional string): Sort field ('indexed' only)order
(optional string): Sort order ('asc' or 'desc')per_page
(optional number): Results per page (max 100)page
(optional number): Page number
- Returns: Code search results with repository context
-
search_issues
- Search for issues and pull requests
- Inputs:
q
(string): Search query using GitHub issues search syntaxsort
(optional string): Sort field (comments, reactions, created, etc.)order
(optional string): Sort order ('asc' or 'desc')per_page
(optional number): Results per page (max 100)page
(optional number): Page number
- Returns: Issue and pull request search results
-
search_users
- Search for GitHub users
- Inputs:
q
(string): Search query using GitHub users search syntaxsort
(optional string): Sort field (followers, repositories, joined)order
(optional string): Sort order ('asc' or 'desc')per_page
(optional number): Results per page (max 100)page
(optional number): Page number
- Returns: User search results
-
list_commits
- Gets commits of a branch in a repository
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository namepage
(optional string): page numberper_page
(optional string): number of record per pagesha
(optional string): branch name
- Returns: List of commits
get_issue
- Gets the contents of an issue within a repository
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nameissue_number
(number): Issue number to retrieve
- Returns: Github Issue object & details
get_issue_comments
- Gets the comments on an issue or pull request
- Inputs:
owner
(string): Repository ownerrepo
(string): Repository nameissue_number
(number): Issue/PR number to retrieve comments from
- Returns: Array of GitHub comment objects containing comment ID, body text, author, and timestamps
Search Query Syntax
Code Search
language:javascript
: Search by programming languagerepo:owner/name
: Search in specific repositorypath:app/src
: Search in specific pathextension:js
: Search by file extension- Example:
q: "import express" language:typescript path:src/
Issues Search
is:issue
oris:pr
: Filter by typeis:open
oris:closed
: Filter by statelabel:bug
: Search by labelauthor:username
: Search by author- Example:
q: "memory leak" is:issue is:open label:bug
Users Search
type:user
ortype:org
: Filter by account typefollowers:>1000
: Filter by followerslocation:London
: Search by location- Example:
q: "fullstack developer" location:London followers:>100
For detailed search syntax, see GitHub's searching documentation.
Setup
Personal Access Token
Create a GitHub Personal Access Token with appropriate permissions:
- Go to Personal access tokens (in GitHub Settings > Developer settings)
- Select which repositories you'd like this token to have access to (Public, All, or Select)
- Create a token with the
repo
scope ("Full control of private repositories")- Alternatively, if working only with public repositories, select only the
public_repo
scope
- Alternatively, if working only with public repositories, select only the
- Copy the generated token
Usage with Claude Desktop
To use this with Claude Desktop, add the following to your claude_desktop_config.json
:
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Recommended Servers

E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
AIO-MCP Server
🚀 All-in-one MCP server with AI search, RAG, and multi-service integrations (GitLab/Jira/Confluence/YouTube) for AI-enhanced development workflows. Folk from
React MCP
react-mcp integrates with Claude Desktop, enabling the creation and modification of React apps based on user prompts
Exa MCP
A Model Context Protocol server that enables AI assistants like Claude to perform real-time web searches using the Exa AI Search API in a safe and controlled manner.
Web Research Server
A Model Context Protocol server that enables Claude to perform web research by integrating Google search, extracting webpage content, and capturing screenshots.
Perplexity Chat MCP Server
MCP Server for the Perplexity API.
PubMedSearch
A Model Content Protocol server that provides tools to search and retrieve academic papers from PubMed database.
Aindreyway Codex Keeper
Serves as a guardian of development knowledge, providing AI assistants with curated access to latest documentation and best practices.
Perplexity Deep Research
A server that allows AI assistants to perform web searches using Perplexity's sonar-deep-research model with citation support.