Skip to main content
Glama
MoonTzai

FolderBridge MCP

by MoonTzai

FolderBridge MCP

简体中文 | English

License: Apache-2.0 Source Python 3.11+ Transport: stdio

[!TIP] FolderBridge 自体は単一ファイルの Windows アプリです: FolderBridge.exe を直接ダウンロード してダブルクリックするだけです。Python や Node.js のインストールは不要です。 バイナリは GitHub Releases → latest release → Assets にあります。リポジトリのソースファイル一覧には表示されません。Web 上の ChatGPT の場合、FolderBridge は OpenAI が別途配布する公式の tunnel-client.exe を引き続き使用します。ランチャーがその選択を案内します。EXE とオプションの SHA-256 チェックサムファイルについては、完全なリリースページ を開くこともできます。

AI クライアントと、明示的に選択した少数のフォルダとの間の、より安全でローカルファーストなブリッジ。

FolderBridge MCP は、依存関係のない Python MCP サーバーとデスクトップランチャーです。Web 上の ChatGPT や、ローカルの stdio MCP をサポートする任意のクライアントが、制限されたローカルワークスペースを検査し、慎重に編集できるようにします。公開 HTTP サーバー、任意のシェルアクセス、テレメトリ、サイレントなバックグラウンドサービスを意図的に回避します。

[!IMPORTANT] このプロジェクトは初期の公開ベータ版です。攻撃面を減らしますが、オペレーティングシステムのサンドボックスではありません。信頼するフォルダとリポジトリのみを公開してください。

0.5.1 のハイライト

  • ブラウザ認証による GitHub 公開: 新しいバンドル済み git-publisher 拡張機能は、Git Credential Manager を通じて GitHub 認証を開き、OAuth 資格情報を Windows Credential Manager に保持し、明示的なファイル許可リストのみをコミットし、既存の GitHub HTTPS オリジンに現在のブランチのみをプッシュできます。トークン/PAT/パスワードフィールドはモデルに公開されません。

  • Git 公開は制約付き: Publisher は、事前にステージングされた変更、資格情報/キーに似たファイル、コンテンツを変換する Git 属性、安全でないリポジトリローカルの Git 設定を拒否します。git add . を実行せず、任意のリモート/ref を受け入れず、制限されたコミットに対してフック/署名を無効にし、強制プッシュを決して行いません。

  • ネイティブ Microsoft Office ビジュアルパイプライン: バンドルされた office 拡張機能は、ローカルにインストールされた Microsoft Office を使用して .pptx、.docx、.xlsx をレンダリングできます。PowerPoint はスライドを直接 PNG にエクスポートします。Word/Excel はネイティブの固定レイアウトエンジンと Windows PDF レンダラーを使用してページ PNG を生成します。

  • Word を起動せずに Word 構造を読み取る: inspect_docx は、OOXML から段落、スタイル/番号付け、テーブル、セクション/ページ設定、ヘッダー/フッター、メディア、ハイパーリンク、脚注/文末脚注、コメントを公開します。

  • Excel を起動せずに Excel 構造/数式を読み取る: inspect_xlsx は、シート、境界付きセル範囲、数式とキャッシュされた値、結合範囲、非表示の行/列、定義された名前、計算設定、外部リンク部分を公開します。

  • 監査対応出力: ネイティブレンダリングは、決定的な PNG ディレクトリと兄弟 ZIP を書き込み、Office ソースと生成された出力の両方について SHA-256/サイズのメタデータを返します。既存の image_open ツールは、各ページまたは ZIP メンバーを視覚的に検査できます。

  • Office 自動化は制約付き: ワークスペース相対の非リンクパスのみが受け入れられます。マクロ有効形式は除外されます。Office 自動化マクロは強制的に無効化されます。ファイルは読み取り専用で開かれます。Excel のリンク更新は無効化されます。バンドルされた PowerShell スクリプトは固定されており、任意のコマンドを受け入れません。

  • 既存の 0.4.x の安全性/UI の改善は維持: 高 DPI スクロール、ComfyUI 管理サービス診断、安定した拡張ゲートウェイ、境界付きグローバル機能、単一ファイルの Windows 配信は変更されていません。

完全なリリース履歴については CHANGELOG.md を、管理サービスとプラグインの境界については Extension ABI v1 を参照してください。

Related MCP server: Forge Workspace MCP Server

FolderBridge の理由

  • 独立したフォルダ境界: 1 つの接続に最大 8 つの正規ワークスペースを含めることができます。すべてのマルチワークスペースツール呼び出しは、ルートをマージする代わりに workspace_id を選択します。

  • デフォルトで読み取り専用: ランチャーで明示的に読み取り/書き込みに切り替えます。

  • 競合安全な編集: 既存ファイルには、最後の読み取りで返された SHA-256 が必要です。古い編集は、新しい作業を上書きする代わりに失敗します。

  • 任意のシェルなし: オプションのタスクは名前付きで、ローカルでレビューされ、正確な設定ハッシュによって承認されます。

  • 公開リスナーなし: MCP サーバーは stdio のみを使用します。

  • テレメトリなし: FolderBridge 自体はネットワークリクエストを行いません。

  • シークレット対応ランチャー: OpenAI Runtime API キーはメモリ内に保持され、ローカル MCP プロセスが使用する前に削除されます。

  • 初心者向けデスクトップ UI: フォルダの追加/削除リスト、グローバルアクセスモード、Tunnel セットアップ、診断、開始/停止、プロセス監視、編集済みログが 1 つのウィンドウにあります。

  • Windows スケーリングサポート: フォントとウィンドウサイズは現在のディスプレイ DPI に従い、異なるスケール係数のモニター間を移動すると更新されます。

クイックスタート

