Skip to main content
Glama
sakusaku0214

Windows MCP for ChatGPT & Grok

by sakusaku0214
README.md
# Windows MCP for ChatGPT & Grok

[English](README.en.md) · 日本語

Windowsのファイル・ターミナル・デスクトップを、ChatGPT、Grok、stdio対応MCPクライアントから操作するセルフホスト型MCPサーバーです。**各利用者が自分のPCに導入し、自分の認証で接続します。** Windows 10/11用です。

既存の個人環境向け実装を一般公開用に整理しました。インストール先・ユーザー名・ドメイン・トンネルIDは固定されていません。個人用の認証情報、会話履歴、稼働データ、バイナリは含みません。

## できること

- Desktop Commander 0.3.0の25ツール:ファイル読み書き、検索、編集、PowerShell/CMD、対話プロセスなど。
- GUIの12ツール:画面情報、スクリーンショット、ウィンドウ情報、クリック、ドラッグ、文字・キー入力など。
- 状態を確認する `control_diagnostics`。合計38ツール。
- ChatGPT:OpenAI Secure MCP Tunnelでstdio本体へ接続。
- Grok:公開HTTPSのStreamable HTTP入口とOAuth認可コード+S256 PKCEで接続。
- Claude Desktop等:stdio本体へ接続。クライアントごとの表示・画像対応は別途確認してください。

```text
ChatGPT ─ OpenAI Secure MCP Tunnel ─ stdio bridge ─┐
                                                ├─ Windows files / shell / GUI
Grok ─ HTTPS tunnel ─ OAuth / HTTP ─ stdio bridge ─┘
Local MCP client ────────────────── stdio bridge
```

## 1. インストール

必要なもの:Windows 10/11、Python 3.12以上(Tkinterを含む標準Windows版)、Node.js 24 LTS、Git。PythonとNode.jsをPATHに登録してください。通常のユーザー権限で実行します。

PowerShellで:

```powershell
git clone https://github.com/sakusaku0214/windows-mcp-chatgpt-grok.git
cd windows-mcp-chatgpt-grok
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\setup.ps1
```

セットアップはプロジェクト専用 `.venv` と `node_modules` を作成します。Pythonを明示する場合は `setup.ps1 -Python 'C:\path\to\python.exe'`。Windowsの実行ポリシー変更はこのプロセス限りです。

## 2A. ChatGPTに接続

