Radicle + GitHub

Interaja com Radicle (colaboração de código ponto a ponto) e GitHub através de uma interface unificada.

Documentação

Radicle + GitHub MCP Server

Uma configuração de servidor Model Context Protocol (MCP) que fornece ferramentas para interagir com Radicle (colaboração de código ponto a ponto) e GitHub por meio de uma interface unificada.

Recursos

Esta configuração inclui dois servidores MCP:

🌟 Radicle MCP Server (Python)

  • Gerenciamento de Repositórios: Inicialize, clone e inspecione repositórios Radicle
  • Sincronização: Sincronize repositórios com a rede Radicle
  • Patches e Issues: Liste e gerencie patches e issues
  • Informações do Nó: Obtenha o ID do nó e informações remotas
  • Sistema de Ajuda: Acesse a documentação de comandos do Radicle
  • 🔄 Integração com GitHub: Sincronização bidirecional de issues e PRs entre GitHub e Radicle

🐙 GitHub MCP Server (Oficial)

  • Operações de Repositório: Crie, faça fork e clone repositórios do GitHub
  • Gerenciamento de Issues: Crie, atualize e gerencie issues do GitHub
  • Pull Requests: Gerencie pull requests e revisões
  • Operações de Arquivo: Leia, escreva e gerencie arquivos de repositório
  • Busca: Pesquise repositórios, issues e código
  • Gerenciamento de Usuários: Gerencie informações de usuários e organizações

🔗 Sincronização GitHub ↔ Radicle

  • Sincronização Bidirecional de Issues: Sincronize automaticamente issues entre plataformas
  • Operações Idempotentes: Seguro para executar várias vezes sem duplicatas
  • Preservação de Metadados: Mantém autor original, links e timestamps
  • Banco de Dados de Mapeamento: Rastreia relações entre itens do GitHub e do Radicle
  • Integração MCP: Disponível como ferramentas de assistente de IA

Ferramentas Disponíveis

Operações de Repositório

  • rad_init: Inicialize um novo repositório Radicle
  • rad_clone: Clone um repositório existente pelo RID
  • rad_status: Obtenha o status e as informações do repositório
  • rad_sync: Sincronize o repositório com a rede
  • rad_push: Envie alterações para a rede

Recursos de Colaboração

  • rad_patch_list: Liste patches (pull requests) em um repositório
  • rad_issue_list: Liste issues em um repositório
  • rad_remote_list: Liste remotes/nós de um repositório

Nó e Identidade

  • rad_id: Obtenha o ID do seu nó Radicle
  • rad_help: Obtenha ajuda para comandos do Radicle

Pré-requisitos

  1. Radicle CLI: Certifique-se de que o comando rad esteja instalado e disponível no seu PATH

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

    # Install Deno
    curl -fsSL https://deno.land/install.sh | sh
    
  3. Ambiente Python: Python 3.8+ com a biblioteca MCP

    pip install mcp
    
  4. Token de Acesso Pessoal do GitHub: Para integração com o GitHub

    • Acesse https://github.com/settings/tokens
    • Crie um novo token com permissões de repo, issues e pull requests
    • Defina como variável de ambiente: GITHUB_PERSONAL_ACCESS_TOKEN

Instalação

  1. Clone este repositório
  2. Instale as dependências:
    pip install -e .
    
  3. Instale o servidor MCP oficial do GitHub:
    deno install -g --name github-mcp npm:@modelcontextprotocol/server-github
    
  4. Execute o script de configuração:
    python setup_mcp.py
    

Uso

Configuração Rápida

# Set your GitHub token
export GITHUB_PERSONAL_ACCESS_TOKEN=your_token_here

# Run the setup script
python setup_mcp.py

Sincronização 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

Integração MCP

A funcionalidade de sincronização está disponível como ferramentas MCP:

  • github_sync_test: Teste a conectividade
  • github_sync_issues: Sincronize apenas issues
  • github_sync_full: Sincronização bidirecional completa

Consulte SYNC_README.md para documentação detalhada de sincronização.

Como Servidores Independentes

# Radicle MCP Server
python -m radicle_mcp.server

# GitHub MCP Server  
github-mcp

Com o Claude Desktop

O script de configuração cria automaticamente a configuração. Seu 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}"
      }
    }
  }
}

Integração com VS Code

Este projeto inclui configuração do VS Code para depuração do servidor MCP. Use o arquivo mcp.json fornecido para conectar clientes MCP compatíveis.

Exemplos de Comandos

Depois de conectado a um cliente MCP, você pode usar linguagem natural para interagir com ambas as plataformas:

Operações Radicle

  • "Inicialize um novo repositório Radicle chamado 'my-project'"
  • "Clone o repositório com RID rad:z2..."
  • "Mostre-me os patches atuais neste repositório"
  • "Sincronize este repositório com a rede"
  • "Qual é o ID do meu nó Radicle?"

Operações GitHub

  • "Crie um novo repositório GitHub chamado 'awesome-project'"
  • "Liste meus repositórios GitHub recentes"
  • "Crie uma issue intitulada 'Bug fix needed'"
  • "Mostre-me pull requests abertos no meu repositório"
  • "Pesquise repositórios relacionados a 'machine learning'"

Fluxos de Trabalho Entre Plataformas

  • "Publique este repositório Radicle no GitHub"
  • "Sincronize issues entre Radicle e GitHub"
  • "Compare este repositório em ambas as plataformas"

Desenvolvimento

Executando Testes

python -m pytest tests/

Estilo de Código

black src/
flake8 src/

Estrutura do Projeto

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

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça suas alterações
  4. Adicione testes se aplicável
  5. Envie um pull request

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes

Links Relacionados