CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Mcp Sftp Orchestrator

fkom13/mcp-sftp-orchestrator
STDIOregistry active
Summary

This is a task orchestration server for managing remote Linux boxes over SSH and SFTP. It exposes tools to run commands, transfer files with glob patterns, monitor system resources, check service status for systemd/Docker/PM2, and tail logs. The queue system handles long-running operations with automatic retries and persistent state. You can set up multiple server aliases with key or password auth, execute interactive commands with auto-response to prompts, and maintain a health check catalog for HTTP endpoints. Useful when you're automating deployments, gathering metrics from production servers, or need an LLM to inspect and manipulate remote infrastructure without writing custom scripts.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

🚀 MCP Orchestrator — SSH/SFTP Infrastructure Orchestration Server

Version : 11.3.0
License : MIT
Node : >= 18.0.0

A Model Context Protocol (MCP) server that turns any AI agent (Claude, OpenCode, Cursor...) into a full-fledged system administrator. Persistent queue, SSH connection pool, hybrid sync/async execution.

✨ Key Features

  • 63 MCP tools — SSH, SFTP, file ops, monitoring, snapshots, tunnels
  • Built-in security — Command blocklist, port allowlist, hash protection
  • Multi-server — task_exec {alias:["vps1","vps2"]} or alias:"all"}
  • Persistence — tmux + persistent queue = sessions that survive crashes
  • Snapshots — Deduplicated versioning of your critical files
  • SSH Tunnels — Local, Remote, SOCKS5 with secured port allowlist
  • AI Guide — Built-in manual for the agent (section:index/workflows/audit/security)

🇫🇷 Version française : README.fr.md


📦 Installation

Via npx (recommended)

npx @fkom13/mcp-sftp-orchestrator

Via git

git clone https://github.com/fkom13/mcp-sftp-orchestrator.git
cd mcp-sftp-orchestrator
npm install
cp .env.example .env
# Edit .env with your paths

Requirements: Node.js >= 18.0.0


⚙️ Configuration (.env)

All variables are optional. Defaults are designed for standard usage.

VariableDefaultDescription
MCP_DATA_DIR~/.config/mcp-orchestratorData directory (servers.json, apis.json, queue.json)
MCP_SYNC_TIMEOUT_S120Seconds before background execution
MCP_DEFAULT_CMD_TIMEOUT_S600Default SSH timeout (0 = unlimited)
MCP_INTERACTIVE_CMD_TIMEOUT_S300Interactive command timeout (0 = unlimited)
MCP_MAX_WAIT_TIMEOUT_S600Max timeout for task_wait
MAX_CONNECTIONS_PER_SERVER5Max parallel SSH connections per server
MIN_CONNECTIONS_PER_SERVER1Min pooled connections per server
IDLE_TIMEOUT300000Idle connection close delay (ms)
KEEP_ALIVE_INTERVAL30000SSH keepalive interval (ms)
MAX_QUEUE_SIZE1000Max jobs in queue
SAVE_INTERVAL5000Queue disk save interval (ms)
MCP_ALLOWED_ROOTS(empty)Restrict file access to these roots (comma-separated). Empty = full access
MCP_DEBUGfalseEnable detailed debug logs

🔌 MCP Client Configuration (OpenCode, Claude Desktop, etc.)

{
  "mcpServers": {
    "orchestrator": {
      "command": "node",
      "args": ["/path/to/sftp-mcp/server.js"],
      "env": {
        "MCP_DATA_DIR": "/path/to/sftp-mcp/data"
      }
    }
  }
}

🧰 Tool Reference (63 tools)

Help & Diagnostics

ToolDescription
helpComplete guide: tools, env vars, parameter schemas
guideAI manual: workflows, cheatsheet, audit, security
system_diagnosticsFull system diagnostic (queue, pool, servers, APIs)

Server Management

ToolDescription
server_addAdd/update a server alias
server_listList all configured servers
server_removeRemove a server alias
infra_overviewFleet-wide overview (roles, services, warnings)
server_note_set/get/list/removeDocumented server context

Security (Blocklist)

ToolDescription
policy_blocklist_listList blocked commands
policy_blocklist_addAdd a pattern to blocklist
policy_blocklist_removeRemove a pattern from blocklist

