github Python analyzed 76c1c31

RenFelyer/mcp-hostops

github

MCP server for remote hosts from ~/.ssh/config over OpenSSH — host status, commands, background jobs, config & known_hosts management, and llms.txt docs

maintainer
RenFelyer
licence
first seen
2026-09-05
last seen
2026-09-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 14 tools
transport stdio counts 14 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_host
  • check_hosts
  • copy_id
  • forget_host
  • get_host
  • list_hosts
  • list_jobs
  • llms_fetch
  • llms_index
  • llms_list_sources
  • llms_search
  • run
  • start
  • trust_host
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 76c1c31 · analyzer v33 · 1d ago

skills & prompt files 1

danger signals1

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

code files: 51

filesystem 18

  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/config/constants.py :10 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/config/environment.py :14 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/config/logger.py :11 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/store.py :23 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/hosts.py :15 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/sudo.py :21 from pathlib import Path
  • fs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/services.py :18 import shutil
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_hosts.py :4 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_hosts_services.py :4 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_llms.py :5 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_logger.py :4 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_probe.py :6 from pathlib import Path
show 6 more
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_run_command.py :4 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_server.py :12 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_ssh.py :3 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_sshconfig.py :7 import shutil
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_store.py :5 from pathlib import Path
  • fs (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_sudo.py :3 from pathlib import Path

shell / exec 7

  • shell RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/hosts.py :14 import subprocess
  • shell RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/probe.py :16 import subprocess
  • shell RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/ssh.py :14 import subprocess
  • shell RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/services.py :19 import subprocess
  • shell (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_hosts.py :3 import subprocess
  • shell (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_probe.py :5 import subprocess
  • shell (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_sshconfig.py :8 import subprocess

network 3

  • net RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/core/utils/probe.py :15 import socket
  • net RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/llms/services.py :36 import socket
  • net (weak) RenFelyer-mcp-hostops-76c1c31/tests/test_probe.py :4 import socket

tool registrations 14

  • run RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/commands/handlers.py :15
  • list_hosts RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/hosts/handlers.py :20
  • check_hosts RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/hosts/handlers.py :33
  • get_host RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/hosts/handlers.py :48
  • start RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/jobs/handlers.py :32
  • list_jobs RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/jobs/handlers.py :96
  • llms_list_sources RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/llms/handlers.py :30
  • llms_index RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/llms/handlers.py :90
  • llms_search RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/llms/handlers.py :111
  • llms_fetch RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/llms/handlers.py :137
  • add_host RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/handlers.py :26
  • forget_host RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/handlers.py :86
show 2 more
  • copy_id RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/handlers.py :107
  • trust_host RenFelyer-mcp-hostops-76c1c31/src/mcp_hostops/routers/sshconfig/handlers.py :122

declared dependencies 5

  • fastmcp@>=4.0.2
  • anyio@>=4.15.0
  • httpx2@>=2.12.0
  • pydantic-settings@>=2.15.0
  • uvloop@>=0.22.1