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 Radiclerad_clone: Clone um repositório existente pelo RIDrad_status: Obtenha o status e as informações do repositóriorad_sync: Sincronize o repositório com a rederad_push: Envie alterações para a rede
Recursos de Colaboração
rad_patch_list: Liste patches (pull requests) em um repositóriorad_issue_list: Liste issues em um repositóriorad_remote_list: Liste remotes/nós de um repositório
Nó e Identidade
rad_id: Obtenha o ID do seu nó Radiclerad_help: Obtenha ajuda para comandos do Radicle
Pré-requisitos
-
Radicle CLI: Certifique-se de que o comando
radesteja instalado e disponível no seu PATH# Install Radicle (see https://radicle.xyz for installation instructions) curl -sSf https://install.radicle.xyz | sh -
Deno: Para executar o servidor MCP do GitHub
# Install Deno curl -fsSL https://deno.land/install.sh | sh -
Ambiente Python: Python 3.8+ com a biblioteca MCP
pip install mcp -
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
- Clone este repositório
- Instale as dependências:
pip install -e . - Instale o servidor MCP oficial do GitHub:
deno install -g --name github-mcp npm:@modelcontextprotocol/server-github - 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 conectividadegithub_sync_issues: Sincronize apenas issuesgithub_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
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Adicione testes se aplicável
- Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes