Radicle + GitHub
Interactúa con Radicle (colaboración de código peer-to-peer) y GitHub a través de una interfaz unificada.
Documentación
Servidor MCP de Radicle + GitHub
Una configuración de servidor de Model Context Protocol (MCP) que proporciona herramientas para interactuar tanto con Radicle (colaboración de código peer-to-peer) como con GitHub a través de una interfaz unificada.
Características
Esta configuración incluye dos servidores MCP:
🌟 Servidor MCP de Radicle (Python)
- Gestión de repositorios: Inicializar, clonar e inspeccionar repositorios de Radicle
- Sincronización: Sincronizar repositorios con la red de Radicle
- Parches y problemas: Listar y gestionar parches y problemas
- Información del nodo: Obtener ID del nodo e información remota
- Sistema de ayuda: Acceder a la documentación de comandos de Radicle
- 🔄 Integración con GitHub: Sincronización bidireccional de problemas y PRs entre GitHub y Radicle
🐙 Servidor MCP de GitHub (Oficial)
- Operaciones de repositorio: Crear, hacer fork y clonar repositorios de GitHub
- Gestión de problemas: Crear, actualizar y gestionar problemas de GitHub
- Pull Requests: Gestionar pull requests y revisiones
- Operaciones de archivos: Leer, escribir y gestionar archivos del repositorio
- Búsqueda: Buscar repositorios, problemas y código
- Gestión de usuarios: Gestionar información de usuarios y organizaciones
🔗 Sincronización GitHub ↔ Radicle
- Sincronización bidireccional de problemas: Sincronizar automáticamente problemas entre plataformas
- Operaciones idempotentes: Seguro de ejecutar varias veces sin duplicados
- Preservación de metadatos: Mantiene autor original, enlaces y marcas de tiempo
- Base de datos de mapeo: Rastrea relaciones entre elementos de GitHub y Radicle
- Integración MCP: Disponible como herramientas de asistente de IA
Herramientas Disponibles
Operaciones de Repositorio
rad_init: Inicializar un nuevo repositorio de Radiclerad_clone: Clonar un repositorio existente por RIDrad_status: Obtener estado e información del repositoriorad_sync: Sincronizar repositorio con la redrad_push: Enviar cambios a la red
Funciones de Colaboración
rad_patch_list: Listar parches (pull requests) en un repositoriorad_issue_list: Listar problemas en un repositoriorad_remote_list: Listar remotos/nodos de un repositorio
Nodo e Identidad
rad_id: Obtener tu ID de nodo de Radiclerad_help: Obtener ayuda para comandos de Radicle
Requisitos Previos
-
Radicle CLI: Asegúrate de que el comando
radesté instalado y disponible en tu PATH# Install Radicle (see https://radicle.xyz for installation instructions) curl -sSf https://install.radicle.xyz | sh -
Deno: Para ejecutar el servidor MCP de GitHub
# Install Deno curl -fsSL https://deno.land/install.sh | sh -
Entorno de Python: Python 3.8+ con la biblioteca MCP
pip install mcp -
Token de acceso personal de GitHub: Para la integración con GitHub
- Ve a https://github.com/settings/tokens
- Crea un nuevo token con permisos de repo, issues y pull requests
- Establécelo como variable de entorno:
GITHUB_PERSONAL_ACCESS_TOKEN
Instalación
- Clona este repositorio
- Instala las dependencias:
pip install -e . - Instala el servidor MCP oficial de GitHub:
deno install -g --name github-mcp npm:@modelcontextprotocol/server-github - Ejecuta el script de configuración:
python setup_mcp.py
Uso
Configuración Rápida
# Set your GitHub token
export GITHUB_PERSONAL_ACCESS_TOKEN=your_token_here
# Run the setup script
python setup_mcp.py
Sincronización GitHub ↔ Radicle
# Test sync connectivity
python demo_sync.py
# Create a test issue (optional)
python create_test_issue.py
# Run full sync
python github_radicle_sync.py
# Or use CLI interface
python sync_cli.py --repo owner/repo --dry-run
python sync_cli.py --repo owner/repo --issues-only
Integración MCP
La funcionalidad de sincronización está disponible como herramientas MCP:
github_sync_test: Probar conectividadgithub_sync_issues: Sincronizar solo problemasgithub_sync_full: Sincronización bidireccional completa
Consulta SYNC_README.md para documentación detallada de sincronización.
Como Servidores Independientes
# Radicle MCP Server
python -m radicle_mcp.server
# GitHub MCP Server
github-mcp
Con Claude Desktop
El script de configuración crea automáticamente la configuración. Tu claude_desktop_config.json incluirá:
{
"mcpServers": {
"radicle-mcp": {
"command": "/path/to/python",
"args": ["-m", "radicle_mcp.server"]
},
"github-mcp": {
"command": "/path/to/github-mcp",
"args": [],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}
Integración con VS Code
Este proyecto incluye configuración de VS Code para depurar el servidor MCP. Usa el archivo mcp.json proporcionado para conectar clientes MCP compatibles.
Ejemplos de Comandos
Una vez conectado a un cliente MCP, puedes usar lenguaje natural para interactuar con ambas plataformas:
Operaciones de Radicle
- "Inicializa un nuevo repositorio de Radicle llamado 'my-project'"
- "Clona el repositorio con RID rad:z2..."
- "Muéstrame los parches actuales en este repositorio"
- "Sincroniza este repositorio con la red"
- "¿Cuál es mi ID de nodo de Radicle?"
Operaciones de GitHub
- "Crea un nuevo repositorio de GitHub llamado 'awesome-project'"
- "Lista mis repositorios recientes de GitHub"
- "Crea un issue titulado 'Se necesita corrección de errores'"
- "Muéstrame los pull requests abiertos en mi repositorio"
- "Busca repositorios relacionados con 'machine learning'"
Flujos de Trabajo Multiplataforma
- "Publica este repositorio de Radicle en GitHub"
- "Sincroniza issues entre Radicle y GitHub"
- "Compara este repositorio en ambas plataformas"
Desarrollo
Ejecutar Pruebas
python -m pytest tests/
Estilo de Código
black src/
flake8 src/
Estructura del Proyecto
radicle-mcp/
├── src/radicle_mcp/
│ ├── __init__.py
│ └── server.py # Main MCP server implementation
├── .vscode/
│ └── mcp.json # VS Code MCP configuration
├── .github/
│ └── copilot-instructions.md
├── pyproject.toml # Project configuration
└── README.md
Contribuciones
- Haz fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Añade pruebas si corresponde
- Envía un pull request
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles