Skip to main content
Glama
aposadm

ssh-mcp

by aposadm

ssh-mcp

MCP server ที่เปิดให้ Claude (หรือ MCP client อื่น) สั่งงานเครื่องปลายทางผ่าน SSH ได้ — รันคำสั่ง, อ่าน/เขียนไฟล์, โอนไฟล์ SFTP และเปิด shell แบบ interactive กำหนดหลายโฮสต์ผ่านไฟล์ .env ยืนยันตัวตนด้วย username/password

ความสามารถ (Tools)

Tool

หน้าที่

ssh_list_hosts

แสดงรายชื่อโฮสต์ที่ตั้งค่าไว้ (ไม่คืน password)

ssh_exec

รันคำสั่ง คืน stdout / stderr / exit_status

ssh_read_file

อ่านไฟล์ปลายทางผ่าน SFTP

ssh_write_file

เขียน/สร้างไฟล์ปลายทางผ่าน SFTP

ssh_list_dir

แสดงรายการไฟล์ในไดเรกทอรีปลายทาง

ssh_upload

อัปโหลดไฟล์ในเครื่อง → ปลายทาง

ssh_download

ดาวน์โหลดไฟล์ปลายทาง → เครื่องนี้

ssh_session_open

เปิด interactive shell คืน session_id

ssh_session_send

ส่งข้อความ/คำสั่งเข้าเซสชัน แล้วคืน output

ssh_session_read

อ่าน output ที่ค้างในเซสชัน

ssh_session_close

ปิดเซสชัน

ssh_list_sessions

แสดงเซสชันที่เปิดอยู่

ติดตั้ง

pip install -r requirements.txt
# หรือแบบ editable พร้อม console script `ssh-mcp`
pip install -e .

ตั้งค่า

คัดลอก .env.example.env แล้วแก้ค่าโฮสต์จริง แต่ละโฮสต์เป็น "profile" ตามรูปแบบ prefix:

SSH_PROFILES=prod,staging

SSH_PROD_HOST=10.0.0.1
SSH_PROD_PORT=22
SSH_PROD_USER=root
SSH_PROD_PASSWORD=secret

SSH_STAGING_HOST=10.0.0.2
SSH_STAGING_USER=deploy
SSH_STAGING_PASSWORD=secret
  • ชื่อ profile (ตัวพิมพ์เล็ก เช่น prod, staging) คือค่าที่ส่งเป็น argument host ของแต่ละ tool

  • SSH_PROFILES ระบุ/จัดลำดับ profile ที่จะเปิดใช้ ถ้าเว้นว่างจะ auto-detect จาก SSH_*_HOST ทั้งหมด

  • Global options: SSH_CONNECT_TIMEOUT, SSH_COMMAND_TIMEOUT, SSH_KNOWN_HOSTS_POLICY (auto_add | reject)

ความปลอดภัย: .env อยู่ใน .gitignore อยู่แล้ว อย่า commit ค่าจริง สำหรับ production แนะนำตั้ง SSH_KNOWN_HOSTS_POLICY=reject (โฮสต์ต้องอยู่ใน ~/.ssh/known_hosts)

รัน

python -m ssh_mcp.server        # stdio transport
# หรือ (หลัง pip install -e .)
ssh-mcp

เชื่อมกับ Claude Code / Claude Desktop

เพิ่มเข้าไฟล์ config MCP:

{
  "mcpServers": {
    "ssh": {
      "command": "python",
      "args": ["-m", "ssh_mcp.server"],
      "cwd": "d:\\AI\\apos"
    }
  }
}

ทดสอบด้วย MCP Inspector

npx @modelcontextprotocol/inspector python -m ssh_mcp.server

แล้วลองเรียก ssh_list_hostsssh_exec (เช่น whoami) → วงจร ssh_session_open / ssh_session_send / ssh_session_close

ตัวอย่างการใช้ interactive session

  1. ssh_session_open(host="prod") → ได้ session_id

  2. ssh_session_send(session_id, data="top\n") → คืน output รอบแรก

  3. ssh_session_send(session_id, data="q") เพื่อออกจาก top

  4. ssh_session_close(session_id)

หมายเหตุ: ssh_session_send ไม่เติม newline ให้อัตโนมัติ — ต้องใส่ \n เองเมื่อต้องการกด enter

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aposadm/ssh-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server