GitHub MCP Server with DeepSeek AI Integration 🚀
Fork of the official GitHub MCP Server with DeepSeek AI-powered tools for intelligent code analysis, content summarization, and description generation.
✨ What's New: DeepSeek AI Integration
This fork enhances the official GitHub MCP Server with DeepSeek AI-powered tools. When DEEPSEEK_API_KEY is configured, three new AI tools become available to MCP clients:
Quick Test Results
🔑 How It Works
Architecture
┌─────────────────────┐ MCP Protocol ┌──────────────────────┐
│ AI Client (LLM) │ ◄──────────────────► │ GitHub MCP Server │
│ (Claude, Copilot, │ │ ┌────────────────┐ │
│ DeepSeek, etc.) │ │ │ GitHub REST │ │
└─────────────────────┘ │ │ GitHub GraphQL │ │
│ │ GitHub Raw │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ DeepSeek AI ✨ │ │
│ └────────────────┘ │
└──────────────────────┘
The MCP server provides GitHub API tools to any MCP-compatible AI client. The DeepSeek integration adds AI-powered analysis tools that run server-side, meaning any MCP client (Claude, Copilot, DeepSeek-powered clients, etc.) can access them without needing their own AI key.
📦 Installation & Setup
Prerequisites
- Go 1.25+ (for building from source)
- GitHub Personal Access Token (classic or fine-grained)
- DeepSeek API Key (optional, for AI-powered tools)
Option 1: Build from Source
git clone https://github.com/ph7klw76/github-mcp-server2.git
cd github-mcp-server2
go build -o github-mcp-server ./cmd/github-mcp-server/
Option 2: Using Docker
docker build -t github-mcp-server2 .
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-github-token> \
-e DEEPSEEK_API_KEY=<your-deepseek-key> \
github-mcp-server2 stdio
🚀 Quick Start
Basic Usage (without AI tools)
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
./github-mcp-server stdio
With DeepSeek AI Tools Enabled
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
export DEEPSEEK_API_KEY="sk-xxxx"
export DEEPSEEK_MODEL="deepseek-v4-flash" # optional, this is the default
./github-mcp-server stdio
When the server starts, you'll see:
INFO "starting server" version=... host=... readOnly=false lockdownEnabled=false
INFO "DeepSeek AI integration enabled" model=deepseek-v4-flash
GitHub MCP Server running on stdio
HTTP Mode
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
export DEEPSEEK_API_KEY="sk-xxxx"
./github-mcp-server http --port 8082
🤖 MCP Client Configuration
VS Code / Copilot
{
"servers": {
"github-deepseek": {
"type": "stdio",
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"DEEPSEEK_API_KEY": "${input:deepseek_key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
},
{
"type": "promptString",
"id": "deepseek_key",
"description": "DeepSeek API Key",
"password": true
}
]
}
Claude Desktop
{
"mcpServers": {
"github-deepseek": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx",
"DEEPSEEK_API_KEY": "sk-xxxx"
}
}
}
}
Cursor
{
"mcpServers": {
"github-deepseek": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx",
"DEEPSEEK_API_KEY": "sk-xxxx"
}
}
}
}
🛠️ AI-Powered Tools
ai_summarize_content
Analyze and summarize any GitHub content using DeepSeek AI.
Input:
content(required): Text content from GitHub (issue body, PR description, code, etc.)goal(optional): What to do with the content. Default: "summarize"maxWords(optional): Maximum words in output. Default: 500, Range: 50-2000
Example goals: "summarize", "identify key points", "find bugs", "explain this code", "extract action items", "check for security issues"
ai_code_review
Review code for bugs, security, performance, and style issues.
Input:
code(required): Source code to reviewlanguage(optional): Programming language (e.g., "go", "python", "javascript")context(optional): Additional context about what the code should do
ai_generate_description
Generate GitHub content like PR descriptions, issue bodies, README sections.
Input:
prompt(required): What to generate (e.g., "Write a PR description for fixing a login bug")contentType(optional): Type of content -pr_description,issue_body,readme,release_notes,commit_message, orgeneral
⚙️ Environment Variables
📊 Toolset Configuration
The server supports selective toolset enabling via the --toolsets flag:
# Enable specific toolsets + AI tools
./github-mcp-server stdio --toolsets=default,deepseek_ai
# Enable only AI tools
./github-mcp-server stdio --toolsets=deepseek_ai
# Enable all tools including AI
./github-mcp-server stdio --toolsets=all
The deepseek_ai toolset is automatically included when DEEPSEEK_API_KEY is set and no specific toolsets are configured.
🔧 Development
Building
go build ./cmd/github-mcp-server/
Running Tests
go test ./...
Project Structure
.
├── cmd/github-mcp-server/ # Server entry point
├── internal/ghmcp/ # MCP server setup and initialization
├── pkg/
│ ├── deepseek/ # ✨ DeepSeek API client
│ ├── github/ # GitHub tools, resources, prompts
│ │ ├── deepseek_tools.go # ✨ AI-powered MCP tools
│ │ ├── tools.go # Tool registration (AllTools)
│ │ └── ...
│ ├── inventory/ # Tool/resource/prompt registry
│ └── ...
└── docs/ # Documentation
Key Files Modified
📝 Original Features (from github/github-mcp-server)
This fork retains all features from the official GitHub MCP Server:
- Repository Management: Browse code, search files, analyze commits
- Issue & PR Automation: Create, update, manage issues and pull requests
- CI/CD Intelligence: Monitor Actions, analyze build failures
- Code Security: Code scanning, secret scanning, Dependabot alerts
- Team Collaboration: Discussions, notifications, projects
- Remote & Local Server: Both HTTP and stdio transport modes
- Scope Filtering: PAT scope-based tool filtering
- Toolset Configuration: Selective tool enabling
- Read-Only & Lockdown Modes: Security-focused configurations
📄 License
This project is licensed under the MIT License. See LICENSE for details.
Original project: github/github-mcp-server
This README was generated by an AI agent (OpenHands) on behalf of the user.