sysbridge MCP sunucusu
Commit 17 Eki 2026AI agent'larına SSH ve SFTP üzerinden Linux, macOS veya Android düğümleri üzerinde yerel dosya sistemi, shell ve uzak masaüstü kontrolü sağlar.
Ayrıca bilinen adı 0xOpCode/sysbridge-mcp
- Yıldızlar
- 1
- Araçlar
- —
- İndirmeler, 30 gün
- —
- En son sürüm
- —
- Son commit
- 17 Eki 2026
- Lisans
- MIT
sysbridge MCP nedir?
sysbridge bir MCP sunucusudur. AI agent'larına SSH ve SFTP üzerinden Linux, macOS veya Android düğümleri üzerinde yerel dosya sistemi, shell ve uzak masaüstü kontrolü sağlar.
Özet, projenin README dosyasından oluşturuldu
sysbridge MCP sunucusu hakkında
sysbridge-mcp, AI agent'larına uzak Linux, macOS veya Android düğümleri üzerinde yerel kontrol yetkisi verir. Geliştiricilerin, hedef makinede varsayılan olarak herhangi bir yazılım kurulumu gerektirmeden, SSH ve SFTP üzerinden bir agent'a dosya sistemi erişimi, shell yürütme ve uzak masaüstü yetenekleri atamasını sağlar. Bu özellik, bulut VPS'leri, uzak iş istasyonlarını veya Android Termux ortamlarını Claude Desktop veya Cursor gibi yerel bir istemci üzerinden yönetmeyi ideal hale getirir.
Sunucu, standart sshd ile çalışan sıfır kurulumlu bir SSH modu ve değişen IP adreslerine sahip cihazlar için tam bir P2P mesh yapısı dahil olmak üzere çeşitli modlar aracılığıyla çalışır. Atomik yazma işlemleri ve çok parçalı düzenlemeler gerçekleştirmek için bellek içi bir Go SFTP alt sistemi kullanan üç katmanlı bir sanal dosya sistemi sunar. Uzun süren görevler için sistem, ağ geçişleri sırasında hata oluşmasını önlemek amacıyla komutları otomatik olarak tmux oturumlarına ayırır. Kullanıcılar ayrıca, düz metin şifreler yerine SSH agent yönlendirmesi yoluyla root erişimi sağlamak için pam_ssh_agent_auth kullanarak kriptografik şifresiz sudo seçeneğini kullanabilirler.
Neler yapabilirsiniz
- 1Uzak bulut sunucularını yönetinBir AI agent, yalnızca standart SSH kimlik bilgileri kullanarak yeni bir Ubuntu veya Debian VPS üzerinde dosya işlemleri gerçekleştirebilir ve komutlar çalıştırabilir.
- 2Uzun süren derleme işlemlerini sürdürünGeliştiriciler, Wi-Fi bağlantısı kopsa veya IP adresi değişse bile devam eden ağır derleme görevlerini çalıştırabilirler.
- 3Ayrıcalıkları güvenli bir şekilde yükseltinBir AI agent'ına, düz metin bir sudo şifresini asla ifşa etmeden sistem servislerini yönetmesi için root erişimi sağlayın.
- 4Mobil ve masaüstü düğümlerini bağlayınSıfır gecikmeli bir peer discovery mesh yapısı aracılığıyla bir dizüstü bilgisayarı kontrol etmek için Termux çalıştıran bir telefon kullanın.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
Yapılandırma
CGO_ENABLEDSYSBRIDGE_TOKEN
| Ad | Açıklama | Sunucu |
|---|---|---|
| CGO_ENABLED | — | |
| SYSBRIDGE_TOKEN | — |
Otomatik kontroller
Çalıştırıldı 15 Kas 2026Tam rapor →Henüz doğrulanmadı. Bir sunucunun 80 puana, ciddi bir bulgu olmamasına ve kontrol edebilmemiz için yeterli veriye ihtiyacı vardır. Kontroller nasıl çalışır · Daha fazla puan için nelerin düzeltileceği
- Kaynak deposu bağlantılı ve erişilebilir0xopcode/sysbridge-mcp is public and reachablegithub.com/0xopcode/sysbridge-mcp ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorKontrol edilmedi
- Derleme kökeni (Sigstore onayı)Kontrol edilmedi
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-10-17github.com/0xopcode/sysbridge-mcp ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilKontrol edilmedi
- Pakette veya bağımlılıklarında kritik uyarı yokKontrol edilmedi
- Modele yönelik gizli talimat yok0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişKontrol edilmedi
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
Give your AI agent native filesystem, shell, and desktop control over any remote Linux PC, Cloud VPS, or Android Termux node without installing the agent on the target machine.
Why I Built This • Architecture • Quick Start • MCP Transports • Tool Catalog • Cryptographic Sudo • Go SDK
📖 The Story: Why I Built sysbridge-mcp
I run my AI coding agent from an Android phone inside a Termux + Debian PRoot container while my actual workstation is an HP Pavilion G4 running a stripped-down Arch Linux + Sway Wayland setup (Daemon OS). My laptop has an old dual-core AMD A4-3330MX APU that lacks SSE4.2 and AES-NI instructions. Running modern bloated AI IDEs or heavy Node/Electron agent runtimes on that CPU causes immediate SIGILL core dumps or eats the RAM alive.
So the brain lived on my phone, and the muscle lived on my laptop.
At first, I did what every engineer does at 2 AM: I wrote a pile of bash scripts (ssh-laptop, ssh-phone) and a small UDP discovery daemon (buddy-link). Then I watched my AI agent try to edit files on the laptop over raw ssh user@host "cat << 'EOF' > file.go".
It was a comedy of errors:
- The Backtick Massacre: Any file containing nested backticks,
$variables, or escaped quotes got mangled by two layers of shell expansion before hitting disk. - The Wi-Fi Roam Curse: Whenever I unplugged USB tethering and switched to mobile hotspot, the laptop's IP changed, the TCP pipe snapped, and my 20-minute kernel build died at 94%.
- The Termux FUSE Wall: You cannot run
sshfsinside an unprivileged Android PRoot container because/dev/fuseis locked down. - The Sudo Dilemma: I wanted my agent to manage systemd services and mount LUKS vaults on my laptop, but I refused to put plaintext sudo passwords in a prompt or set
%wheel ALL=(ALL) NOPASSWD: ALLso anyone touching my physical keyboard had root.
I realized I did not want an "SSH wrapper." I wanted my agent to treat a remote laptop, a $4/month cloud VPS, or a homelab server as if its filesystem and process table were local, with zero software required on the remote machine by default, and optional superpowers when both machines run the binary.
That is why I merged buddy-link and my Arch workstation tooling into sysbridge-mcp.
⚡ What Makes sysbridge-mcp Different
- Zero-Install Remote Default (Mode A): Point it at any fresh Ubuntu, Debian, Arch, macOS, or Alpine VPS running standard
sshd. Nothing needs to be installed on the remote host. No root required on either side. - Mountless 3-Tier Virtual Filesystem (
pkg/vfs): Works on Android Termux, Docker containers, macOS, and Linux without kernel FUSE (sshfs). Surgical file reads, atomic writes, multi-hunk edits, and directory trees run over an in-memory Go SFTP subsystem (sftp-vfs) multiplexed over a warm SSH pool, with automatic fallback to POSIX byte streams (ssh-stream) if SFTP is disabled. - Broken-Pipe Immunity: Commands that run longer than
5s(configurable) automatically detach into a remotetmuxsession (ornohup+ PID sentinel iftmuxis not installed on the target VPS). Your Wi-Fi can drop for ten minutes while the remote compilation finishes undisturbed. - 7-Stage Zero-Hunt IP Resolver: Never type
ip addrorarp -aagain. Resolves dynamic peers across UDP:42424HMAC-SHA256 beacons, LinuxAF_NETLINKinstant link-state bursts, USB tethering (rndis0/usb0/ncm0), hotspot ARP/ADB neighbor MAC tables, and local subnet probes in<1ms. - Cryptographic Passwordless Sudo (
pam_ssh_agent_auth): Keepsudodisabled by default, or enablesudo.mode: "agent_forward"to forward your SSH agent socket per request. The remote PAM stack verifies a cryptographic signature from your SSH key, granting the agent root access without ever exposing a password or weakening physical console sudo. - Hardware Blocklist Guardrails: Hard-block specific block devices (such as
/dev/sdaon dual-boot machines) and critical paths (/boot/efi) inside the Go engine before any command or file write leaves the process.
🏗️ System Architecture
How the 3-Tier VFS & Progressive Peer Engine Works
| Layer | Primary Driver | Automatic Fallback | Root Required? | Target Requirement |
|---|---|---|---|---|
Filesystem (fs_*) |
sftp-vfs (Multiplexed Go SFTP over SSH pool) |
ssh-stream (Atomic temp-file POSIX byte streams) |
No | Standard sshd |
Command Runner (exec_run) |
Warm SSH channel + tmux auto-detach (>5s) |
nohup + PID & exit-code sentinel in /tmp |
No | Standard /bin/sh |
Port Tunnels (tunnel_manage) |
Native Go net.Listener <-> ssh.Client channel copy |
Auto-rebind supervisor on peer IP change | No | AllowTcpForwarding yes |
Peer Discovery (peer_*) |
Static IP / DNS / ~/.ssh/config host |
7-Stage Cascade + UDP :42424 HMAC-SHA256 Mesh |
No | Optional sysbridge-mcp daemon |
Privilege Elevation (sudo) |
Disabled by default (sudo.mode: "disabled") |
agent_forward via pam_ssh_agent_auth.so |
Opt-In | pam_ssh_agent_auth |
🚀 Quick Start
1. One-Line Install (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/0xOpCode/sysbridge-mcp/main/install.sh | sh
2. Install via Go Toolchain
go install github.com/0xOpCode/sysbridge-mcp/cmd/sysbridge-mcp@latest
3. Build from Source
git clone https://github.com/0xOpCode/sysbridge-mcp.git
cd sysbridge-mcp
CGO_ENABLED=0 go build -ldflags="-s -w" -o sysbridge-mcp ./cmd/sysbridge-mcp
🎯 Complete User Setup Guide: 3 Progressive Tiers
You can use sysbridge-mcp in three progressive tiers depending on how much control you want over the remote machine.
Tier 1: Zero-Install SSH Mode (Any Cloud VPS, Linux PC, or macOS Host)
Best for: Production VPS servers, cloud VMs, or shared machines where you do not want to install extra software or use sudo.
- Target Machine Requirements: Standard
sshdand your SSH public key in~/.ssh/authorized_keys. Nothing is installed on the remote machine. - Controller Setup (
~/.config/sysbridge/config.yaml):default_peer: "my_vps" peers: my_vps: name: "my_vps" host: "203.0.113.42" # IP or domain name user: "ubuntu" # Normal non-root user ssh_port: 22 auth: method: "key" identity_file: "~/.ssh/id_ed25519" sudo: mode: "disabled" # Strictly non-sudo vfs: backend: "auto" # Uses sftp-vfs, falls back to ssh-stream workspace_root: "/home/ubuntu/projects" - Or register dynamically from chat without touching config:
Ask your agent: "Connect to peer
my_vpsat203.0.113.42with userubuntuand save config." (peer_connecttool). - What you get immediately: Full
fs_read,fs_write,fs_edit,fs_multi_edit,fs_search,fs_ops,exec_run(with automaticnohupbackgrounding for commands>5s), and native Go SSH port tunnels (tunnel_manage).
Tier 2: Unbreakable Roaming Workstation (tmux + mosh + rg + rsync)
Best for: Heavy compilation, kernel/Docker builds, and coding over mobile hotspots or unstable Wi-Fi.
- Ask your agent to audit the remote machine:
Run peer_provision with action="audit" on peer "laptop" - Install the standard packages on the target machine if missing:
- Arch Linux:
sudo pacman -S tmux mosh ripgrep rsync - Ubuntu / Debian:
sudo apt install tmux mosh ripgrep rsync - macOS:
brew install tmux mosh ripgrep rsync
- Arch Linux:
- What this unlocks:
- Commands running longer than
5sdetach into namedtmuxsessions (/tmp/sysbridge_<id>.log) that you can inspect, tail, or send keystrokes to viatask_control. mosh_controlspawnsmosh-serverover UDP60000:61000so interactive terminal sessions survive IP changes and laptop sleep.fs_searchaccelerates content search usingrg(ripgrep), andsync_transferuses deltarsync.
- Commands running longer than
Tier 3: Full P2P Mesh (<1ms Zero-IP-Hunt) + Cryptographic Agent Sudo
Best for: Phone (Termux) <-> Laptop / Homelab setups where IPs change constantly across Wi-Fi, Hotspot, and USB Tethering.
Step A: Enable Bidirectional UDP :42424 Mesh Discovery (Rootless)
- Generate a shared 256-bit HMAC key on Machine A:
mkdir -p ~/.config/sysbridge && chmod 700 ~/.config/sysbridge sysbridge-mcp keygen > ~/.config/sysbridge/secret.key chmod 600 ~/.config/sysbridge/secret.key - Copy the same
~/.config/sysbridge/secret.keyto Machine B and installsysbridge-mcpon Machine B (curl -fsSL https://raw.githubusercontent.com/0xOpCode/sysbridge-mcp/main/install.sh | sh). - Ask the agent to enable the rootless user-level mesh service on Machine B:
(This creates and startsRun peer_provision with action="setup_user_mesh" and apply=true on peer "laptop"~/.config/systemd/user/sysbridge-mesh.servicerunningsysbridge-mcp daemon --port 42424without root). - Set
host: "auto"in your peer config. Both machines now discover each other's live IP in<1msvia signed UDP beacons and Linux Netlink interface bursts.
Step B: Optional Cryptographic Passwordless Sudo (pam_ssh_agent_auth)
If you want your agent to run sudo commands on the remote workstation when connected with your SSH key, without setting NOPASSWD: ALL for local console users:
- Ask the agent to generate or apply the PAM configuration:
Run peer_provision with action="setup_pam_ssh_sudo" on peer "laptop" - Ensure
/etcand/etc/securityare owned byroot:rootwith mode0755(pam_ssh_agent_auth.sorejects authentication if/etcis group-writable0775), your public key is in/etc/security/authorized_keys, andsudo.mode: "agent_forward"is set inconfig.yaml.
🔌 Multi-Protocol MCP Transports
sysbridge-mcp implements every MCP transport protocol in a single static binary:
# 1. Standard I/O (Default - Claude Code, Claude Desktop, Cursor, Windsurf, Zed)
sysbridge-mcp --transport stdio
# 2. Streamable HTTP (Single /mcp endpoint with session management)
sysbridge-mcp --transport http --listen 127.0.0.1:8787
# 3. Legacy SSE (/sse stream + /message POST for n8n and older MCP gateways)
sysbridge-mcp --transport sse --listen 127.0.0.1:8787
# 4. Dual HTTP Mode (Serves both /mcp Streamable HTTP, /sse + /message, and /healthz on one port)
sysbridge-mcp --transport dual --listen 0.0.0.0:8787
# 5. Unix Domain Socket (Share one warm SSH/SFTP pool across multiple local CLI sessions)
sysbridge-mcp --transport unix --socket ~/.cache/sysbridge/sysbridge.sock
Client Configuration Snippets
claude mcp add sysbridge -- sysbridge-mcp --transport stdio
{
"mcpServers": {
"sysbridge": {
"command": "sysbridge-mcp",
"args": ["--transport", "stdio", "--config", "~/.config/sysbridge/config.yaml"]
}
}
}
Start the server in dual mode with a Bearer token:
export SYSBRIDGE_TOKEN="your-secret-token"
sysbridge-mcp --transport dual --listen 0.0.0.0:8787
Connect n8n's MCP Client node to http://your-host:8787/sse or Streamable HTTP clients to http://your-host:8787/mcp with header Authorization: Bearer your-secret-token.
🛠️ MCP Tool Catalog (14 Unified Tools)
Instead of exposing 50 granular shell wrappers that bloat the model's context window, sysbridge-mcp provides 14 high-density tools that work identically across local mounts, SFTP, and raw SSH streams:
| Tool Name | Category | Description |
|---|---|---|
peer_list |
Mesh & Peers | List configured and discovered peers, IP resolution stage, active VFS backend (sftp-vfs / ssh-stream), and RTT latency. |
peer_connect |
Mesh & Peers | Probe connectivity, switch the active default peer, or register a new SSH/VPS host at runtime without restarting. |
peer_provision |
Mesh & Peers | Audit remote capabilities or opt-in provision rootless systemd --user mesh beacons and pam_ssh_agent_auth sudo rules. |
fs_read |
Virtual FS | Read remote files with line numbers, offset/limit pagination, or base64 encoding for binary/image assets. |
fs_write |
Virtual FS | Atomic remote file write via temp-file + fsync + POSIX rename while preserving file mode bits. |
fs_edit |
Virtual FS | Surgical exact-block replacement (old_string -> new_string, single or replace_all) returning a unified diff. |
fs_multi_edit |
Virtual FS | Apply multiple sequential surgical edits to a remote file in one atomic SFTP/stream transaction. |
fs_search |
Virtual FS | Fast remote file pattern matching (glob) and content regex search (grep via rg/grep or SFTP walk). |
fs_ops |
Virtual FS | Unified filesystem operations: ls, tree, stat, mkdir, mv, cp, chmod, rm (with confirmation guard), and sha256. |
exec_run |
Compute & Shell | Run commands over warm SSH channels with custom cwd, env, sudo, and automatic >5s detachment into tmux or nohup. |
task_control |
Compute & Shell | Inspect or control detached background jobs: list, status, tail, send_keys, and kill. |
mosh_control |
Roaming UDP | Spawn mosh-server on the remote host, verify UDP port reachability (60000:61000), and return MOSH_KEY session details. |
tunnel_manage |
Networking | Create, list, and remove persistent or RAM-only local (-L) and reverse (-R) port tunnels in pure Go. |
sync_transfer |
File Sync | SFTP push/pull transfers, one-shot rsync delta directory sync, and live background directory watchers. |
sys_bridge |
OS & Desktop | Single-call hardware/OS telemetry, systemctl service control, Wayland (swaymsg/grim) & Android (adb) screen capture, clipboard sync, and alerts. |
🔐 Cryptographic Sudo Bridge (pam_ssh_agent_auth)
By default, every peer starts with sudo.mode: "disabled". The agent runs strictly inside the non-root SSH user's permissions.
If you want your agent to perform system administration on your workstation or VPS without putting a sudo password in config files and without setting NOPASSWD: ALL in /etc/sudoers:
- Enable
pam_ssh_agent_authon the remote Linux host (you can ask the agent to runpeer_provisionwithaction: "setup_pam_ssh_sudo"to generate or apply the exact config):# /etc/sudoers.d/sysbridge-agent Defaults env_keep += "SSH_AUTH_SOCK" # /etc/pam.d/sudo (top line) auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys - Set
sudo.mode: "agent_forward"for that peer in~/.config/sysbridge/config.yaml. - When a tool call passes
sudo: true,sysbridge-mcpattaches your localSSH_AUTH_SOCKagent channel to that SSH session.sudoverifies a cryptographic signature from your SSH private key. Anyone typingsudoon the physical laptop keyboard still has to type the normal password.
📦 Using as a Go Library
All core engines live in importable pkg/* packages so you can embed sysbridge-mcp into your own Go agents or orchestrators:
package main
import (
"context"
"fmt"
"github.com/0xOpCode/sysbridge-mcp/internal/config"
"github.com/0xOpCode/sysbridge-mcp/pkg/safety"
"github.com/0xOpCode/sysbridge-mcp/pkg/transport"
"github.com/0xOpCode/sysbridge-mcp/pkg/vfs"
)
func main() {
cfg := config.DefaultConfig()
guard := safety.NewGuard(cfg.Safety.BlockedDevices, cfg.Safety.BlockedPaths, true)
pool := transport.NewPool(cfg, guard, nil)
defer pool.Close()
fsEngine := vfs.NewEngine(pool)
res, err := fsEngine.ReadFile(context.Background(), "laptop", "/etc/hostname", 1, 10)
if err != nil {
panic(err)
}
fmt.Printf("Read via %s: %s\n", res.Backend, res.Content)
}
🧭 Standalone CLI Subcommands
Alongside running as an MCP server, sysbridge-mcp includes direct CLI subcommands that replace legacy buddy-link and ssh-laptop scripts:
sysbridge-mcp serve [--transport stdio|http|sse|dual|unix] [--listen :8787]
sysbridge-mcp daemon [--port 42424] # Run background UDP P2P mesh discovery & tunnel supervisor
sysbridge-mcp status [peer] # Show peer link status, IP, VFS tier, and telemetry
sysbridge-mcp ip [peer] # Output raw resolved peer IP for shell scripts
sysbridge-mcp exec [-d] [-peer name] <cmd> # Run command on peer (auto-detaches in tmux/nohup with -d)
sysbridge-mcp send [-peer name] <file> # Push file via SFTP/SCP to peer Downloads directory
sysbridge-mcp tunnel <add|list|remove> # Manage persistent and RAM-only SSH port tunnels
sysbridge-mcp keygen # Generate a new 256-bit hex HMAC mesh secret key
sysbridge-mcp version # Print version and build metadata
📄 License
Released under the MIT License. Built by Akash Deep (@0xOpCode).
sysbridge MCP soruları
Uzak makineye yazılım kurmam gerekiyor mu?
Hayır, Zero-Install Remote Default modu, hedef ana makinede ek bir yazılım gerektirmeden herhangi bir standart SSH sunucusuyla çalışır.
Sunucu kararsız internet bağlantılarını nasıl yönetiyor?
5 saniyeden fazla süren komutlar otomatik olarak uzak bir tmux oturumuna ayrılır; bu sayede bağlantı kopsa bile süreçlerin tamamlanmasına olanak tanır.
Şifremi ifşa etmeden sudo kullanabilir miyim?
Evet, SSH agent socket'inizi yönlendirerek kriptografik şifresiz sudo özelliğini etkinleştirebilirsiniz; bu, uzak PAM yığınının kimliğinizi imza yoluyla doğrulamasını sağlar.
Hangi taşıma protokolleri destekleniyor?
Sunucu stdio, Streamable HTTP, SSE, dual HTTP modu ve Unix Domain Sockets protokollerini destekler.