Skip to main content
Glama
mdabdullahfaruque

GitHub MCP Server

README.md
# GitHub MCP Server

A Model Context Protocol (MCP) server that provides GitHub API integration.

## Features

- 🔍 Search repositories
- 📁 Get repository details and contents
- 🐛 Create and list issues
- 🏷️ Manage labels and states

## Setup

1. **Install dependencies:**
   ```bash
   npm install
   ```

2. **Create a GitHub Personal Access Token:**
   - Go to https://github.com/settings/tokens
   - Click "Generate new token (classic)"
   - Select scopes: `repo`, `read:user`
   - Copy the token

3. **Configure environment:**
   ```bash
   cp .env.example .env
   # Edit .env and add your GitHub token
   ```

4. **Run the server:**
   ```bash
   npm start
   ```

## Available Tools

### search_repositories
Search for GitHub repositories.

**Parameters:**
- `query` (required): Search query
- `sort`: Sort field (stars, forks, updated)
- `order`: Sort order (asc, desc)
- `per_page`: Results per page (max 100)

### get_repository
Get details about a specific repository.

**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name

### get_repository_contents
Get contents of a file or directory in a repository.

**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `path` (required): Path to file or directory
- `ref`: Branch, tag, or commit SHA

### create_issue
Create a new issue in a repository.

**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `title` (required): Issue title
- `body`: Issue body
- `labels`: Array of label names

### list_issues
List issues in a repository.

**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `state`: Issue state (open, closed, all)
- `labels`: Comma-separated list of labels
- `per_page`: Results per page (max 100)

## Integration with SplitCosts

This GitHub MCP server can be used alongside your SplitCosts project to:

- Track issues related to cost splitting features
- Search for similar open-source projects
- Manage project documentation and collaboration
- Automate GitHub workflows related to your project

## Usage Examples

### With Claude Desktop

Add this to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["/path/to/github-mcp-server/index.js"]
    }
  }
}
```

### Standalone Testing

```bash
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.js
```