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 Radicle
  • rad_clone: Clonar un repositorio existente por RID
  • rad_status: Obtener estado e información del repositorio
  • rad_sync: Sincronizar repositorio con la red
  • rad_push: Enviar cambios a la red

Funciones de Colaboración

  • rad_patch_list: Listar parches (pull requests) en un repositorio
  • rad_issue_list: Listar problemas en un repositorio
  • rad_remote_list: Listar remotos/nodos de un repositorio

Nodo e Identidad

  • rad_id: Obtener tu ID de nodo de Radicle
  • rad_help: Obtener ayuda para comandos de Radicle

Requisitos Previos

  1. Radicle CLI: Asegúrate de que el comando rad esté instalado y disponible en tu PATH

    # Install Radicle (see https://radicle.xyz for installation instructions)
    curl -sSf https://install.radicle.xyz | sh
    
  2. Deno: Para ejecutar el servidor MCP de GitHub

    # Install Deno
    curl -fsSL https://deno.land/install.sh | sh
    
  3. Entorno de Python: Python 3.8+ con la biblioteca MCP

    pip install mcp
    
  4. 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

  1. Clona este repositorio
  2. Instala las dependencias:
    pip install -e .
    
  3. Instala el servidor MCP oficial de GitHub:
    deno install -g --name github-mcp npm:@modelcontextprotocol/server-github
    
  4. 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 conectividad
  • github_sync_issues: Sincronizar solo problemas
  • github_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

  1. Haz fork del repositorio
  2. Crea una rama de características
  3. Realiza tus cambios
  4. Añade pruebas si corresponde
  5. Envía un pull request

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles

Enlaces Relacionados