Skip to main content
Glama
moosin76

Windows Scoped Remote MCP Server

by moosin76

🛡️ Windows Scoped Remote MCP Server

Windows環境で動作するセキュリティ隔離型リモート開発MCP(Model Context Protocol)サーバーです。
ChatGPT、Claudeなどの最新LLMクライアントと連携し、対話だけで指定されたローカル作業スペース内でファイル作成/編集、PowerShellコマンド実行、プロジェクトビルドおよびデバッグを自律実行できます。


📌 主な特徴

  • Windows最適化サンドボックス(SandboxGuard):

    • 指定したMCP_WORKSPACE_ROOTディレクトリ外のファイル/フォルダへのアクセスおよびコマンド実行を100%根本的にブロックします。

  • ChatGPT標準OAuth 2.1連携(RFC 8414 / RFC 9728 / DCR / PKCE):

    • 動的クライアント登録(DCR)および対話型セキュリティ承認ページ(/authorize)を提供し、パスワードトークン(MCP_AUTH_TOKEN)を知る認可されたユーザーのみ安全に接続できます。

  • 19種類のフルスタックMCP開発ツール & OpenAPI 3.0仕様搭載:

    • ファイルおよびディレクトリCRUD、パッチ適用(apply_patch)、非同期プロセスおよびPowerShell/CMD実行、状態モニタリングを完全サポートします。

  • Cloudflare TunnelベースのZero Trust通信:

    • 複雑なポートフォワーディングやファイアウォール開放なしで、Cloudflare Tunnelを通じて安全なHTTPSエンドポイントを提供します。

  • プロジェクト無停止切り替えサポート:

    • .envMCP_WORKSPACE_ROOTのみ変更すれば、既存のChatGPT認証セッションを維持したまま作業フォルダを即座に切り替えられます。


🏗️ システムアーキテクチャ

┌────────────────────────────────────────────────────────┐
│                   ChatGPT (Web / App)                  │
└───────────────────────────┬────────────────────────────┘
                            │ HTTPS (Streamable HTTP / OAuth 2.1)
                            ▼
┌────────────────────────────────────────────────────────┐
│        Cloudflare Zero Trust Tunnel (mcp.yourdomain)   │
└───────────────────────────┬────────────────────────────┘
                            │ Local Proxy (HTTP localhost:<MCP_PORT>)
                            ▼
┌────────────────────────────────────────────────────────┐
│            Windows Scoped Remote MCP Server            │
│  ┌──────────────────────────────────────────────────┐  │
│  │ Express Router (/mcp, /authorize, /openapi.json) │  │
│  └────────────────────────┬─────────────────────────┘  │
│                           │                            │
│  ┌────────────────────────▼─────────────────────────┐  │
│  │   SandboxGuard & ProcessManager & FileService    │  │
│  └────────────────────────┬─────────────────────────┘  │
└───────────────────────────┼────────────────────────────┘
                            │ 격리된 파일 & 명령어 실행
                            ▼
┌────────────────────────────────────────────────────────┐
│       내 로컬 작업 공간 (MCP_WORKSPACE_ROOT)            │
│      예: D:\Godot\mcp-test 또는 D:\Godot\MyGame         │
└────────────────────────────────────────────────────────┘

🛠️ 提供ツール一覧(全30 Tools)

🌐 1. ブラウザ自動化 & Webテストツール(Playwright 8 Tools)

ツール名 (Tool)

説明

browser_navigate

Webサイトのアドレス(URL)へブラウザ移動およびページロード

browser_screenshot

現在のWeb画面のスクリーンショットをキャプチャし、作業フォルダに画像ファイル(PNG)として保存

browser_click

ボタン、リンクなどの特定HTML要素をマウスクリック

browser_fill

検索窓、入力フォームにテキストを自動タイピングおよび入力

browser_get_content

Webページ本文テキストまたはHTMLソースを抽出

browser_evaluate

ブラウザコンソールでJavaScript(JS)コードを実行し結果を収集

browser_press_key

キーボードキー(Enter、Tab、Escape、矢印など)を入力

