github JavaScript analyzed 663bb88

bvisible/mcp-ssh-manager

github

MCP SSH Server: 37 tools for remote SSH management | Claude Code & OpenAI Codex | DevOps automation, backups, database operations, health monitoring

maintainer
bvisible
licence
MIT
first seen
2026-06-01
last seen
2026-09-03
releases · 30d
5
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · http verified reported listed in the official MCP registry counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 663bb88 · analyzer v33 · 2d ago

skills & prompt files 1

code evidence vv3.8.5 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 70

filesystem 29

  • fs bvisible-mcp-ssh-manager-663bb88/cli/ssh-manager.js :13 import { existsSync } from 'node:fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/debug/test-e2e-policy.js :42 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/audit.js :13 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/command-aliases.js :6 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/config-loader.js :3 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/hooks-system.js :6 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/index.js :8 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/logger.js :6 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/profile-loader.js :6 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/server-aliases.js :1 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/server-config-manager.js :1 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/server-groups.js :6 import fs from 'fs';
show 17 more
  • fs bvisible-mcp-ssh-manager-663bb88/src/ssh-key-manager.js :2 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/ssh-manager.js :2 import fs from 'fs';
  • fs bvisible-mcp-ssh-manager-663bb88/src/tool-config-manager.js :8 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-backup-monitor-injection.js :20 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-command-aliases.js :16 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-config-field-names.js :9 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-database-injection.js :17 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-hooks.js :17 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-lifecycle.js :9 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-lockfile.js :18 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-logger-redaction.js :12 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-policy.js :12 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-profiles.js :14 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-rsync-path.js :15 import fs from 'node:fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-server-config-manager.js :2 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-server-groups.js :13 import fs from 'fs';
  • fs (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-sudo-stdin.js :13 import fs from 'fs';

shell / exec 11

  • shell bvisible-mcp-ssh-manager-663bb88/cli/ssh-manager.js :12 import { spawnSync } from 'node:child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/debug/test-mcp.js :4 import { spawn } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/debug/test-ssh-command.js :4 import { spawn } from 'child_process';
  • shell bvisible-mcp-ssh-manager-663bb88/src/hooks-system.js :8 import { exec } from 'child_process';
  • shell bvisible-mcp-ssh-manager-663bb88/src/index.js :468 const { spawn } = await import('child_process');
  • shell bvisible-mcp-ssh-manager-663bb88/src/ssh-key-manager.js :1 import { execSync, spawn } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-backup-monitor-injection.js :19 import { execSync } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-database-injection.js :16 import { execSync } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-lifecycle.js :8 import { spawn } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-lockfile.js :20 import { execFileSync } from 'child_process';
  • shell (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-sudo-stdin.js :50 exec(cmd, cb) {

network 2

  • net bvisible-mcp-ssh-manager-663bb88/src/tunnel-manager.js :7 import net from 'net';
  • net (weak) bvisible-mcp-ssh-manager-663bb88/tests/test-tunnel-listen.js :14 import net from 'net';

secrets 1

  • secrets (weak) bvisible-mcp-ssh-manager-663bb88/debug/test-e2e-policy.js :59 const PASSWORD = process.env.SSH_E2E_PASSWORD;

declared dependencies 9

  • @modelcontextprotocol/sdk@^1.30.0
  • @iarna/toml@^2.2.5
  • dotenv@^16.4.5
  • ssh2@^1.17.0
  • zod@^4.4.3
  • eslint@^8.56.0
  • knip@^5.0.0
  • prettier@^3.2.4
  • typescript@^6.0.3