Labsco
fovi-llc logo

Radicle + GitHub

from fovi-llc

Interact with Radicle (peer-to-peer code collaboration) and GitHub through a unified interface.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

Radicle + GitHub MCP Server

A Model Context Protocol (MCP) server setup that provides tools for interacting with both Radicle (peer-to-peer code collaboration) and GitHub through a unified interface.

Features

This setup includes two MCP servers:

๐ŸŒŸ Radicle MCP Server (Python)

  • Repository Management: Initialize, clone, and inspect Radicle repositories
  • Synchronization: Sync repositories with the Radicle network
  • Patches & Issues: List and manage patches and issues
  • Node Information: Get node ID and remote information
  • Help System: Access Radicle command documentation
  • ๐Ÿ”„ GitHub Integration: Bidirectional sync of issues and PRs between GitHub and Radicle

๐Ÿ™ GitHub MCP Server (Official)

  • Repository Operations: Create, fork, clone GitHub repositories
  • Issue Management: Create, update, and manage GitHub issues
  • Pull Requests: Manage pull requests and reviews
  • File Operations: Read, write, and manage repository files
  • Search: Search repositories, issues, and code
  • User Management: Manage user and organization information

๐Ÿ”— GitHub โ†” Radicle Synchronization

  • Bidirectional Issue Sync: Automatically sync issues between platforms
  • Idempotent Operations: Safe to run multiple times without duplicates
  • Metadata Preservation: Maintains original author, links, and timestamps
  • Mapping Database: Tracks relationships between GitHub and Radicle items
  • MCP Integration: Available as AI assistant tools

Available Tools

Repository Operations

  • rad_init: Initialize a new Radicle repository
  • rad_clone: Clone an existing repository by RID
  • rad_status: Get repository status and information
  • rad_sync: Sync repository with the network
  • rad_push: Push changes to the network

Collaboration Features

  • rad_patch_list: List patches (pull requests) in a repository
  • rad_issue_list: List issues in a repository
  • rad_remote_list: List remotes/nodes for a repository

Node & Identity

  • rad_id: Get your Radicle node ID
  • rad_help: Get help for Radicle commands

Example Commands

Once connected to an MCP client, you can use natural language to interact with both platforms:

Radicle Operations

  • "Initialize a new Radicle repository called 'my-project'"
  • "Clone the repository with RID rad:z2..."
  • "Show me the current patches in this repository"
  • "Sync this repository with the network"
  • "What's my Radicle node ID?"

GitHub Operations

  • "Create a new GitHub repository called 'awesome-project'"
  • "List my recent GitHub repositories"
  • "Create an issue titled 'Bug fix needed'"
  • "Show me open pull requests in my repository"
  • "Search for repositories related to 'machine learning'"

Cross-Platform Workflows

  • "Publish this Radicle repository to GitHub"
  • "Sync issues between Radicle and GitHub"
  • "Compare this repository on both platforms"

Development

Running Tests

Copy & paste โ€” that's it
python -m pytest tests/

Code Style

Copy & paste โ€” that's it
black src/
flake8 src/

Project Structure

Copy & paste โ€” that's it
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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see LICENSE file for details

Related Links