browser_close

ブラウザセッションを終了しメモリを解放

📂 2. マルチワークスペース管理ツール(3 Tools)

ツール名 (Tool)

説明

list_workspaces

登録済みの全マルチワークスペース一覧、エイリアス(Alias)、有効化状態を照会

get_active_workspace

現在有効化されている基本作業スペースの名前と絶対パスを照会

switch_workspace

エイリアス(Alias)またはパスでアクティブ作業スペースをリアルタイム切り替え

📁 3. ファイルおよびコード操作ツール(11 Tools)

ツール名 (Tool)

説明

list_directory

指定したパスのファイルおよびサブディレクトリ一覧を照会

read_file

テキストファイルの読み取り(オフセットおよび分割読み取り対応)

write_file

新規ファイル作成および上書き/追記

edit_file

特定の行番号およびブロック単位での正確なコード修正

replace_in_file

文字列検索および対象テキストの一括/単一置換

apply_patch

標準Unified Diff / Patch形式でファイルにパッチ適用

make_directory

新規ディレクトリ作成

delete_file

ファイルおよび空ディレクトリの削除

move_file

ファイル/フォルダの移動および名前変更

copy_file

ファイル/フォルダのコピー

stat_path

ファイル/フォルダのサイズ、更新日、属性メタデータを照会

⚡ 4. ターミナルコマンドおよびスクリプト実行ツール(8 Tools)

ツール名 (Tool)

説明

search_files

Globパターンでファイル名を検索

find_in_files

ファイル内テキストおよび正規表現の高速検索

exec_command

PowerShellまたはCMDコマンドを実行し結果を返す

run_script

PowerShell、Batch、Node.js、Pythonスクリプトを実行

read_process_output

長時間実行中のバックグラウンドプロセスの出力バッファを読み取り

write_process_input

実行中プロセスの標準入力(stdin)へデータを送信

stop_process

バックグラウンドプロセスを終了

list_processes

現在実行中のプロセス一覧および状態を照会


⚙️ 1. 環境設定ガイド(.env)

プロジェクトルートの.env.exampleファイルをコピーして.envファイルを作成し、設定します:

copy .env.example .env

📋 主要設定項目の詳細説明

環境変数

デフォルト値 / 例

必須有無

説明

MCP_PORT

12000

任意

ローカルでExpressサーバーが実行されるポート番号(デフォルト値: 12000)

MCP_WORKSPACE_ROOTS

test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle

必須

ChatGPTが操作できるマルチ作業スペース(エイリアス:パス)

MCP_AUTH_TOKEN

your_secure_password

必須

ChatGPT OAuth承認ページ(/authorize)で入力するセキュリティパスワード

MCP_PUBLIC_URL

https://mcp.yourdomain.com

必須

Cloudflare Tunnelを通じて外部に公開される公開HTTPSアドレス

CLOUDFLARE_TUNNEL_TOKEN

your_tunnel_token

任意

Cloudflare Zero Trustダッシュボードで発行された固定トンネルトークン

MCP_DEFAULT_SHELL

powershell

任意

exec_command実行時のデフォルトシェル(powershellcmdpwsh)

MCP_MAX_FILE_CHUNK_BYTES

1048576 (1MB)

任意

read_fileの1回あたりの最大読み取りバイトサイズ

MCP_MAX_EDIT_FILE_BYTES

67108864 (64MB)

任意

edit_file / write_fileの最大編集可能ファイルサイズ

MCP_MAX_OUTPUT_BYTES

1048576 (1MB)

任意

ターミナルコマンド実行出力バッファの最大サイズ

# [Server Port]
MCP_PORT=12000

# [Multi-Root Security & Directory Sandbox]
MCP_WORKSPACE_ROOTS=test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle, server:C:\path\to\localRemoteMcp

# [Authentication - ChatGPT OAuth 2.1]
MCP_AUTH_TOKEN=your_secure_password_here

# [Public Domain & Cloudflare Tunnel]
MCP_PUBLIC_URL=https://mcp.yourdomain.com
CLOUDFLARE_TUNNEL_TOKEN=your_cloudflare_tunnel_token_here

