Radicle MCP Server
A Model Context Protocol (MCP) server for Radicle CLI with versioning support.
Features
- Version Detection: Automatically detects Radicle CLI version at startup
- Version Management: Supports semantic versioning with base definitions and incremental updates
- Command Validation: Validates commands against version definitions
- Deprecation Handling: Warns about deprecated/obsolete features
- Hybrid Tool Approach: Dedicated tools for common commands + generic executor
- Error Handling: Structured error responses with JSON output when possible
Supported Commands
Dedicated Tools
The server automatically generates dedicated MCP tools for all Radicle commands and subcommands based on the installed version. For Radicle 1.5.0, this includes 71 dedicated tools:
Main Commands:
rad_auth,rad_block,rad_checkout,rad_clean,rad_clonerad_cob,rad_config,rad_follow,rad_fork,rad_helprad_id,rad_inbox,rad_init,rad_inspect,rad_issuerad_ls,rad_node,rad_patch,rad_path,rad_remoterad_seed,rad_self,rad_stats,rad_sync,rad_unblockrad_unfollow,rad_unseed
Subcommand Examples:
rad_issue_open,rad_issue_list,rad_issue_show,rad_issue_editrad_patch_open,rad_patch_list,rad_patch_show,rad_patch_mergerad_node_start,rad_node_stop,rad_node_status,rad_node_logsrad_config_get,rad_config_set,rad_config_schemarad_cob_create,rad_cob_show,rad_cob_update,rad_cob_log
Generic Tool
rad_execute: Execute any rad command (fallback for unsupported commands)
Version Support
- Supported Versions: 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.5.0
- Version Resolution: Falls back to closest available version if exact match not found
- Warning System: One-time warnings for version mismatches and deprecated features
- Dynamic Tool Generation: Tools are generated based on the specific version's capabilities
Installation
PyPI (Recommended)
pip install radicle-mcp-server
Development
# Clone the repository
git clone <repository-url>
# Install dependencies
cd radicle-mcp-server
uv sync
Running the Server
Using Just (Recommended)
just run # Stdio transport (default)
just run-http # HTTP transport on localhost:8000
Using UV Directly
uv run python -m src.server # Stdio transport
uv run python -m src.server --transport http # HTTP transport
MCP Client Configuration
OpenCode
Add to your MCP configuration:
{
"mcpServers": {
"radicle": {
"command": "radicle-mcp-server"
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"radicle": {
"command": "radicle-mcp-server"
}
}
}
Development (from source)
If you're developing from source, use:
{
"mcpServers": {
"radicle": {
"command": "uv",
"args": ["run", "python", "-m", "src.server"],
"cwd": "/path/to/radicle-mcp-server"
}
}
}
Usage
The server provides MCP tools that can be used with any MCP-compatible client. It automatically detects the installed Radicle CLI version and adapts its behavior accordingly.
Development
This project uses:
- FastMCP: For MCP server implementation
- uv: For dependency management
- Python 3.13+: For modern type annotations
Versioning System
The versioning system uses YAML definitions stored in src/definitions/:
radicle-1.1.0.yamlthroughradicle-1.5.0.yaml: Complete command definitions for each versionschema.py: Validation schema and data structures- Each version file contains all available commands, subcommands, options, and examples
This design allows for efficient handling of semantic versioning while maintaining backward compatibility.
Metadata
Release files for radicle-mcp-server 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| radicle_mcp_server-0.1.6.tar.gz | 101.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| radicle_mcp_server-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 142.8 kB
Release files / radicle_mcp_server-0.1.6.tar.gz
| Download URL | radicle_mcp_server-0.1.6.tar.gz |
|---|---|
| Size | 101.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a997c7b3e26caf1bd3951fd321d57ae91ff9bd86cc1bf1d0111d2cca9ca25291
|
|
BLAKE2b-256 checksum How to use checksums |
559536f4570cce7e7b1fd9d81bd56f0b650c92091160ce483f22a01e6c7b5eef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / radicle_mcp_server-0.1.6-py3-none-any.whl
| Download URL | radicle_mcp_server-0.1.6-py3-none-any.whl |
|---|---|
| Size | 41.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8cf0075fadab75c930accc7d6cccd6d92ef3e04c7263e2dab737bea70358cdea
|
|
BLAKE2b-256 checksum How to use checksums |
40e09ed24ba68bde91fb381db3058815a2f70ff11a2cd7499d49e97c29ba3c8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for radicle-mcp-server 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.