Task Execution

ToolDescription
task_execSSH one-shot. Supports alias:["vps1","vps2"] or alias:"all"
task_exec_interactiveSSH with interactive prompt handling
task_exec_sequenceSequential SSH commands
task_transferSFTP transfer. Supports server_to_server
task_transfer_multiBulk transfers with glob patterns

Monitoring

ToolDescription
get_system_resourcesCPU, RAM, Disk metrics
get_services_statussystemd, Docker, PM2 status (graceful fallback)
get_fail2ban_statusFail2Ban status
check_api_healthHTTP health check

Logs

ToolDescription
get_pm2_logsPM2 logs
get_docker_logsDocker logs
tail_fileTail a remote file

File Operations (Local + Remote)

ToolDescription
file_readRead file + SHA-256 hash (edit protection)
file_writeCreate/overwrite with dryRun and backup
file_editSurgical or full edit + hash protection

Comparison & Drift Detection

ToolDescription
diff_filesCompare 2 files (local/remote, cross-server)
diff_foldersCompare 2 directories
compare_all_sourcesDetect drifts across N servers

Persistent Shell Sessions

ToolDescription
shell_createOpen a persistent shell (cd/env preserved)
shell_execExecute in an existing session
shell_list / shell_closeList/close sessions

tmux (Surviving Terminal Sessions)

ToolDescription
tmux_createCreate a persistent tmux session
tmux_execSend a command to a session
tmux_readRead session buffer
tmux_list / tmux_killList/kill sessions

SSH Tunnels

ToolDescription
tunnel_createLocal/remote/SOCKS5 tunnel, persistent via tmux
tunnel_listList active tunnels
tunnel_closeClose a tunnel
tunnel_allowlist_add/removeManage allowed ports

Snapshots (File Versioning)

ToolDescription
snapshot_createCapture file state with deduplication
snapshot_listList snapshots
snapshot_diffCompare 2 snapshots
snapshot_restoreRestore (dryRun by default)
snapshot_deleteDelete + orphan cleanup

Queue & Monitoring

ToolDescription
task_queueView all active/pending tasks
task_statusTask detail by ID
task_historyFilterable history
task_retryRetry a failed task
task_waitWait for a background task
task_logsMCP internal logs
queue_stats / pool_statsQueue and SSH pool stats

API Catalog

ToolDescription
api_add / api_list / api_removeAPI monitoring catalog
api_checkHealth check via SSH + curl

📖 Usage Examples

Multi-server

# One command, multiple servers
task_exec {alias:["vps1","vps2","vps3"], cmd:"uptime"}

# Entire fleet
task_exec {alias:"all", cmd:"df -h /"}

SOCKS5 Proxy Tunnel

tunnel_create {name:"proxy", type:"socks", listen_port:1080, via:"vps_paris"}
# → Browser → SOCKS5 127.0.0.1:1080 → Paris VPS

Local Tunnel (access remote service)

tunnel_create {name:"crm", type:"local", listen_port:8080, target:"127.0.0.1:3100", via:"vps_prod"}
# → http://localhost:8080 → production CRM

Remote Tunnel (expose local service)

tunnel_create {name:"dev", type:"remote", listen_port:9090, target:"127.0.0.1:3000", via:"vps", source:"vps_prod", key_path:"/home/user/.ssh/vps.key"}
# → vps_prod:9090 → your local machine:3000

Persistent tmux Session

tmux_create {alias:"vps", name:"build", start_cmd:"npm run build"}
tmux_read {alias:"vps", session:"build"}
tmux_kill {alias:"vps", session:"build"}

Security Blocklist

# List blocked commands
policy_blocklist_list
# → ["rm -rf /", "mkfs*", ...]

# Conscious bypass
task_exec {alias:"vps", cmd:"rm -rf /tmp/cache", skip_policy:true}

Secure File Editing

# Read + hash
file_read {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"}}
# → content + hash

# Edit with protection
file_edit {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"},
           oldString:"worker_connections 768;",
           newString:"worker_connections 1024;",
           expectedHash:"abc123...",
           backup:true}

# Preview without writing
file_edit {source:{type:"remote", alias:"vps", path:"/etc/nginx/nginx.conf"},
           oldString:"worker_connections 768;",
           newString:"worker_connections 1024;",
           dryRun:true}

Snapshot Before Risky Changes

# Before
snapshot_create {source:{type:"remote", alias:"vps"}, paths:["/etc/nginx/"], tag:"before-fix"}

# After if something broke
snapshot_restore {snapshotId:"...", target:{type:"remote", alias:"vps"}, dryRun:false, force:true}

Multi-server Drift Detection

compare_all_sources {sources:[
  {type:"remote", alias:"vps1", path:"/etc/nginx/nginx.conf", label:"prod"},
  {type:"remote", alias:"vps2", path:"/etc/nginx/nginx.conf", label:"staging"}
]}

📚 AI Built-in Manual (guide)

The orchestrator includes an interactive manual for your AI agent:

guide section:index       # Table of contents
guide section:workflows   # Copy-paste recipes
guide section:cheatsheet  # Tool → usage table
guide section:audit       # Full fleet audit in 8 steps
guide section:security    # Blocklist + tunnels
guide section:pitfalls    # Common mistakes

🏗️ Architecture

MCP Client (stdio)
    │
server.js ─── 63 MCP tools registered
    │
    ├── queue.js ─────── Persistent job queue (JSON + backup)
    ├── ssh.js ───────── SSH execution (pool + dedicated connections)
    ├── sftp.js ──────── SFTP transfers (upload/download/multi)
    ├── sshPool.js ───── Persistent SSH connection pool
    ├── servers.js ───── CRUD server aliases
    ├── apis.js ──────── CRUD API catalog
    ├── history.js ───── Task history
    ├── config.js ────── Centralized configuration
    ├── utils.js ─────── Utilities (escapeShellArg)
    ├── fileOps.js ───── File operations (read/write/edit)
    ├── diffEngine.js ── Diff engine (files/dirs/sources)
    ├── compareEngine.js ─ Multi-source comparison
    ├── diffFormatter.js ─ Diff formatting
    ├── sourceAdapter.js ─ Local/remote abstraction
    ├── shellSessions.js ─ Persistent shell sessions
    ├── snapshotManager.js ─ Versioned snapshots
    ├── notes.js ──────── Documented server context
    ├── policies.js ──── Command blocklist
    ├── tunnels.js ────── SSH tunnels (local/remote/SOCKS)
    ├── guide.js ──────── AI built-in manual
    └── diagnose.js ───── Diagnostics

Job Lifecycle

pending → running → completed / failed
                      ↓ (on restart)
                    crashed → retry → pending

🔒 Security

  • Command Blocklist : rm -rf /, mkfs*, fork bombs, and other destructive commands are blocked by default
  • Conscious bypass : skip_policy: true to force execution
  • Tunnel port allowlist : only explicitly allowed ports can be used
  • File access restriction : MCP_ALLOWED_ROOTS env var to limit file operations to specific directories
  • escapeShellArg() : all URLs and paths are escaped before being passed to curl/shell
  • Plaintext secret detection : warning on startup if passwords/API keys are in plaintext
  • Pre-modification snapshots : backup:true on file_edit/file_write for instant rollback
  • Recommendation : use SSH keys (not passwords), store secrets in Vaultwarden

🧪 Tests

node diagnose.js        # Full diagnostic
node test_mcp.js        # MCP smoke test
node test_features.js   # Unit tests (queue, pool, glob, prompts, crash)

🛣️ Roadmap

VersionChanges
10.0.0New tools: file_read/write/edit, diff, snapshots, shell, notes
10.4.0server_to_server, help with schemas, audit guide
11.0.0Command Blocklist, Multi-host (alias:"all"), tmux
11.2.0SSH Tunnels (local/remote/SOCKS5), allowlist, ssh2 stderr fix
11.3.0AllowedRoots (MCP_ALLOWED_ROOTS) for file restriction
12.0.0 (planned)Auto key setup for tunnels, webhooks, static dashboard

📄 License

MIT — Copyright (c) 2025-2026 Franck (fkom13)

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Packagemcp-orchestrator-server
TransportSTDIO
UpdatedNov 14, 2025
View on GitHub