Command Line Python ★ 176

tumf/mcp-shell-server

Model Context Protocol (MCP) uygulayan, güvenli shell komut yürütme sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "tumf-mcp-shell-server": {
      "command": "python",
      "args": [
        "-m",
        "mcp_shell_server"
      ]
    }
  }
}

MCP Shell Server

codecov smithery badge

MseeP.ai Security Assessment Badge

Model Context Protocol (MCP) uygulayan güvenli bir shell command execution sunucusu. Bu sunucu, stdin girişi desteği ile beyaz listeye alınmış shell komutlarının uzaktan yürütülmesine izin verir.

Özellikler

  • Güvenli Command Yürütümü: Yalnızca beyaz listeye alınmış komutlar yürütülebilir
  • Standart Input Desteği: Komutlara stdin aracılığıyla giriş aktarın
  • Kapsamlı Çıktı: stdout, stderr, çıkış durumu ve yürütme süresini döndürür
  • Shell Operatör Güvenliği: Shell operatörleri (;, &&, ||, |) sonrasındaki komutları doğrular
  • Timeout Kontrolü: Komutlar için maksimum yürütme süresini ayarlayın

Claude.app'te MCP istemci ayarlanması

Yayınlanmış sürüm

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shell": {
      "command": "uvx",
      "args": [
        "mcp-shell-server"
      ],
      "env": {
        "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find"
      }
    },
  }
}

Yerel sürüm

Konfigürasyon

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shell": {
      "command": "uv",
      "args": [
        "--directory",
        ".",
        "run",
        "mcp-shell-server"
      ],
      "env": {
        "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find"
      }
    },
  }
}

Kurulum

Smithery Aracılığıyla Kurulum

Shell Server'ı Claude Desktop'a Smithery aracılığıyla otomatik olarak yüklemek için:

npx -y @smithery/cli install mcp-shell-server --client claude

Manuel Kurulum

Smithery Aracılığıyla Kurulum

Shell Server'ı Claude Desktop'a Smithery aracılığıyla otomatik olarak yüklemek için:

npx -y @smithery/cli install mcp-shell-server --client claude

Manuel Kurulum

pip install mcp-shell-server

Smithery Aracılığıyla Kurulum

Shell Server'ı Claude Desktop'a Smithery aracılığıyla otomatik olarak yüklemek için:

npx -y @smithery/cli install mcp-shell-server --client claude

Kullanım

Sunucuyu Başlatma

ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
# Veya takma adı kullanarak
ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server

ALLOW_COMMANDS (veya takma adı ALLOWED_COMMANDS) ortam değişkeni, hangi komutların yürütülmesine izin verileceğini belirtir. Komutlar virgülle ayrılabilir ve etrafında isteğe bağlı boşluklar bulunabilir.

ALLOW_COMMANDS veya ALLOWED_COMMANDS için geçerli formatlar:

ALLOW_COMMANDS="ls,cat,echo"          # Temel format
ALLOWED_COMMANDS="ls ,echo, cat"      # Boşluklarla (takma ad kullanılarak)
ALLOW_COMMANDS="ls,  cat  , echo"     # Çoklu boşluklarla

İstek Formatı

# Temel command yürütümü
{
    "command": ["ls", "-l", "/tmp"]
}

# Stdin girdisi ile command
{
    "command": ["cat"],
    "stdin": "Hello, World!"
}

# Timeout ile command
{
    "command": ["long-running-process"],
    "timeout": 30  # Saniye cinsinden maksimum yürütme süresi
}

# Çalışma dizini ve timeout ile command
{
    "command": ["grep", "-r", "pattern"],
    "directory": "/path/to/search",
    "timeout": 60
}

Yanıt Formatı

Başarılı yanıt:

{
    "stdout": "command output",
    "stderr": "",
    "status": 0,
    "execution_time": 0.123
}

Hata yanıtı:

{
    "error": "Command not allowed: rm",
    "status": 1,
    "stdout": "",
    "stderr": "Command not allowed: rm",
    "execution_time": 0
}

Güvenlik

Sunucu, çeşitli güvenlik önlemleri uygular:

  1. Command Beyaz Listesi: Yalnızca açıkça izin verilen komutlar yürütülebilir
  2. Shell Operatör Doğrulaması: Shell operatörleri (;, &&, ||, |) sonrasındaki komutlar da beyaz listeye karşı doğrulanır
  3. Shell Injection Yok: Komutlar shell yorumlama olmaksızın doğrudan yürütülür

Geliştirme

Geliştirme Ortamını Ayarlama

  1. Repository'i klonlayın
git clone https://github.com/yourusername/mcp-shell-server.git
cd mcp-shell-server
  1. Test gereksinimleri dahil bağımlılıkları yükleyin
pip install -e ".[test]"

Testleri Çalıştırma

pytest

API Referansı

İstek Parametreleri

Alan Tip Gerekli Açıklama
command string[] Evet Komut ve argümanları dizi elemanları olarak
stdin string Hayır Komuta aktarılacak giriş
directory string Hayır Command yürütümü için çalışma dizini
timeout integer Hayır Saniye cinsinden maksimum yürütme süresi

Yanıt Alanları

Alan Tip Açıklama
stdout string Komuttan standart çıktı
stderr string Komuttan standart hata çıktısı
status integer Çıkış durumu kodu
execution_time float Yürütme için geçen süre (saniye cinsinden)
error string Hata mesajı (yalnızca başarısız olursa)

Gereksinimler

  • Python 3.11 veya üstü
  • mcp>=1.1.0

Lisans

MIT Lisansı - Ayrıntılar için LICENSE dosyasına bakın

Benzer MCP sunucuları

Daha fazla: Command Line →