A Model Context Protocol (MCP) server implementation for interacting with GitHub issues through Cline.
- List GitHub issues from a repository
- Create new GitHub issues
- Error handling and validation
- Secure authentication via environment variables
- Clone the repository:
git clone https://github.com/timbuchinger/mcp-github.git
cd mcp-github- Install dependencies with uv:
pip install uv
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt- Copy the environment template and configure your GitHub token:
cp .env.template .envEdit .env and add your GitHub Personal Access Token:
GITHUB_TOKEN=your_token_hereTo create a GitHub Personal Access Token:
- Go to GitHub Settings -> Developer settings -> Personal access tokens
- Generate a new token with
reposcope - Copy the token and paste it in your
.envfile
Run the MCP server:
python -m src.mcp_github.serverThe server will start and expose two tools to Cline:
Get a list of issues from a GitHub repository:
{
"repo": "owner/repo"
}Create a new issue in a GitHub repository:
{
"repo": "owner/repo",
"title": "Issue title",
"body": "Issue description"
}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.
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 .