GitHub MCP server

Integrates with GitHub's API to enable repository management, issue tracking, pull request handling, and code manipulation through natural language commands
Back to servers
Provider
Stephan Janssen
Release date
Apr 11, 2025
Language
Java
Stats
27 stars

The GitHub MCP Server allows Large Language Models to interact with GitHub repositories, issues, pull requests, and other GitHub resources through the Model Context Protocol (MCP). It provides a comprehensive set of tools for AI systems to safely access and manipulate GitHub data via its API.

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • Spring Boot 3.3.6
  • Spring AI MCP Server components
  • A GitHub account and personal access token

Installation

Building the Project

Build the project using Maven:

mvn clean package

Running the Server

Start the server with the following command:

java -jar target/GitHubMCP-1.0-SNAPSHOT.jar

The server can communicate with MCP clients either through STDIO or as a web server.

Configuration

Environment Variables

Configure the GitHub MCP server using these environment variables:

  • GITHUB_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN: Your GitHub personal access token
  • GITHUB_HOST: The base URL of your GitHub instance (default is github.com, use custom domain for GitHub Enterprise)
  • GITHUB_REPOSITORY: Default repository to use (format: owner/repo)

Client Setup

Claude Desktop Integration

Edit your claude_desktop_config.json file:

{
  "mcpServers": {
    "github": {
      "command": "java",
      "args": [
        "-Dspring.ai.mcp.server.stdio=true",
        "-Dspring.main.web-application-type=none",
        "-Dlogging.pattern.console=",
        "-jar",
        "/path/to/GitHubMCP/target/GitHubMCP-1.0-SNAPSHOT.jar"
      ],
      "env": {
        "GITHUB_TOKEN": "your-github-token-here",
        "GITHUB_HOST": "github.com",
        "GITHUB_REPOSITORY": "your-username/your-repository"
      }
    }  
  }
}

DevoxxGenie or Similar MCP Clients

  1. Access the MCP Server configuration screen in your client
  2. Configure with these settings:
    • Name: GitHub (or any descriptive name)
    • Transport Type: STDIO
    • Command: Full path to your Java executable
    • Arguments:
      -Dspring.ai.mcp.server.stdio=true
      -Dspring.main.web-application-type=none
      -Dlogging.pattern.console=
      -jar
      /path/to/GitHubMCP/target/GitHubMCP-1.0-SNAPSHOT.jar
      
    • Environment Variables:
      GITHUB_TOKEN=your-github-token-here
      GITHUB_HOST=github.com
      GITHUB_REPOSITORY=your-username/your-repository
      

Usage Examples

Using Default Repository

If you've configured the environment variables, simply ask:

Can you get a list of open issues in my GitHub repository?

The LLM will use the pre-configured authentication details to fetch the open issues.

Specifying a Different Repository

Override the default repository in your request:

Can you list the pull requests for the anthropics/claude-playground repository?

Available Features

The GitHub MCP server provides these GitHub operations:

Repository Management

  • List repositories for the authenticated user
  • Get repository details
  • Search for repositories

Issue Management

  • List issues with filtering options
  • Get detailed information about issues
  • Create new issues
  • Add comments to issues
  • Search for issues

Pull Request Management

  • List pull requests with filtering options
  • Get detailed information about pull requests
  • Create comments on pull requests
  • Merge pull requests

Branch Management

  • List branches in a repository
  • Create new branches

Commit Management

  • Get detailed information about commits
  • List commits with filtering options
  • Search for commits by message

Content Management

  • Get file contents from repositories
  • List directory contents
  • Create or update files
  • Search for code within repositories

Security Considerations

When using this server:

  • Provide a GitHub personal access token with appropriate permissions
  • Be aware that the LLM agent will have access to create, read, and modify GitHub resources
  • Run the server in a controlled environment
  • Configure your token with minimal required permissions

Enterprise GitHub Support

Both GitHub.com and GitHub Enterprise instances are supported. For GitHub Enterprise, set the GITHUB_HOST environment variable to your enterprise GitHub URL.

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later