要件は FolderBridge の使用方法によって異なります:

  • スタンドアロン Windows EXE: 別途 Python や Node.js のインストールは不要です。Windows はテスト済みのダブルクリックランチャー環境です。

  • ソースから実行/開発: Python 3.11 以降が必要です。Python 3.11 x64 が推奨される Windows ビルドベースラインです。

  • プロジェクト機能: ワークスペース自体が必要とするツールチェーンのみをインストールします (例: Node/npm プロジェクトのテスト/ビルドスクリプトには Node.js LTS)。機能を有効にしても、そのツールチェーンはインストールされません。

  • Git はオプションです。境界付きの status/diff ビューは、Git が利用可能な場合にそれを使用します。Git Publisher 拡張機能は、ブラウザ認証による GitHub コミット/プッシュのために、Git Credential Manager を備えた Git for Windows を追加で必要とします。

Windows 実行可能ファイル — 推奨

最新の GitHub リリース Assets から単一の FolderBridge.exe をダウンロードするか、EXE を直接ダウンロード してください。バイナリはリポジトリのソースファイル一覧には表示されません。FolderBridge.exe は完全な FolderBridge アプリケーションであり、Python ランタイムをすでに含んでいるため、通常の EXE ユーザーは Python や Node.js をインストールしません。隣接する FolderBridge.exe.sha256 ファイルはオプションであり、整合性検証のためだけに存在します。

単一ファイルの実行可能ファイルは、OpenAI が独立してリリースした tunnel-client を意図的に再バンドルしません。公式クライアントを OpenAI のリリースから個別にダウンロードし、Web 上の ChatGPT を使用する場合にのみランチャーで tunnel-client.exe を選択してください。

[!NOTE] 現在のコミュニティビルドはコード署名されていないため、Windows はその発行元を不明として識別します。署名されていないバイナリを信頼しない場合は、監査済みソースからビルドしてください。

ソースから実行

リポジトリをクローンして GUI を起動します:

git clone https://github.com/MoonTzai/folderbridge-mcp.git
cd folderbridge-mcp
python .\folderbridge_launcher.py gui

必要なワークスペースを追加し、最初の実行では 読み取り専用 を選択したままにし、ステータスパネルを使用してセットアップを完了します。ランチャーの設定はリポジトリの外部に保存されます。Runtime API キーは決して保存されません。レガシーの単一ワークスペース設定は、最初のリストエントリに自動的に移行されます。

folderbridge_gui.pyw は、.pyw の関連付けが Tkinter を備えたインタープリターを指す Python インストールのための、ソースのみの便利なファイルとして保持されています。スタンドアロンの FolderBridge.exe がサポートされるダブルクリックエントリポイントです。

オプションの開発およびプロジェクトツールチェーン

これらは通常の FolderBridge.exe 使用の前提条件ではありません:

  • ソース開発または Windows EXE の再ビルドには、公式の Python Windows ダウンロード から Python 3.11 x64 をインストールし、python --version を確認してください。パッケージングフローは、分離された .build-venv と requirements-build.txt を使用します。

  • ターゲットの Node/npm ワークスペースが独自のテストまたはビルドコマンドに node/npm を必要とする場合にのみ、公式の Node.js ダウンロード から Node.js LTS をインストールし、node --version と npm --version で確認してください。

  • 他のプロジェクトは、独自のランタイムまたはコンパイラを必要とする場合があります。FolderBridge の機能は、依存関係のインストールではなく、承認と境界付きの検出/実行を提供します。

Web 上の ChatGPT に接続

ChatGPT はローカルの stdio プロセスに直接接続できません。FolderBridge は、このパスに OpenAI の公式 Secure MCP Tunnel を使用します。必要なもの:

[!IMPORTANT] Secure MCP Tunnel は、このコンピュータからの送信 HTTPS (デフォルトでポート 443) のみを必要とし、インターネットに面した受信ポートは必要ありません。FolderBridge のために Windows リモートデスクトップ、ルーターポート転送、DMZ、UPnP マッピング、またはポート 3389 を有効にしないでください。これらは Tunnel セットアップの一部ではありません。ファイアウォールが受信アクセスについて尋ねてきた場合、Tunnel を機能させるためだけに広範な公開受信ルールを作成しないでください。

ランチャーの右上隅にある 连接设置向导 (接続設定ガイド) をクリックすると、以下の手順とショートカット (オプションの Python/Node 付録を含む) が表示されます。

1. 公式 Windows x64 クライアントをダウンロード

[!WARNING] 完全な tunnel-client-v<version>-windows-amd64.zip アーカイブのみをダウンロードしてください。tunnel-client-runtime-* ファイルをダウンロードまたは選択しないでください。 ランタイムファイルは内部コンポーネントであり、セットアップに必要な init コマンドを実装していません。名前が似ているため、「構成に失敗しました」というエラーが発生する可能性があります。完全なアーカイブを抽出した後、正確に tunnel-client.exe という名前のメインプログラムのみを選択してください。

  1. 最新の openai/tunnel-client リリース を開き、Assets を展開します。

  2. tunnel-client-v<version>-windows-amd64.zip という名前の完全なアーカイブをダウンロードします。リリースファイル名では、amd64 は Windows x64 を意味し、ほとんどの Intel/AMD PC で正しいです。

  3. オプションで、検証用に SHA256SUMS.txt をダウンロードします。tunnel-client-runtime-*、windows-arm64、all.zip、ソースコードアーカイブ、ライセンスファイルを選択しないでください。ランタイムアーカイブは完全なクライアントの代わりにはなりません。

  4. ZIP 全体を安定したフォルダに抽出します。インストーラーはなく、アーカイブ内から実行しないでください。ガイドは推奨場所として %LOCALAPPDATA%\FolderBridge\bin を作成して開くことができます。

  5. FolderBridge に戻り、選択已解压的 EXE をクリックし、正確に tunnel-client.exe という名前のファイルのみを選択します。

2. Platform Tunnel を作成

OpenAI Platform Tunnel 設定 を開き、Create tunnel をクリックして、現在の選択肢を使用します:

フィールド

推奨値

注意

名前

FolderBridge

カスタマイズ可能な表示名

説明

Local FolderBridge MCP for private workspace access

必須。カスタマイズ可能

組織

個人アカウントの場合は Personal

チームの場合、このTunnelを管理するPlatform組織を選択します

ChatGPTワークスペース

アプリを作成するワークスペース

空のままにしないでください。個人アカウントには通常1つのワークスペースIDがあります

