github mcp server
Provides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.
Provides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.
A Model Context Protocol Server for Github.
Provides integration with Github through MCP, allowing LLMs to interact with it.
Create or get access token for your Github Account: Guide
Add server config to Claude Desktop:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
}
}
}
}
search_repositories
: Search GitHub for a repository.
query
(string): The query to search for repository.page
(number, default: 30, max: 100): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.search_issues
: Search issues from a repository.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.order
(optional string, default: desc
): Sort of order (asc
or desc
).sort
(optional string, default: best match
): Sort field (can be one of: comments
, reactions
, reactions-+1
, reactions--1
, reactions-smile
, reactions-thinking_face
, reactions-heart
, reactions-tada
, interactions
, created
or updated
).search_commits
: Search commits from a repository.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.order
(optional string, default: desc
): Sort of order (asc
or desc
).sort
(optional string, default: best match
): Sort field (can be one of: committer-date
or author-date
).search_code
: Search code from a repository.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.search_users
: Search users from a repository.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.order
(optional string, default: desc
): Sort of order (asc
or desc
).sort
(optional string, default: best match
): Sort field (can be one of: followers
, repositories
or joined
).search_topics
: Search topics.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.search_labels
: Search labels in a repository.
query
(string): The query to search for repository.page
(number, default: 1): Page number for pagination.per_page
(number, default: 30, max: 100): Number of results per page.order
(optional string, default: desc
): Sort of order (asc
or desc
).sort
(optional string, default: best match
): Sort field (can be one of: created
or updated
).list_repositories_issues
: List issues from a repository.
owner
(string): The owner of the repository.repo
(string): The repository name.page
(optional number, default: 1): Page number for pagination.per_page
(optional number, default: 30, max: 100): Number of results per page.direction
(optional string, default: desc
): Direction of sort (asc
or desc
).sort
(optional string, default: created
): Sort field (can be one of: created
, comments
or updated
).since
(optional string): Results last updated after the given time (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.).labels
(optional string): Comma separated label names. Example: bug,ui,@high.milestone
(optional string): Milestone number.assignee
(optional string): Name of assignee user (*
for all).creator
(optional string): The user that created the issue. (*
for all).mentioned
(optional string): A user that's mentioned in the issue.get_issue
: Get an issue from a repository.
owner
(string): The owner of the repository.repo
(string): The repository name.issue_number
(number): The issue number.list_repositories_pull_requests
: List pull requests from a repository.
owner
(string): The owner of the repository.repo
(string): The repository name.page
(optional number, default: 1): Page number for pagination.per_page
(optional number, default: 30, max: 100): Number of results per page.direction
(optional string, default: desc
): Direction of sort (asc
or desc
).sort
(optional string, default: created
): Sort field (can be one of: created
, popularity
, long-running
or updated
).head
(optional string): Filter pulls by head user or head organization and branch name in the format of user:ref-name or organization:ref-name (For example: github:new-script-format or octocat:test-branch).base
(optional string): Filter pulls by base branch name. (For example: gh-pages).get_pull_request
: Get a pull request from a repository.
owner
(string): The owner of the repository.repo
(string): The repository name.pull_request_number
(number): The pull request number.Some example prompts you can use to interact with Github:
search_repositories
tool to find repositories where modelcontextprotocol mentioned.get_issue
tool to find 739 issue from modelcontextprotocol servers repo.get_pull_request
tool to find 717 PR from modelcontextprotocol servers repo.pnpm install
.env
:GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
pnpm dev
pnpm build
pnpm inspector