1. [OpenAI公式手順](https://developers.openai.com/api/docs/guides/secure-mcp-tunnels)に従い、**自分の**トンネルとランタイムAPIキーを作成し、公式 `tunnel-client` をインストールします。
2. 対象のChatGPTワークスペースとPlatform組織を関連付けます。トンネルの権限とChatGPT側の接続機能が必要です。
3. 次を実行します。キー未設定時は非表示で入力できます。

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\start-chatgpt.ps1 -TunnelId 'tunnel_YOUR_ID'
# tunnel-clientがPATHにない場合は -TunnelClient 'C:\path\to\tunnel-client.exe' を追加
```

4. プロセスを起動したまま、ChatGPTのアプリ追加画面でそのトンネルを選択し、接続します。最初は `control_diagnostics` など読取専用の操作で確認してください。

キーは環境変数 `CONTROL_PLANE_API_KEY` からも受け取れます。設定ファイルにキー本体は保存しません。利用条件はOpenAI側の権限・プランに依存します。GitHubでのソース公開と、ChatGPTの公開プラグインとしての配布は別です。公開プラグイン申請は本リポジトリの対象外です。

## 2B. Grokに接続

Grokから届く**自分用の公開HTTPS URL**が必要です。Tailscale Funnel、Cloudflare Tunnel、ngrokなどを別途用意し、`http://127.0.0.1:7192` に転送してください。自分で選んだポート以外を公開する必要はありません。

例として、インストール・ログイン・Funnel利用条件を確認済みのTailscaleでは:

```powershell
tailscale funnel --bg --https=443 http://127.0.0.1:7192
```

表示されたHTTPSドメインを使って起動します。`PublicOrigin` は末尾スラッシュと `/mcp` を含めない値です。

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\start-http.ps1 -PublicOrigin 'https://YOUR-HOST.example.ts.net'
```

初回起動で、このWindowsユーザー専用のランダムトークンを新規生成し、DPAPI暗号化して保存します。サーバーの起動を保ち、別のPowerShellで承認用トークンの画面を開きます。

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\show-token.ps1
```

[Grok Connectors](https://grok.com/connectors) → New Connector → Customで、次を設定します。`BASE` は指定した公開Originです。

| 項目 | 値 |
| --- | --- |
| MCP URL | `BASE/mcp` |
| Client ID | `grok-windows-mcp` |
| Client secret | 空欄 |
| Authorization endpoint | `BASE/oauth/authorize` |
| Token endpoint | `BASE/oauth/token` |
| Scope | `mcp` |
| Token authentication | `none` / PKCE |

承認ページが開いたら、表示中のドメインが自分のものか確認し、Windows上の画面からコピーしたトークンを承認ページに貼り付けます。GrokのチャットやClient secret欄へトークンを貼り付けないでください。トークン画面を閉じるか60秒経過すると、コピーした値が同じ場合にクリップボードから消去します。

**公開HTTP入口のOAuthはGrok用の登録済みコールバックに限定しています。** 他のMCPクライアントはstdioを使うか、Bearer認証に対応する場合に所有者トークンでHTTPを利用できます。任意のコールバックを受け入れるOAuthサーバーではありません。

トンネル側が転送するHostは、指定した公開Hostまたは `127.0.0.1:7192` / `localhost:7192` にしてください。プロキシでヘッダーを書き換える場合も、このいずれかに設定します。URLが変わるサービスでは起動OriginとGrok登録を更新し、再承認してください。

公式:[Grokカスタムコネクター](https://docs.x.ai/grok/connectors)、[トンネル接続](https://docs.x.ai/grok/connectors/custom-mcp-tunneling)、[Tailscale Funnel](https://tailscale.com/docs/features/tailscale-funnel)。

## 2C. その他のstdioクライアント

[設定例](examples/stdio-client.json)のパスを自分のインストール先に置換してください。[Codex向けの設定例](examples/codex.toml)もあります。

```json
{
  "mcpServers": {
    "windows-control": {
      "command": "C:/path/to/windows-mcp/.venv/Scripts/python.exe",
      "args": ["-B", "-u", "C:/path/to/windows-mcp/bridge.py"]
    }
  }
}
```

## 運用と注意点

- **接続したAIは、実行ユーザー権限でファイルやシェルを操作できます。** 専用Windowsユーザーでの運用を検討し、接続先と許可する操作を理解して使ってください。命令文・ブロックリストはOSの隔離境界ではありません。
- Windowsへログオンしている必要があります。ロック画面、UAC、管理者アプリ、ログオン前の操作は保証しません。GUI画像の座標は物理ピクセルです。
- ChatGPTとGrokの設定・検索・プロセス台帳は分離しますが、PCとファイル・デスクトップは共通です。同じ画面やファイルへの操作を調整してください。GUI mutexは1呼出し単位です。
- タイムアウトは操作取消しを意味しません。結果不明の書込み・起動・クリックは再送前に状態確認してください。HTTPのツール待ちがタイムアウトすると後続操作を拒否します。確認後、手動再起動してください。
- 通常の終了は起動したターミナルのCtrl+C。ChatGPT用とHTTP用は別プロセスです。HTTPを止めてもトンネルサービスの公開設定は残る場合があります。Tailscaleの当該公開を止める場合は `tailscale funnel --https=443 off`。
- スクリプトは前景実行です。PC再起動後の自動起動・認証済みセッションの復元は設定しません。OAuthの期限付き認証は同じWindowsユーザー・同じURLでディスクに保存しますが、MCPセッションや実行中プロセスは復元しません。
- `runtime/`、`gateway/runtime/`、`gateway/auth/` 等は自動生成され、Gitから除外します。公開URL・鍵・ログ・スクリーンショットをIssueへ載せないでください。

[詳細なセキュリティ・状態保存仕様](SECURITY.md) · [開発と検証](docs/development.md) · [ライセンス](LICENSE) · [第三者ライセンス](THIRD_PARTY_NOTICES.md)

MITライセンスで利用・変更・再配布できます。OpenAI、xAI、Desktop Commanderの公式製品ではありません。