作成後、tunnel_ で始まるTunnel IDをコピーします。実行と選択には Tunnels Read + Use が必要です。作成や編集には Manage も必要です。このローカルワークスペースへのアクセスが必要な組織とChatGPTワークスペースのみを関連付けてください。

同じPlatform組織のRuntime API Keysで tunnel-client 用のキーを作成します。作成者には Tunnels Read + Use が必要です。キーはFolderBridgeにのみ貼り付け、プロセスメモリ内に保持されます。Admin APIキーは使用しないでください。また、RuntimeキーをChatGPTアプリのAuthenticationフィールドに入れないでください。

3. FolderBridgeを起動

  1. 明示的なワークスペースフォルダを1つ以上(最大8つ)追加し、最初の実行では 読み取り専用(推奨) を維持します。グローバルアクセスモードは、リストされたすべてのフォルダに適用されます。

  2. 完全なアーカイブから tunnel-client.exe を選択します。tunnel-client-runtime-* コンポーネントは選択しないでください。デフォルトの folderbridge プロファイルが適しています。

  3. 同じTunnel IDとRuntime APIキーを入力します。必要に応じて、希望するグローバル機能を一度有効にします。カスタムコマンドが必要でない限り、ワークスペースごとの高度な名前付きタスクは無効のままにします。

  4. 接続を開始 をクリックします。ランチャーは公式の init、doctor、run フローを実行します。上部のステータスが 运行中(実行中)と表示された後にのみ続行してください。後でフォルダやアクセスモードを変更する場合は、应用配置(設定の適用)をもう一度クリックします。ランチャーは管理している同じプロファイルを更新します。

4. ChatGPT開発者モードアプリを作成する

ChatGPT Plugins を開き、+ をクリックして、次の重要な選択肢を使用します:

フィールド

必須の選択肢

接続

Tunnel

利用可能なTunnel

同じTunnelを選択するか、その tunnel_... IDを貼り付けます

認証

認証なし

[!WARNING] フォームをデフォルトの OAuth 選択肢のままにしないでください。また、https://tunnel-service... アドレスをServer URLに貼り付けないでください。FolderBridgeはユーザーOAuthを実装していないため、その構成では does not implement OAuth エラーが発生します。

ChatGPT会話でアプリを呼び出す

  1. FolderBridgeのステータスを 运行中(実行中)に保ち、新しいChatGPT会話を開始します。

  2. コンポーザーの横にある + を選択し、More を開いて、作成したばかりのFolderBridgeアプリを選択します。

  3. 次のようなタスクを送信します:「まずFolderBridgeの server_info を使用して利用可能なワークスペースを一覧表示し、次に私が指定するワークスペースのルートを読み取ってください。」承認する前に、ツール確認で workspace_id と対象ファイルを確認してください。

このエントリポイントは、OpenAI公式の接続とテストのガイダンスに従っています。ランチャーの接続ガイドには同じ手順と、ワンクリックでコピーできるサンプルプロンプトが含まれています。

ChatGPTがワークスペースを使用している間は、ランチャーを実行したままにしてください。閉じるとTunnelプロセスが停止します。アカウントレベルの開発者モードとアプリインストールの確認はChatGPTに残ります。FolderBridgeはブラウザセッションやセキュリティ設定を自動化しません。

ブラウザ拡張機能は不要です。FolderBridgeは、ネットワーク経由で配信されるバイナリを黙ってダウンロードまたは実行することは意図的に行いません。

別のローカルMCPクライアントを接続する

はい。FolderBridgeの互換性の接続点は、標準のMCP stdio サーバーです。ChatGPT Tunnelは、ローカルプロセスを起動できないWebクライアントのためのブリッジにすぎません。MCP stdio トランスポートも同様に、クライアントがサーバーのサブプロセスを起動し、標準入出力でJSON-RPCを交換することを指定しています。MCP stdio仕様

クライアントの要件

  • ローカルの command + args ペアを設定し、サブプロセスを実行し続けることができる。

  • stdio を介したMCPをサポートし、stdoutをプロトコルメッセージ用に予約している。

  • MCPツール(initialize、tools/list、tools/call、または最新の2026-07-28検出フロー)を検出して呼び出すことができる。

  • セッション終了時にstdinを閉じるか、サブプロセスを終了する。

  • ツール承認UXを備えたクライアントを推奨しますが、その確認ダイアログを唯一のセキュリティ境界として扱わないでください。

FolderBridgeは現在、2024-11-05、2025-03-26、2025-06-18、2025-11-25、2026-07-28 のプロトコルパスを処理します。標準のツールスキーマ、テキストコンテンツ、structuredContent を返します。確認プロンプトが表示されるかどうかはクライアント固有です。MCP Tools仕様

クライアントタイプ

直接接続?

ルート

stdio MCPを備えたローカルデスクトップアプリまたはIDE

はい

FolderBridge.exe をコマンドとして、serve ... を引数として使用

1つの結合コマンドフィールドを持つローカルアプリ

通常

完全なstdioコマンドを貼り付け、パスの引用符を保持

リモートのHTTP/SSE URLのみを受け入れるクライアント

いいえ

そのクライアントの公式のstdioゲートウェイ/プロキシを使用するか、個別に保護されたMCPブリッジを展開する

Webのみ、モバイル、またはクラウドサンドボックス

通常はローカルPCには接続しない

ワークスペースに到達できる信頼できるホストで、ベンダーの公式のTunnel/リモートメカニズムを使用する

最短のローカルセットアップ

  1. FolderBridgeに1つ以上のワークスペースを追加し、読み取り専用(推奨) を維持します。

  2. 连接设置向导 の5ページ目を開き、JSON、TOML、または完全なstdioコマンドをコピーします。

  3. クライアントのMCP Servers設定に貼り付けます。正確なフィールド名については、そのクライアントのドキュメントに従ってください。

  4. クライアントを再起動または更新し、server_info と workspace が表示されることを確認します。

直接のstdio接続には、tunnel-client、Tunnel ID、Runtime APIキー、または実行中のFolderBridge GUIは必要ありません。クライアントは必要に応じてこのコマンドを起動します:

FolderBridge.exe serve --workspace C:\path\to\repo --read-only

--workspace を繰り返してフォルダを追加し、各ルートを独立に保ちます:

FolderBridge.exe serve --workspace C:\work\frontend --workspace C:\work\backend --read-only

ソースから貼り付け可能な設定を生成します:

python .\folderbridge_launcher.py client-config --workspace C:\path\to\repo --format json --read-only
python .\folderbridge_launcher.py client-config --workspace C:\path\to\repo --format toml --read-only
python .\folderbridge_launcher.py client-config --workspace C:\path\to\repo --format tunnel --read-only

JSON出力は、多くのデスクトップクライアントで使用される一般的な mcpServers 規約に従います:

{
  "mcpServers": {
    "folderbridge": {
      "command": "C:\\Tools\\FolderBridge.exe",
      "args": ["serve", "--workspace", "C:\\work\\frontend", "--workspace", "C:\\work\\backend", "--read-only"]
    }
  }
}

[!IMPORTANT] JSON/TOMLのトップレベルキーは一般的な規約であり、普遍的なクライアント要件ではありません。互換性は最終的に、クライアントがcommand/argsを変更せずにMCP stdioサブプロセスとして起動することを意味します。クライアントがURLのみを受け入れる場合、このリリースには組み込みのHTTP/SSEリスナーはありません。アドホックなローカルポートをパブリックインターネットに直接公開しないでください。

プロトコルバージョン、プロセスライフサイクル、cwd/env、承認境界、リモートブリッジングの詳細については、クライアント互換性リサーチ を参照してください。

ツールと編集ワークフロー

組み込みのサーバーツールは、ワークスペースごとのタスク設定に依存しません:

  • server_info: 利用可能な各ワークスペース名、安定した workspace_id、組み込み/グローバル機能、セキュリティ境界を報告します。

  • workspace: 選択した workspace_id 内で、リスト、読み取り、検索、制限付きGitステータス/差分出力を表示します。

  • file_info: バイナリファイルの制限付きメタデータとSHA-256を返します。

  • pptx_inspect: Officeコンテンツを実行せずに、PPTXテキスト、OOXMLダイアグラムの関係、SmartArtデータを検査します。

  • image_open: 制限付きのPNG/JPEG/GIF/WebP画像コンテンツをMCPクライアントに返します。ZIPファイル内の正確な画像メンバーも含みます。

  • extension: ホットロードされた拡張機能のための安定した list / info / run ゲートウェイ。プラグインを追加してもMCPツール名は増えません。

  • edit_file: 読み取り/書き込みモードで、選択したワークスペース内のUTF-8ファイルを作成または正確に編集します。

ワークスペースが1つの場合、既存のクライアントは workspace_id を省略し続けることができます。複数のワークスペースの場合、ワークスペーススコープのツールには server_info が返す workspace_id が必要です。欠落または不明なIDは拒否されます。重複するルート、親/子のオーバーラップ、8エントリを超えるリストは起動前に拒否されます。

安全な編集ループは次のとおりです:

  1. ファイルをリストまたは検索します。

  2. 読み取り、返されたSHA-256を保持します。

  3. そのハッシュで正確な置換を送信します。

  4. Git差分を検査します。

サーバーはファイルを削除または移動できません。絶対パス、..、シンボリックリンク、ジャンクション/再パースポイント、VCS内部、一般的な依存関係/ビルドフォルダ、資格情報のような名前は拒否されます。

グローバル事前承認機能

ランチャーは、現在および将来のすべてのワークスペースに対して、一般的な機能を一度承認できます:test、build、package-windows、package-android、git-push。これらの権限は .folderbridge.json ではなくランチャー設定に保存されるため、ワークスペースは追加から数か月後にサポートされたビルドスクリプトを取得でき、FolderBridgeは呼び出し時にそれを検出します。ランチャーはこのグループの すべて選択 と クリア コントロールも提供します。

git-push は、GitHub HTTPS origin、現在のブランチ、フォースプッシュなし、リポジトリローカルの資格情報ヘルパー/プッシュターゲット書き換え設定なしに制限された、低レベルのプッシュ専用機能のままです。ブラウザ認証と明示的なファイルのコミット+プッシュには、同梱の Git Publisher 拡張機能を代わりに使用してください。ビルド/パッケージ機能はローカルプロジェクトコードを実行する可能性があるため、希望するグローバル機能のみを有効にしてください。

直接のstdioクライアントの場合、serve または client-config コマンドで --capability <name> を繰り返します。Windowsランチャーは同じ選択肢を永続的なチェックボックスとして公開します。

拡張機能

FolderBridge Extension ABI v1は、MCPツールカタログを変更せずに、ComfyUI、FFmpeg、Blender、Ollama、ADBなどの将来のグローバル統合を追加するための推奨方法です。Windowsランチャーには、デフォルトで折りたたまれた 拡張機能 サイドバーがあり、ユーザー拡張ディレクトリをホットスキャンし、インストール済み/承認済み/ロード済みの状態を表示し、Tunnelが接続されている間にプラグインを承認または無効にできます。

各拡張機能は、少なくとも folderbridge-extension.json と plugin.py を含むディレクトリです。外部プラグインは、完全なプラグインディレクトリの正確なSHA-256と宣言された権限リストに対して承認されます。ファイルまたは権限を変更すると、承認は無効になります。拡張機能は、クリーンな環境、制限されたプロトコルI/O、宣言されたタイムアウトを持つ別のサブプロセスで実行されます。これにより、クラッシュとプロトコル汚染が分離されますが、OSセキュリティサンドボックスではありません。信頼できないプラグインコードにはVM/コンテナを使用してください。

Workspace固有の適応では、workspace_adapter.mode=dynamic と detect.any_of / detect.all_of を使用する必要があります。FolderBridge はこれらのパターンを呼び出し時に再評価するため、拡張機能はインストール時に .folderbridge.json タスクを注入する必要がなく、後でプロジェクトが変更された場合にも適用可能になります。永続的なプラグイン状態は、リポジトリを汚染するのではなく、提供されたプロファイル状態ディレクトリを使用する必要があります。

