GitHub MCP Server

GitHub MCP Server

A Model Context Protocol (MCP) server implementation for interacting with GitHub issues through Cline.

Features

  • List GitHub issues from a repository
  • Create new GitHub issues
  • Error handling and validation
  • Secure authentication via environment variables

Installation

  1. Clone the repository:
git clone https://github.com/timbuchinger/mcp-github.git cd mcp-github
  1. Install dependencies with uv:
pip install uv uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install -r requirements.txt
  1. Copy the environment template and configure your GitHub token:
cp .env.template .env

Edit .env and add your GitHub Personal Access Token:

GITHUB_TOKEN=your_token_here

To create a GitHub Personal Access Token:

  1. Go to GitHub Settings -> Developer settings -> Personal access tokens
  2. Generate a new token with repo scope
  3. Copy the token and paste it in your .env file

Usage

Run the MCP server:

python -m src.mcp_github.server

The server will start and expose two tools to Cline:

get_issues

Get a list of issues from a GitHub repository:

{ "repo": "owner/repo" }

create_issue

Create a new issue in a GitHub repository:

{ "repo": "owner/repo", "title": "Issue title", "body": "Issue description" }

Error Handling

The server handles common errors:

  • Missing GitHub token
  • Invalid repository name
  • Missing required parameters
  • GitHub API errors

Error responses include descriptive messages to help troubleshoot issues.

Development

The project uses uv for dependency management. To set up a development environment:

# Install all dependencies (including dev dependencies) uv pip install -r requirements.txt # Run tests pytest # Format code black . # Type checking mypy .
-
security - not tested
F
license - not found
-
quality - not tested

Enables interaction with GitHub issues via the Model Context Protocol, allowing users to list and create issues with secure authentication.

  1. Features
    1. Installation
      1. Usage
        1. get_issues
          1. create_issue
          2. Error Handling
            1. Development