Sign inSign up

nicholaswilde/syncthing-mcp-rs

By nicholaswilde

Updated 5 months ago

Image
Machine learning & AI
0

2.3K

nicholaswilde/syncthing-mcp-rs repository overview

Syncthing MCP Server (Rust)

A high-performance Model Context Protocol (MCP) server written in Rust that allows LLMs (like Claude Desktop) to monitor and manage Syncthing instances. This server acts as a sophisticated proxy for the Syncthing REST API, enabling autonomous folder management, device synchronization, and system monitoring.

✨ Features

  • Multi-Instance Management: Control and target multiple Syncthing instances from a single MCP server.
  • LLM Optimized: "Super-tools" and context-efficient design reduce token overhead and turns for AI agents.
  • Advanced Synchronization: Replicate or merge configurations (folders/devices) between different instances.
  • Self-Healing: Automated detection and resolution of stuck folders or offline devices.
  • Conflict Intelligence: Metadata-driven conflict detection with semantic diffing (JSON/YAML) and resolution previews.
  • Bandwidth Orchestration: Dynamic rate limiting with support for scheduled performance profiles (e.g., "working_hours").
  • Security First: Support for OS Keyring integration, encrypted configuration fields (ChaCha20-Poly1305), and sensitive data masking in logs.
  • Git-Sync: Automatically backup and version control your Syncthing configurations to a Git repository.

🚀 Quick Start

Docker Run

The simplest way to start the server using environment variables:

docker run --rm \
  -e SYNCTHING_API_KEY="your-api-key" \
  -e SYNCTHING_HOST="localhost" \
  -e SYNCTHING_PORT="8384" \
  nicholaswilde/syncthing-mcp-rs
Docker Compose

You can deploy the MCP server alongside a local Syncthing instance using the provided docker-compose.yml:

services:
  mcp-server:
    image: nicholaswilde/syncthing-mcp-rs
    environment:
      - SYNCTHING_URL=http://syncthing:8384
      - SYNCTHING_API_KEY=${SYNCTHING_API_KEY}
    depends_on:
      - syncthing

  syncthing:
    image: syncthing/syncthing:latest
    # ... standard syncthing config ...

🛠 Available Tools

The server exposes a wide range of tools for LLMs, including:

  • manage_folders / manage_devices: Bulk actions and lifecycle management.
  • browse_folder: Navigate synced directory structures.
  • get_instance_health: Detailed connectivity and resource metrics.
  • resolve_conflict: Guided conflict resolution with previews.
  • set_performance_profile: Switch between bandwidth limit presets.

🔒 Configuration

The image supports configuration via CLI arguments or environment variables.

  • SYNCTHING_API_KEY: Your Syncthing API key (supports keyring:... or encrypted:v1:...).
  • SYNCTHING_HTTP_SERVER__ENABLED: Set to true to enable the HTTP/SSE transport for remote access.

Note: This project is currently in active development and is not yet production-ready. Use at your own risk.

Tag summary

Content type

Image

Digest

sha256:e2b2be843

Size

13.3 MB

Last updated

5 months ago

docker pull nicholaswilde/syncthing-mcp-rs