ComfyUI は最初にバンドルされた拡張機能です。そのステータスアクションは固定ループバックエンドポイント 127.0.0.1:8188 をチェックします。ワークフローの実行には、拡張機能サイドバーでの一度の承認が必要です。FolderBridge 0.4.1 では、Windows ランチャーがローカルの ComfyUI プロセス自体を管理することもできます。サポートされている Portable ルート(python_embeded\\python.exe + ComfyUI\\main.py)またはソースルート(main.py + .venv\\Scripts\\python.exe / venv\\Scripts\\python.exe)を一度選択すると、ランチャーは明示的な Python/main.py 引数、shell=False、固定の 127.0.0.1:8188 バインディングで自動起動できます。FolderBridge が起動する前にそのエンドポイントがすでにオンラインである場合、サービスは外部としてマークされ、複製されるのではなく再利用されます。

管理サービスの所有権は、意図的に拡張機能の権限よりも厳しくなっています。FolderBridge は install_root と auto_start のみを保存し、PID や任意のコマンドは保存しません。現在のランチャー実行によって作成されたインメモリの Popen ハンドルのみが所有され、停止可能と見なされます。FolderBridge は ComfyUI に対してユーザーが選択した BAT/CMD を実行することは決してなく、ポート 8188 を占有しているという理由だけで不明なプロセスを検索したり強制終了したりすることもありません。終了時には、Tunnel/MCP の前に所有する管理サービスを停止します。外部の ComfyUI は実行中のままです。

Windows では、ランチャーは Per-Monitor DPI V2 認識を要求し、軽量なフォールバックとして現在のウィンドウ DPI もポーリングします。固定 GUI メトリクスは、DPI が実際に変更された場合にのみ、元の論理サイズ(dpi / 96)から再計算されるため、96 → 144 → 96 DPI に移動してもスケールのずれが蓄積されません。

ABI v1 プラグインは、ワンファイル EXE 内で任意の pip 依存関係を想定するのではなく、FolderBridge がパッケージ化したモジュールと Python 標準ライブラリを使用する必要があります。追加のソフトウェアには、通常、正確なループバック API または宣言された process.execute:<basename> 依存関係を介して到達する必要があります。FolderBridge.exe extensions --json を実行して、パッケージ化された実行可能ファイルが検出できるものを確認します。接続ガイドの付録には、完全な形式に加えて、推測する代わりに不足している API ドキュメント、スクリプト、ワークフロー、サンプルファイル、またはプロジェクト構造を要求/アップロードするようにモデルに指示するワンクリックの LLM プラグイン開発プロンプト が含まれています。Extension ABI v1 を参照してください。

オプションのワークスペースごとの名前付きタスク

任意のコマンドテキストが MCP を介して受け入れられることはありません。グローバル機能でカバーされていない異常なリポジトリ固有のコマンドについては、ローカルタスクポリシーを作成して確認します。

python .\folderbridge_launcher.py init --workspace C:\path\to\repo
# Review C:\path\to\repo\.folderbridge.json
python .\folderbridge_launcher.py approve --workspace C:\path\to\repo

次に、ランチャーで承認されたタスクを有効にするか、生成されたサーバーコマンドに --allow-tasks を追加します。このスイッチを有効にしても、設定されたすべてのワークスペースに .folderbridge.json が含まれている必要はありません。設定なしのワークスペース、承認済みタスクのワークスペース、拡張機能のみのワークスペース、設定がまだ承認されていないワークスペースは、1つの接続に共存できます。承認は、そのワークスペースの名前付きタスクが実際に呼び出されたときにチェックされます。モデルはタスク名のみを選択でき、コマンド、引数、環境変数、作業ディレクトリを提供することはできません。

[!WARNING] テスト、ビルドツール、パッケージスクリプトは、現在の OS ユーザー権限でリポジトリコードを実行します。信頼できないリポジトリには使い捨ての VM またはコンテナを使用するか、タスク実行を無効のままにしてください。

セキュリティモデル

FolderBridge は、MCP リクエスト、リポジトリテキスト、ツール出力を信頼できないデータとして扱います。強制は MCP アノテーションだけでなく、ツール実装にあります。主な制御は次のとおりです。

  • ワークスペースごとの正規パス閉じ込めとリンク拒否。ルートの重複は拒否されます。

  • 境界付き UTF-8 読み取り、検索、Git 出力、サブプロセス出力、プロトコルメッセージ。

  • 現在のコンテンツハッシュの事前条件を伴うアトミック書き込み。

  • 保護されたローカルポリシーファイル。

  • shell=False、固定引数配列、クリーンなタスク環境、タイムアウト。

  • 拡張機能マニフェストは不明または過度に広い権限名を拒否し、拡張機能の承認は正確なコードハッシュと権限にバインドされ、プラグインの実行は MCP プロセス外に移動されます。

  • インバウンドネットワークリスナーがなく、FolderBridge テレメトリもありません。

完全なセキュリティモデル](docs/security-model.md) と 上流の設計調査 をお読みください。脆弱性を報告するには、SECURITY.md に従ってください。

開発

サードパーティのランタイム依存関係はありません。

python -m unittest discover -s tests -v

プルリクエストを開く前に CONTRIBUTING.md を参照してください。

Windows 実行可能ファイルのビルド

ビルドでは、ビルド時のみの固定された PyInstaller 依存関係を使用します。リリースされた EXE は、hide-console=hide-early を指定したコンソールブートローダーを使用します。ダブルクリックすると GUI のみが開きますが、Tunnel が serve サブコマンドを開始すると、同じ実行可能ファイルは stdio を保持します。

python -m venv .build-venv
.\.build-venv\Scripts\python.exe -m pip install -r requirements-build.txt
.\scripts\build_windows.ps1 -Python .\.build-venv\Scripts\python.exe

アーティファクトと SHA-256 ファイルは release\windows-x64 に書き込まれます。

ライセンス

Apache License 2.0 の下でライセンスされています。

FolderBridge MCP は独立したオープンソースプロジェクトです。OpenAI とは提携、承認、スポンサー関係にありません。ChatGPT、OpenAI、MCP、その他の製品名は、それぞれの所有者に帰属します。

