https://github.com/scopweb/mcp-go-github
Go-based MCP server that connects GitHub to Claude Desktop, enabling direct repository operations from Claude's interface.
https://github.com/scopweb/mcp-go-github
claude-desktop github-mcp-server go
Last synced: 2 months ago
JSON representation
Go-based MCP server that connects GitHub to Claude Desktop, enabling direct repository operations from Claude's interface.
- Host: GitHub
- URL: https://github.com/scopweb/mcp-go-github
- Owner: scopweb
- Created: 2025-06-01T08:08:53.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-09-02T08:32:31.000Z (2 months ago)
- Last Synced: 2025-09-02T10:23:46.677Z (2 months ago)
- Topics: claude-desktop, github-mcp-server, go
- Language: Go
- Homepage:
- Size: 48.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-mcp-servers - **mcp-go-github** - Go-based MCP server that connects GitHub to Claude Desktop, enabling direct repository operations from Claude's interface. `go` `claude-desktop` `github-mcp-server` `mcp` `server` `go install scopweb/github-go-server-mcp@latest` (DevOps)
- awesome-mcp-servers - **mcp-go-github** - Go-based MCP server that connects GitHub to Claude Desktop, enabling direct repository operations from Claude's interface. `go` `claude-desktop` `github-mcp-server` `mcp` `server` `go install scopweb/github-go-server-mcp@latest` (DevOps)
README
# GitHub MCP Server 🚀
Go-based MCP server that connects GitHub to Claude Desktop, enabling direct repository operations from Claude's interface.
**🎯 Latest Update:** Updated to `go-github v74.0.0` for enhanced stability and compatibility.
## ✨ Nuevas Características
### 🎯 **Soporte de Perfiles Múltiples**
- **Un solo ejecutable** para múltiples cuentas GitHub
- **Configuración diferenciada** por perfil
- **Logs informativos** con identificación de perfil
- **Gestión simplificada** de tokens
## 📋 Permisos Necesarios del Token
Para que todas las funciones trabajen correctamente, tu **GitHub Personal Access Token** debe tener estos permisos:
### 🔑 Mínimos Requeridos:
```
✅ repo (Full control of private repositories)
- Necesario para crear repos, issues, PRs
- Permite lectura/escritura en repositorios
```
### 🔧 Opcionales (para funcionalidad completa):
```
✅ delete_repo (Delete repositories) - Solo si necesitas borrar repos
✅ workflow (Update GitHub Action workflows) - Para trabajar con Actions
✅ admin:repo_hook (Repository hooks) - Para webhooks
```
### 📝 Generar Token:
1. Ve a: [GitHub Settings → Personal Access Tokens](https://github.com/settings/tokens)
2. Click "Generate new token (classic)"
3. Selecciona los scopes necesarios arriba
4. Copia el token generado
## 🛠️ Instalación
```bash
# Instalar dependencias
go mod tidy
# Compilar (usando el script incluido)
.\compile.bat
# O compilar manualmente
go build -o github-mcp-modular.exe .
```
## 🧪 Testing
El proyecto incluye tests unitarios completos:
```bash
# Ejecutar todos los tests
go test ./...
# Ejecutar tests con verbose
go test ./... -v
# Ejecutar tests de un módulo específico
go test ./internal/hybrid/ -v
```
## ⚙️ Configuración Claude Desktop
### 🔥 **Configuración con Perfiles Múltiples** (Recomendado)
```json
{
"mcpServers": {
"github-personal": {
"command": "C:\\MCPs\\clone\\github-go-server-mcp\\github-mcp-modular.exe",
"args": ["--profile", "personal"],
"env": {
"GITHUB_TOKEN": "ghp_token_personal"
}
},
"github-empresa": {
"command": "C:\\MCPs\\clone\\github-go-server-mcp\\github-mcp-modular.exe",
"args": ["--profile", "empresa"],
"env": {
"GITHUB_TOKEN": "ghp_token_empresa"
}
}
}
}
```
### 📦 **Configuración Básica** (Un solo token)
```json
{
"mcpServers": {
"github-mcp": {
"command": "C:\\MCPs\\clone\\github-go-server-mcp\\github-mcp-modular.exe",
"args": [],
"env": {
"GITHUB_TOKEN": "tu_token_aqui_con_permisos_repo"
}
}
}
}
```
## 🧪 Herramientas Disponibles (Todas Testeadas ✅)
| Función | Estado | Descripción |
|---------|---------|-------------|
| **🔍 Git Local & GitHub API** | ✅ **Híbrido** | Detecta Git local automáticamente |
| **📋 github_list_repos** | ✅ **Testeado** | Lista repositorios del usuario |
| **🆕 github_create_repo** | ✅ **Testeado** | Crea nuevo repositorio |
| **📊 github_get_repo** | ✅ **Testeado** | Obtiene información de repositorio |
| **🌿 github_list_branches** | ✅ **Testeado** | Lista ramas de un repositorio |
| **🔄 github_list_prs** | ✅ **Testeado** | Lista pull requests |
| **✨ github_create_pr** | ✅ **Testeado** | Crea nuevo pull request |
| **🐛 github_list_issues** | ✅ **Testeado** | Lista issues de un repositorio |
| **📝 github_create_issue** | ✅ **Testeado** | Crea nuevo issue |
| **🔧 git_status** | ✅ **Local** | Estado del repositorio Git local |
| **📁 git_list_files** | ✅ **Local** | Lista archivos en el repositorio |
| **📄 create_file** | ✅ **Híbrido** | Crea archivos (Git local primero) |
| **✏️ update_file** | ✅ **Híbrido** | Actualiza archivos (Git local primero) |
## 🚀 Uso
1. **Compilar el servidor**: `.\compile.bat`
2. **Generar token(s) GitHub** con permisos `repo`
3. **Configurar Claude Desktop** con perfiles
4. **Reiniciar Claude Desktop**
5. **Verificar logs** para confirmar inicio correcto
## 💡 Ventajas del Sistema de Perfiles
- ✅ **Un solo ejecutable** para mantener
- ✅ **Múltiples cuentas GitHub** simultáneas
- ✅ **Logs diferenciados** por perfil
- ✅ **Actualizaciones automáticas** para todas las instancias
- ✅ **Configuración más limpia**
## ⚠️ Solución de Problemas
### Error 403 "Resource not accessible by personal access token"
- ❌ Tu token no tiene permisos suficientes
- ✅ Genera nuevo token con scope `repo`
- ✅ Reinicia Claude Desktop después del cambio
### Error "null" en respuestas
- ⚠️ Normal para repos vacíos o sin PRs/issues
- ✅ El MCP funciona correctamente
### Logs del servidor
Verifica los logs de Claude Desktop para ver mensajes como:
```
🚀 Starting GitHub MCP Server with profile: personal
📋 Profile: personal | Token: ghp_111***
🔧 Git environment detected for profile: personal
```
## 🔒 Mejoras de Seguridad (Implementadas por GitHub Copilot)
GitHub Copilot, ha realizado una revisión y fortalecimiento de la seguridad de este MCP. Se han implementado las siguientes mejoras clave para garantizar que el servidor sea más robusto y seguro contra posibles ataques:
- **Prevención de Inyección de Argumentos**: Se ha neutralizado el riesgo de que un atacante pueda inyectar comandos no deseados (como `--force`) a través de los argumentos de las herramientas `git`.
- **Defensa contra "Path Traversal"**: Se ha añadido una capa de validación que impide el acceso a archivos o directorios fuera del repositorio de trabajo, protegiendo la integridad del sistema.
- **Validación Estricta de Entradas**: El servidor ahora verifica rigurosamente los datos de entrada, rechazando cualquier solicitud con argumentos mal formados o ausentes antes de que pueda causar un comportamiento inesperado.
Con estos cambios, el MCP es ahora mucho más seguro. ¡Un saludo, amigo!
## 📊 Estado del Proyecto
- ✅ **Funciones de lectura**: Completamente operativas
- ✅ **Funciones de escritura**: Completamente operativas
- ✅ **Sistema híbrido Git**: Git local + GitHub API
- ✅ **Soporte multi-perfil**: Implementado y testeado
- ✅ **Gestión de permisos**: Documentada y verificada
- ✅ **Testing completo**: Todas las funciones probadas con tests unitarios
- ✅ **Dependencias actualizadas**: go-github v74.0.0 (latest stable)
- ✅ **Listo para producción**: Stable release v2.1
## 🔧 Requisitos del Sistema
- **Go**: 1.19 o superior
- **Git**: Para operaciones locales (opcional pero recomendado)
- **Windows**: PowerShell para scripts de compilación
- **GitHub Token**: Con permisos `repo` mínimos