Skip to main content
Glama
marttinm

windows-terminal-mcp

by marttinm

windows-terminal-mcp

MCP (Model Context Protocol)サーバーであり、あらゆるLLMがWindowsターミナル(ローカルシェルおよびリモートSSH接続を含む)でコマンドを実行できるようにします。

機能

  • cmd、powershell、またはbash (Git Bash) を介したコマンドの実行

  • キーベース認証を使用したSSH経由のリモートコマンド実行

  • 3段階のセキュリティモデル(安全 / 確認 / ブロック)

  • コマンドごとのタイムアウト設定

  • Claude DesktopおよびMCP互換クライアントで動作

Related MCP server: Windows CLI MCP Server

インストール

git clone https://github.com/marttinm/windows-terminal-mcp.git
cd windows-terminal-mcp
pip install -e .

Windows上でPython 3.11以降が必要です。

設定

Claude Desktopの設定ファイル (%APPDATA%\Claude\claude_desktop_config.json) にサーバーを追加します:

{
  "mcpServers": {
    "windows-terminal": {
      "command": "cmd",
      "args": ["/c", "python", "-m", "windows_terminal_mcp.server"]
    }
  }
}

または、スクリプトを直接指定します:

{
  "mcpServers": {
    "windows-terminal": {
      "command": "cmd",
      "args": ["/c", "python", "C:/path/to/windows-terminal-mcp/src/windows_terminal_mcp/server.py"]
    }
  }
}

ツール: execute_command

パラメータ

パラメータ

型

デフォルト

説明

command

string

必須

実行するコマンド。SSHの場合: user@host command

shell

string

cmd

シェル: cmd, powershell, bash, ssh

working_dir

string

—

作業ディレクトリ(ローカルコマンドのみ)

timeout_ms

integer

120000

タイムアウト(ミリ秒)

ssh_key

string

—

SSH秘密鍵へのパス (例: ~/.ssh/id_rsa)

レスポンス

{
  "stdout": "...",
  "stderr": "...",
  "exit_code": 0,
  "execution_time": 0.42
}

使用例

ローカルコマンド

Run: dir C:\Users
Shell: cmd

Run: Get-Process | Select-Object -First 5
Shell: powershell

Run: git status
Shell: bash

SSHコマンド

Run: ubuntu@192.168.1.10 "df -h && uptime"
Shell: ssh
SSH key: ~/.ssh/id_rsa
Run: ubuntu@192.168.1.10 "docker ps"
Shell: ssh
SSH key: ~/.ssh/my_key
Timeout: 30000

セキュリティ

コマンドは3つのレベルに分類されます:

安全 — 直接実行されます echo, dir, type, git, npm, node, python, pip, curl、およびほとんどの読み取り専用コマンド。

危険 — 実行前にClaudeが警告を表示します del, rmdir, rm, taskkill, net stop, net start, sc delete, reg add など。

ブロック — 常に拒否されます format, del /s /q, rd /s /q, reg delete, regedit, shutdown, net user, rm -rf, mkfs, fdisk、および同様の破壊的な操作。

開発

プロジェクト構造

windows-terminal-mcp/
├── src/windows_terminal_mcp/
│   ├── __init__.py
│   ├── server.py      # MCP server (main entry point)
│   ├── executor.py    # subprocess execution
│   ├── main.py        # simple stdin/stdout handler
│   └── security.py    # command safety checks
├── tests/
│   └── test_windows_terminal_mcp.py
├── pyproject.toml
├── LICENSE
└── README.md

テストの実行

pip install pytest
pytest tests/ -v

Pythonモジュールとして使用

from windows_terminal_mcp.server import execute_command

result = execute_command("echo hello", shell="cmd")
print(result)
# {'stdout': 'hello\n', 'stderr': '', 'exit_code': 0, 'execution_time': 0.02}

result = execute_command(
    "ubuntu@192.168.1.10 uptime",
    shell="ssh",
    ssh_key="~/.ssh/id_rsa",
    timeout_ms=10000,
)
print(result)

変更履歴

v0.2.0

  • キーベース認証によるSSHサポートを追加

  • SSHコマンド構築を修正(ホストとリモートコマンドを別々の引数として渡すように変更)

  • Windows上のSSHキーパスにおける~展開を修正

  • MCPサーバープロセス内でSSHがハングする原因となっていたstdin継承を修正

v0.1.0

  • cmd、powershell、bashを介した基本的なコマンド実行

  • stdout/stderr/exit_codeのキャプチャ

  • 3段階のセキュリティモデル

  • ユニットテスト

ライセンス

MIT — LICENSE を参照

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that provides secure command-line access to Windows systems, allowing MCP clients like Claude Desktop to safely execute commands in PowerShell, CMD, and Git Bash shells with configurable security controls.
    9
    959 npm
    268
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A local Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH connections.
    6
    6 npm
    2
    -
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    264 npm
    6
    MIT