Available Tools

10 tools
edit_fileCreate or exactly edit one fileA
Destructive

Atomically create a UTF-8 file, or edit one using unique exact replacements and a current whole-file SHA-256. workspace(read) returns that SHA for small files; use file_info for larger files. When multiple workspaces are configured, pass the same workspace_id used for inspection. Cannot delete files, edit the local task config, follow links, or access credential-like paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
replacementsNo
workspace_idNoRequired when server_info lists multiple workspaces.
create_contentNoUsed only when creating a new file.
expected_sha256NoRequired when editing an existing file.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior, but the description adds important context: atomicity, exact replacement matching, SHA requirement, and explicit forbidden actions (delete, config, links, credentials).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise single paragraph that front-loads the core purpose and then efficiently covers SHA, workspace_id, and limitations without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers creation vs. editing, SHA requirements, workspace_id, and limitations; with no output schema, return values need no explanation, though failure behavior on non-unique replacements could be mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 60% of parameters with descriptions; the tool description clarifies replacement uniqueness, SHA acquisition, and workspace_id usage, though it adds little for the obvious path parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create/edit) and resource (UTF-8 file), clearly distinguishing from siblings by noting exact replacements, SHA-256, and forbidden operations like deletion or credential access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides practical guidance on obtaining the SHA via workspace or file_info, workspace_id handling, and constraints, but does not explicitly name an alternative like write_file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extensionUse FolderBridge extensionsA
Destructive

Stable extension gateway. action=list returns a compact pageable catalog of installed/hot-reloaded extensions and action names; action=info returns the full schema for one extension; action=run invokes one declared extension action. Long foreground actions may be transport-safely promoted in-place to a host-owned Job; use action=job_list to rediscover workspace Jobs, action=job_status to inspect completion/runtime health/results, and action=job_cancel to terminate the owned worker process tree. Installing more extensions does not add MCP tool names. External extension code requires exact-hash local approval; globally authorized actions must also be enabled in the FolderBridge extension sidebar. Dynamic workspace adapters are re-evaluated at call time, so later project changes do not require workspace task injection.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCatalog/job page size for action=list/job_list.
actionYes
job_idNoRequired for job_status/job_cancel; returned by an explicit or auto-promoted Job action.
offsetNoCatalog/job result offset for action=list/job_list.
paramsNoAction parameters validated against the extension's declared input_schema.
extension_idNoRequired for info/run.
workspace_idNoOptional for list/info; required by workspace-bound run/job operations when multiple workspaces are configured.
extension_actionNoRequired for run; choose an action declared by extension info/list.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by mentioning that job_cancel terminates the owned worker process tree, that external extension code requires exact-hash local approval, and that globally authorized actions must be enabled. This adds meaningful safety context beyond the destructiveHint and readOnlyHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat dense and list-like, but it is still focused and each sentence contributes necessary information about actions, job handling, or authorization. It could be organized into clearer bullets, but it is far from bloated or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity—8 parameters, multiple actions, job lifecycle, and extension authorization—the description covers the essential operational context. It lacks explicit output format details, but no output schema is provided, and the action-specific behavior is sufficiently described for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already high at 88%, and the description adds useful semantic relationships, such as job_id being returned by an explicit or auto-promoted Job action and workspace_id being required for workspace-bound operations when multiple workspaces are configured. This clarifies parameter behavior beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as a stable extension gateway and enumerates the exact actions (list, info, run, job_list, job_status, job_cancel). It also distinguishes the tool from ordinary file operations by noting that installing more extensions does not add MCP tool names, making its role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides practical guidance on how to use the tool: it explains the purpose of each action, how long foreground actions can be promoted to jobs, and that extension code requires approval. It does not explicitly mention competing alternatives, but it gives enough context for an agent to decide when this gateway is the appropriate entry point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_infoInspect file metadata and SHA-256A
Read-only

Return bounded metadata and whole-file SHA-256 for a regular file without exposing its bytes; use this SHA before editing large text files. Uses the same workspace confinement, link denial, and sensitive-path policy as text tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
workspace_idNoRequired when server_info lists multiple workspaces.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive behavior. The description adds that bytes are not exposed and mentions shared workspace/link/sensitive-path policies, providing extra context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, tightly packed with essential information: function, limitation, use case, and policy alignment. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata/hash tool, the description covers key aspects: what it returns, what it avoids, and when to use it. The absence of an output schema is compensated by the clear explanation of the return value. It is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover workspace_id but not path, giving 50% coverage. The description does not add any parameter details, but the parameters are simple and self-explanatory (path, workspace_id). This is adequate but not enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns metadata and SHA-256 for a regular file, and explicitly notes it does not expose bytes, distinguishing it from content-reading tools. The phrase 'use this SHA before editing large text files' gives a concrete purpose and workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a specific use case ('use this SHA before editing large text files') and clarifies the tool's non-content nature. While it doesn't compare directly to sibling tools, the 'without exposing its bytes' phrase implies when not to use it, giving adequate guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_opsCopy or move one file within or across workspacesA
Destructive

