
Github MCP Server
A model context protocol server for GitHub API
Github MCP Server
A Model Context Protocol Server for Github.
Provides integration with Github through MCP, allowing LLMs to interact with it.
Installation
Manual Installation
-
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
- Windows: Check this Guide
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
}
}
}
}
Components
Tools
-
search_repositories
: Search GitHub for a repository.- Required inputs:
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.
- Required inputs:
-
search_issues
: Search issues from a repository.- Required inputs:
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
ordesc
).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
orupdated
).
- Required inputs:
-
search_commits
: Search commits from a repository.- Required inputs:
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
ordesc
).sort
(optional string, default:best match
): Sort field (can be one of:committer-date
orauthor-date
).
- Required inputs:
-
search_code
: Search code from a repository.- Required inputs:
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.
- Required inputs:
-
search_users
: Search users from a repository.- Required inputs:
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
ordesc
).sort
(optional string, default:best match
): Sort field (can be one of:followers
,repositories
orjoined
).
- Required inputs:
-
search_topics
: Search topics.- Required inputs:
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.
- Required inputs:
-
search_labels
: Search labels in a repository.- Required inputs:
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
ordesc
).sort
(optional string, default:best match
): Sort field (can be one of:created
orupdated
).
- Required inputs:
-
list_repositories_issues
: List issues from a repository.- Required inputs:
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
ordesc
).sort
(optional string, default:created
): Sort field (can be one of:created
,comments
orupdated
).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.
- Required inputs:
-
get_issue
: Get an issue from a repository.- Required inputs:
owner
(string): The owner of the repository.repo
(string): The repository name.issue_number
(number): The issue number.
- Required inputs:
-
list_repositories_pull_requests
: List pull requests from a repository.- Required inputs:
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
ordesc
).sort
(optional string, default:created
): Sort field (can be one of:created
,popularity
,long-running
orupdated
).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).
- Required inputs:
-
get_pull_request
: Get a pull request from a repository.- Required inputs:
owner
(string): The owner of the repository.repo
(string): The repository name.pull_request_number
(number): The pull request number.
- Required inputs:
Usage examples
Some example prompts you can use to interact with Github:
- "modelcontextprotocol" → execute the
search_repositories
tool to find repositories where modelcontextprotocol mentioned. - "What is the 739 issue on modelcontextprotocol servers repo" → execute the
get_issue
tool to find 739 issue from modelcontextprotocol servers repo. - "What is the 717 PR on modelcontextprotocol servers repo" → execute the
get_pull_request
tool to find 717 PR from modelcontextprotocol servers repo.
Development
- Install dependencies:
pnpm install
- Configure Github Access token in
.env
:
GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
- Run locally with watch:
pnpm dev
- Build the server:
pnpm build
- Local debugging with inspector:
pnpm inspector
Stars
1Forks
0Last commit
2 months agoRepository age
2 months
Auto-fetched from GitHub .
MCP servers similar to Github MCP Server:

Stars
Forks
Last commit

Stars
Forks
Last commit

Stars
Forks
Last commit