guangxiangdebizi/github-mcp-server
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.
š GitHub MCP Server
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
-
Copy environment template:
cp .env.example .env
-
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:
- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate a new token with
repo
scope - 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/organizationrepo
(required): Repository namepath
(optional): Specific directory to analyzebranch
(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/organizationrepo
(required): Repository namepath
(required): File path within the repositorybranch
(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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
š License
This project is licensed under the Apache License 2.0 - see the file for details.
šØāš» Author
Xingyu Chen
- š LinkedIn: Xingyu Chen
- š§ Email: guangxiangdebizi@gmail.com
- š GitHub: @guangxiangdebizi
- š¦ NPM: @xingyuchen
š Acknowledgments
- Built with the Model Context Protocol SDK
- Powered by GitHub REST API
- Inspired by the need for better AI-repository integration