Core FolderBridge regular-file copy/move with workspace confinement on both ends. Use source_workspace_id when multiple workspaces are configured; destination_workspace_id is optional and defaults to the source workspace. Paths remain workspace-relative, links/reparse points, credentials, dependencies and protected control config writes are denied. No-clobber is the default; overwrite requires the current destination SHA-256. Cross-volume move falls back to verified copy then source removal.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
max_bytesNo
overwriteNo
source_pathYes
create_parentsNo
destination_pathYes
source_workspace_idNoRequired when more than one workspace is configured.
expected_source_sha256NoOptional source-byte guard; also enables safe already-completed retry recognition.
destination_workspace_idNoOptional; defaults to source_workspace_id.
expected_destination_sha256NoRequired when overwrite=true; must match the current destination bytes.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses critical behaviors beyond the destructiveHint annotation: it denies links, credentials, dependencies, and protected writes; explains no-clobber default with overwrite requiring SHA-256; and describes cross-volume move fallback. These specifics are valuable safety context not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, leading with the core purpose and then detailing constraints. It avoids unnecessary words and presents information in a logical flow, though it could benefit from a clear separation of parameter usage from general behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, no output schema, and moderate complexity, the description covers important safety and overwrite aspects but omits explanations for max_bytes, create_parents, expected_source_sha256 usage, and action semantics. These gaps could lead to incorrect invocation, especially for a file operation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for workspace IDs, overwrite requirements, and no-clobber default, which helps with parameters lacking schema descriptions. However, it does not explain max_bytes limits, create_parents behavior, or the action enum values, leaving gaps despite the low schema coverage of 40%. It partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact operation (copy/move) on a single regular file, with workspace confinement. It clearly distinguishes from edit/write operations and sets expectations about scope. The phrasing 'Core FolderBridge regular-file copy/move' is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides parameter-level guidance (workspace IDs, overwrite behavior) but does not explicitly indicate when to choose this tool over siblings like edit_file or write_file. There is no mention of conditions for selecting this tool or exclusions for other operations, leaving tool selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_recorderRead recent FolderBridge flight diagnosticsA
Read-only

Read FolderBridge's compact local reliability flight recorder. It keeps only the latest 15 minutes with a 20 MiB total cap, records MCP/Tunnel metadata and bounded redacted diagnostics, and never stores full MCP request/response bodies. Use action=status for storage health, recent for a bounded timeline, or errors for warning/error events only.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoall
limitNo
actionYes
minutesNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses retention limits (15 minutes, 20 MiB), recording of MCP/Tunnel metadata, bounded redacted diagnostics, and explicitly states it never stores full request/response bodies, going beyond the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, first summarizing the tool's purpose and data characteristics, second giving actionable usage for actions; no unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of parameters like role, limit, minutes, and their interaction; while the action usage is covered, the tool cannot be fully used without inferring parameter meanings from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description does not explain any of the parameters (action, role, limit, minutes) except implicitly mentioning action usage; schema has enums and defaults but description adds no parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the verb 'Read' and the resource 'FolderBridge's compact local reliability flight recorder' clearly, distinguishing it from other read tools like server_info or file_info by specifying the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on which action to use (status, recent, errors) but does not compare with sibling tools or explain when to choose this over others; still, the action-specific advice is useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_openOpen a workspace image or ZIP image memberA
Read-only

Return one bounded PNG/JPEG/GIF/WebP as MCP image content, either from a direct workspace path or from one exact member inside a workspace ZIP. The archive is never extracted to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect image path. Mutually exclusive with archive_path.
memberNoExact POSIX member path inside archive_path.
archive_pathNoZIP path containing the image. Mutually exclusive with path.
workspace_idNoRequired when server_info lists multiple workspaces.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond the annotations: it states supported formats, the 'bounded' size constraint, and that the archive is never extracted to disk. These are useful operational details that the readOnlyHint annotation does not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the return value and formats, and the key behavioral guarantee is stated in one short second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return form (MCP image content), supported formats, and the two input paths, which is sufficient for an agent to call the tool correctly. It does not describe error cases, but the schema and annotations cover the essential requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds context about the two usage modes but does not go beyond the schema's mutual-exclusion notes or parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return') and a precise resource: one bounded PNG/JPEG/GIF/WebP as MCP image content. It also clearly distinguishes the two input modes (direct path vs. ZIP member), which separates this tool from sibling file operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when you need an image as MCP content, either from a workspace path or from a ZIP member. It does not explicitly name alternative tools or exclusion criteria, but the direct-vs-archive distinction is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_inspectInspect PPTX OOXML and SmartArtA
Read-only

Safely inspect a PPTX inside the selected workspace using Python standard-library ZIP/XML parsing. Returns slide text, diagram-to-slide mappings, dgm:pt points, dgm:cxn connections, and orphan/duplicate diagnostics. Does not execute macros, embedded objects, or workspace code.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
page_endNo
page_startNo
workspace_idNoRequired when server_info lists multiple workspaces.

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses safety-relevant behavior: it does not execute macros, embedded objects, or workspace code. This goes beyond the readOnly/destructive annotations and reassures the agent about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well structured: a safety-and-method sentence, a returns list, and a non-execution guarantee. Every sentence adds meaningful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the return-value list is helpful, and the safety behavior is clear. However, the description omits parameter semantics and does not fully explain how page_start/page_end affect inspection, leaving noticeable gaps for a four-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% and the description does not explain path, page_start, or page_end. Only workspace_id is described in the schema; the description adds no parameter-level clarification, leaving the agent to guess meanings and ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('inspect a PPTX') and resource, and lists concrete outputs ('slide text, diagram-to-slide mappings, dgm:pt points...'). It is clearly differentiated from the sibling tools by its OOXML/SmartArt focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as file_info or image_open. It implies use for PPTX inspection but does not explicitly state selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_infoLocal workspace safety statusA
Read-only

List the fixed workspace IDs, enabled capabilities, approved tasks, and safety boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, which the description aligns with by using the non-destructive verb 'List'. The description adds useful specificity about what information is returned, going beyond the annotations. No contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that lists the exact outputs. It is well-structured and front-loaded with the action verb, making it easy to understand at a glance. No unnecessary words or complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description adequately informs the agent of what the tool returns: fixed workspace IDs, enabled capabilities, approved tasks, and safety boundary. This is sufficient for understanding the tool's result without needing additional details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is fully covered with an empty properties object. Since there are no parameters to describe, the baseline of 4 applies. The description does not need to explain parameters because there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb 'List' and identifies the exact resources it returns: workspace IDs, capabilities, approved tasks, and safety boundary. This makes the tool's function unambiguous and distinct from typical file or workspace operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus its siblings. While it is clearly a read-only status tool, it does not explicitly state that it should be used for checking workspace safety before operations, nor does it mention alternatives. Thus, usage context is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspaceInspect the local workspaceA
Read-only

