github-mcp-server

guangxiangdebizi/github-mcp-server

3.2

If you are the rightful owner of github-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The GitHub MCP Server is a robust Model Context Protocol server designed to facilitate AI assistants in analyzing and understanding GitHub repositories.

Tools
2
Resources
0
Prompts
0

šŸ™ GitHub MCP Server

npm version License: Apache-2.0 Node.js

A powerful Model Context Protocol (MCP) server that enables AI assistants to analyze and read GitHub repositories with ease. Perfect for code analysis, repository exploration, and understanding project structures.

✨ Features

šŸ” Repository Structure Analysis

  • Complete directory traversal with configurable depth
  • File type distribution analysis and statistics
  • Project architecture insights with framework detection
  • Important file detection (README, package.json, Dockerfile, etc.)
  • Visual tree structure representation
  • Size analysis and file counting

šŸ“– File Content Reading

  • Multi-format support (UTF-8, Base64, Raw)
  • Syntax highlighting for 30+ programming languages
  • Code analysis with function/class counting
  • Pattern detection (TODO comments, async/await, etc.)
  • Smart content truncation for large files
  • Binary file handling with appropriate encoding

šŸš€ Advanced Capabilities

  • Rate limit optimization with GitHub token support
  • Branch-specific analysis (main, develop, feature branches)
  • Error handling with detailed troubleshooting
  • Session management for efficient API usage
  • Streamable HTTP transport for modern AI clients

šŸ› ļø Installation

Quick Start

npm install -g @xingyuchen/github-mcp-server

From Source

git clone https://github.com/guangxiangdebizi/github-mcp-server.git
cd github-mcp-server
npm install
npm run build

āš™ļø Configuration

Environment Setup

  1. Copy environment template:

    cp .env.example .env
    
  2. Configure your settings:

    # GitHub Personal Access Token (recommended for higher rate limits)
    GITHUB_TOKEN=your_github_token_here
    
    # Server Configuration
    PORT=3000
    
    # Optional: Default repository
    DEFAULT_REPO=owner/repository
    

GitHub Token Setup

For optimal performance and access to private repositories:

  1. Go to GitHub Settings > Developer settings > Personal access tokens
  2. Generate a new token with repo scope
  3. Add it to your .env file

šŸš€ Usage

Starting the Server

# Production mode
npm start

# Development mode
npm run dev

# HTTP mode (recommended)
npm run start:http

The server will start at http://localhost:3000 with the MCP endpoint at /mcp.

Client Configuration

Add to your AI client's MCP configuration:

{
  "mcpServers": {
    "github-analyzer": {
      "type": "streamableHttp",
      "url": "http://localhost:3000/mcp",
      "timeout": 600
    }
  }
}

šŸ”§ Available Tools

1. analyze_repository_structure

Analyze the complete structure and architecture of a GitHub repository.

Parameters:

  • owner (required): Repository owner/organization
  • repo (required): Repository name
  • path (optional): Specific directory to analyze
  • branch (optional): Branch name (default: main)
  • max_depth (optional): Maximum traversal depth (1-5, default: 3)

Example:

{
  "owner": "microsoft",
  "repo": "vscode",
  "branch": "main",
  "max_depth": 3
}

2. read_repository_file

Read and analyze the contents of a specific file from a GitHub repository.

Parameters:

  • owner (required): Repository owner/organization
  • repo (required): Repository name
  • path (required): File path within the repository
  • branch (optional): Branch name (default: main)
  • encoding (optional): File encoding (utf8/base64/raw, default: utf8)
  • max_size (optional): Maximum file size in bytes (default: 1MB, max: 5MB)

Example:

{
  "owner": "microsoft",
  "repo": "vscode",
  "path": "src/vs/code/electron-main/main.ts",
  "branch": "main"
}

šŸ“Š Example Output

Repository Structure Analysis

# šŸ“Š Repository Structure Analysis

## šŸ“‹ Repository Information
- **Repository:** microsoft/vscode
- **Description:** Visual Studio Code
- **Language:** TypeScript
- **Stars:** 150,000 ⭐
- **Forks:** 25,000 šŸ“

## šŸ“ Directory Structure
šŸ“ src/
  šŸ“ vs/
    šŸ“„ main.ts (15.2 KB)
    šŸ“ workbench/
      šŸ“„ workbench.main.ts (8.5 KB)

## šŸ“ˆ Statistics
- **Total Files:** 12,450
- **Total Directories:** 1,200
- **Total Size:** 145.2 MB

## šŸ—ļø Project Architecture Insights
🟨 **TypeScript Project** - Modern web development stack detected
šŸ“¦ **Node.js Ecosystem** - Uses npm package management
🐳 **Containerized** - Docker deployment ready

File Content Analysis

# šŸ“„ File Content Analysis

## šŸ“‹ File Information
- **Repository:** microsoft/vscode
- **File Path:** `src/main.ts`
- **Branch:** main

## šŸ“Š Content Analysis
**File Type:** TypeScript
**Size:** 15.2 KB
**Lines:** 450
**Functions:** 12
**Classes:** 3
**Imports:** 25

## šŸ“ File Content
```typescript
import { app, BrowserWindow } from 'electron';
// ... (file content with syntax highlighting)

šŸ” Health Check

Monitor server status:

curl http://localhost:3000/health

Response:

{
  "status": "healthy",
  "transport": "streamable-http",
  "activeSessions": 2,
  "serverInfo": {
    "name": "GitHub-MCP",
    "version": "1.0.0"
  }
}

šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

šŸ“ License

This project is licensed under the Apache License 2.0 - see the file for details.

šŸ‘Øā€šŸ’» Author

Xingyu Chen

šŸ™ Acknowledgments


⭐ Star this repository if you find it helpful! ⭐