# [Shell Configuration]
MCP_DEFAULT_SHELL=powershell

# [Limits - Safety Guardrails]
MCP_MAX_FILE_CHUNK_BYTES=1048576
MCP_MAX_EDIT_FILE_BYTES=67108864
MCP_MAX_OUTPUT_BYTES=1048576

🌐 2. Cloudflare Tunnelおよびドメイン連携

本サーバーはCloudflare Zero Trustトンネルを通じて、.envに指定されたローカルポート(MCP_PORT、デフォルト値: 12000)を、お持ちのドメインのサブドメイン(https://mcp.yourdomain.com)として安全に公開します。

🔌 Cloudflareダッシュボード設定

  1. Cloudflare Zero Trust DashboardNetworksTunnelsメニューに移動します。

  2. **[Create a tunnel]**をクリックしてCloudflaredトンネルを作成します。

  3. Public Hostname追加:

    • Subdomain: mcp(または任意のサブドメイン)

    • Domain: yourdomain.com(お持ちのドメインを選択)

    • Service Type: HTTP

    • URL: localhost:<MCP_PORT>(例: localhost:12000)

  4. 発行された**トンネルトークン(Token)**をコピーし、.envCLOUDFLARE_TUNNEL_TOKEN項目に貼り付けます。


📦 3. Cloudflareバイナリ(bin/cloudflared.exe)について

本プロジェクトはトンネルを自動起動するためにcloudflared.exeバイナリを使用します。

  • 自動ダウンロード対応(推奨):

    • start.batまたはstart.ps1を初回実行する際、bin/cloudflared.exeが存在しない場合は公式Cloudflare GitHub Releaseから最新バイナリを自動ダウンロードして配置します。

    • ユーザーが別途ダウンロードする必要なく、start.batを実行するだけでOKです。

  • 手動ダウンロード(オフライン / ファイアウォール環境):

    • 自動ダウンロードが制限された環境の場合、Cloudflare公式リリースページからcloudflared-windows-amd64.exeファイルをダウンロードし、プロジェクト内のbin/cloudflared.exeパスにリネームして配置してください。


🚀 4. サーバー実行方法

方法A. ワンクリック自動実行(start.bat / 推奨)

start.batをダブルクリックするか、コンソールで実行します:

start.bat

(自動でnpmパッケージインストール ➔ .env確認 ➔ cloudflaredバイナリ確認 ➔ TypeScriptビルドおよびサーバー + トンネルを一括実行します)

方法B. 手動ターミナル実行

# 1. 의존성 설치
npm install

# 2. TypeScript 컴파일
npm run build

# 3. 테스트 실행
npm test

# 4. 서버 시작
npm start

🤖 5. ChatGPTアプリ / プラグイン接続ガイド(ステップ別)

ステップ1. ChatGPTアプリ登録

  1. ChatGPT Webにアクセスし、**[設定] ➔ [プラグイン / 開発者モード]**に移動します。

  2. **[+ 新規プラグイン / アプリ作成]**をクリックします。

  3. 設定値を次のように入力します:

    • 名前: my-remote(または任意の名前)

    • 接続(Connection): サーバーURLhttps://mcp.yourdomain.com/mcp(ご自身のドメイン)

    • 認証(Authentication): **OAuth**を選択

  4. **[作成]**をクリックします。

ステップ2. セキュリティログイン承認

  1. 登録済みアプリ詳細画面で**[接続 ➔]**ボタンを押します。

  2. ブラウザポップアップで**[Windows Scoped Remote MCP承認]**Webページが表示されます。

  3. パスワード入力欄に.envで設定した**MCP_AUTH_TOKEN値を入力し、[承認してChatGPTに戻る]**をクリックします。

ステップ3. 権限設定("すべてのアクションを許可")

  • アプリ詳細画面の**権限(Permissions)オプションをすべてのアクションを許可**に設定します。

  • (ツールを呼び出すたびに毎回確認ポップアップが表示されず、ChatGPTが自律的に開発を進めます)


💬 6. 実践的な対話型開発プロンプト例

新しいチャットウィンドウ(または@ プラグインチャットウィンドウ)で次のように指示できます:

# 1. 프로젝트 파일 목록 및 구조 파악
@my-remote 현재 작업 공간의 파일과 폴더 목록을 정리해서 보여줘

# 2. 웹 게임 / 프론트엔드 프로젝트 개발
@my-remote HTML5 Canvas로 브라우저에서 실행 가능한 레트로풍 벽돌깨기 게임(breakout.html)을 세련되게 만들어줘

# 3. Godot 4 게임 스크립트 작성
@my-remote Godot 4 기준으로 2D 캐릭터 이동, 대시, 점프 및 물리 충돌을 처리하는 Player.gd를 작성해줘

# 4. 패키지 설치 및 테스트 실행
@my-remote npm install 명령어로 필요한 라이브러리를 설치하고 npm test를 돌려 결과를 확인해줘

# 5. 웹 브라우저 자동화 & 화면 캡처 (Playwright)
@my-remote 네이버(naver.com)로 이동해서 검색창에 'Godot Engine 4' 검색하고 결과 페이지 스크린샷 찍어서 search.png로 저장해줘

# 6. 내가 만든 로컬 웹페이지 실시간 검증
@my-remote 로컬 웹서버를 실행하고 브라우저로 접속해서 [게임 시작] 버튼을 누른 다음 화면이 잘 나오는지 스크린샷으로 확인해줘

📂 7. マルチプロジェクト管理およびリアルタイム切り替え方法

本サーバーは**マルチワークスペース(Multi-Workspace)**をサポートしているため、複数のプロジェクトを同時に登録し、対話中にリアルタイムで切り替えることができます。

方法A. ChatGPT対話によるリアルタイム切り替え(サーバー再起動なし ⭐)

  1. 現在の作業スペース確認:

    @my-remote 현재 작업 공간이 어디로 설정되어 있는지 확인해줘
  2. 登録済みの全プロジェクト一覧確認:

    @my-remote 등록된 모든 워크스페이스 목록을 보여줘
  3. 作業スペースの即時切り替え:

    @my-remote ether 프로젝트로 작업 공간을 전환해줘

    (ChatGPTがswitch_workspace(name: "ether")ツールを呼び出し、サーバー再起動なしで即座に該当プロジェクトへ切り替えます)

方法B. 新規プロジェクトの追加登録(.env)

  1. .envファイルのMCP_WORKSPACE_ROOTSに新しいプロジェクトのエイリアスとパスを追加します:

    MCP_WORKSPACE_ROOTS=test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle, mygame:C:\path\to\mygame
  2. ターミナルでstart.batを再実行すると、追加されたプロジェクトにも即座にアクセスおよび切り替えが可能になります。(OAuth認証トークンセッションは永続保存されます)


🔒 8. セキュリティおよびトラブルシューティング

  • Q. 外部の人が私のコンピューターに不正アクセスするリスクはありませんか?

    • 3重セキュリティ構造で完全に保護されます:

      1. パスワード認証: MCP_AUTH_TOKENパスワードを知る本人のChatGPTアカウントのみアクセス可能。

      2. サンドボックス隔離: ファイルおよびコマンドが指定されたMCP_WORKSPACE_ROOT内でのみ動作し、上位パスへのアクセス時は即座にブロック。

      3. Cloudflare Zero Trust: Cloudflareダッシュボードで自分のIPのみ許可するファイアウォールルールを追加できます。

  • Q. トンネルが接続されない、または502エラーが発生する場合:

    • start.batウィンドウでローカルサーバー(port: .envのMCP_PORT)が正常に起動しているか確認し、ブラウザでhttps://mcp.yourdomain.com/healthにアクセスして{ status: "ok" }応答が返るか確認します。


📄 ライセンス

MIT License

-
license - not tested
Not graded
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.

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Persistent cloud development environments that coding agents create, run and test software in.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

View all MCP Connectors

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/moosin76/windows-scoped-remote-mcp-server'

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