List files, page through UTF-8 text, stream literal search across large UTF-8 files, or page through git status/diff output. When multiple workspaces are configured, pass a workspace_id returned by server_info. All paths are relative; links, credentials, dependencies, and VCS internals are denied.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
limitNoReturned byte page size for read/status/diff.
queryNoRequired for literal search.
actionYes
offsetNoByte offset for read/status/diff; result offset for list/search.
patternNoGlob for list.*
max_resultsNo
workspace_idNoRequired when server_info lists multiple workspaces.
case_sensitiveNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, and the description is consistent with that while adding behaviors beyond it: literal (not regex) UTF-8-only searches, streaming/paging for large files, and denied content categories. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences: action capabilities first, workspace_id routing second, path/denial constraints third. No filler; every sentence carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, five-action tool with no output schema, the description covers the action space, key routing, and constraints well. It does not specify output shapes or per-action result semantics, but the action names themselves make the expected results reasonably clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 56% schema coverage, the description adds meaning to several parameters: workspace_id's source and trigger, path's relative-base convention, query's literal-search nature, and limit/offset's page semantics. It does not expand on max_results or case_sensitive, but those are named and defaulted in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names explicit actions — list, read, search, status, diff — with concrete resource and scope (files, UTF-8 text, git output). This distinguishes it from sibling tools like file_info and edit_file by making clear it is a broad read-only workspace inspection surface.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear context for use: multi-workspace routing via server_info, relative paths, and a hard denial list (links, credentials, dependencies, VCS internals). It does not explicitly name sibling tools or say when to prefer file_info or edit_file, so it stops short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileTransactionally write a large UTF-8 fileA
Destructive

Host-owned five-action transaction for large whole-file creates or replacements without requiring one giant MCP message. Use begin, then one or more append calls with the exact next UTF-8 byte offset, optionally status, then commit with the complete expected size and SHA-256; abort discards staging. Staging stays outside the workspace, replace mode rechecks the original target SHA at commit, and successful commit uses a same-directory fsync + atomic replace.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoRequired only for begin.
pathNoRequired only for begin.
chunkNoRequired for append; runtime-enforced maximum is 4 MiB of UTF-8 bytes so even worst-case JSON escaping stays below the MCP message ceiling.
actionYes
offsetNoRequired for append; exact next UTF-8 byte offset, making retries non-duplicating.
workspace_idNoRequired when server_info lists multiple workspaces.
expected_sizeNoRequired for commit; complete UTF-8 byte length.
transaction_idNoReturned by begin; required by append/status/commit/abort.
expected_sha256NoRequired for commit; SHA-256 of complete new UTF-8 bytes.
expected_target_sha256NoRequired for begin in replace mode; obtain with file_info.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply the generic destructive/idempotent profile; the description adds substantive traits beyond them: staging lives outside the workspace, replace mode rechecks the original target SHA at commit, abort discards staging, and commit is a same-directory fsync plus atomic replace. The offset-based non-duplicating retry guarantee is also stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences that lead with the transaction model, then the action sequence, then the durability and safety guarantees. Nothing is repetitive of the name or title, and every clause carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, multi-action tool with no output schema, the description covers the full lifecycle and the return of transaction_id is captured in the schema itself. It leaves unstated what status or commit return on success and what happens when an offset mismatch or commit-contract failure occurs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so per-parameter documentation is already strong (baseline 3). The description goes further by binding parameters to actions as a cross-field contract: commit needs the complete expected size and SHA-256, append needs the exact next byte offset, and replace mode requires the original target SHA. It doesn't add format examples for the hashes, which the schema already constrains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: a host-owned five-action transaction for large whole-file creates or replacements. The 'whole-file ... without requiring one giant MCP message' framing distinguishes it from the sibling edit_file, which handles partial edits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit protocol sequencing (begin, one or more appends, optionally status, commit, abort) and the size/whole-file condition that motivates it. It stops short of naming edit_file as the alternative for small or partial changes, so the routing decision is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.8.36
    • Addedfile_ops
  2. 1 tool updatev0.8.33
    • Changedwrite_file1 field changed
      • changedInput schema / properties / chunk / description
        Previous value: -"Required for append; runtime-enforced maximum is 128 KiB of UTF-8 bytes so even worst-case JSON escaping stays below the 1 MiB MCP message limit."New value: +"Required for append; runtime-enforced maximum is 4 MiB of UTF-8 bytes so even worst-case JSON escaping stays below the MCP message ceiling."
  3. 9 tool updatesv0.8.25
    • First observededit_file
    • First observedextension
    • First observedfile_info
    • First observedflight_recorder
    • First observedimage_open
    • First observedpptx_inspect
    • First observedserver_info
    • First observedworkspace
    • First observedwrite_file

TDQS

A4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: file operations, editing, reading/searching, metadata, specific format inspection, extension management, and server info. Even edit_file vs write_file are separated by size/chunking, and workspace vs file_info differ in scope. No overlapping or ambiguous tools.

Naming Consistency3/5

All names use lowercase with underscores, but the verb/noun order varies: edit_file and write_file use verb_noun, while file_info and server_info use noun_verb, and workspace and extension are bare nouns. This inconsistency makes the pattern less predictable, though still readable.

Tool Count5/5

10 tools is well-scoped for a file management and inspection server. Each tool covers a distinct aspect (copy/move, create/edit, read/search, metadata, format inspection, extensions, diagnostics) without redundancy or bloat.

Completeness3/5

The surface covers most file lifecycle operations (create, edit, read, copy, move, metadata) but lacks a delete operation. Also missing directory creation and possibly rename (though move may cover that). These are notable gaps for a file management server.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A read-only MCP server that exposes a local code workspace to AI clients via stdio, providing file browsing and text search capabilities with path safety rules.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A deliberately narrow, approval-gated workspace server that safely reads and writes files and runs allowlisted commands only inside one configured workspace, requiring visible approval for every write, process execution, and file read, with stale-overwrite protection and symlink-escape rejection.
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that lets AI assistants inspect local workspace files, search context, view git diffs, and fetch a fixed GitHub profile, all within a sandboxed stdio transport.
    5
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI clients to safely read, search, understand, and edit local project code and files, with Git inspection, code indexing, and controlled command execution within permissioned workspaces.
    3 npm
    6
    MIT