概要
セルフホスト版 AnythingMCP にマウントした Windows ファイルサーバー、NAS、ネットワーク共有(SMB/CIFS または NFS)の中身を ChatGPT で検索できるようにします。PDF、Excel、Word、Outlook ファイルを全文インデックス化し、バックグラウンドで同期します。セルフホスト版のみ対応です。
こう聞いてみよう
Network folder (File Search) のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
ChatGPT でネットワークフォルダを使う
セルフホスト版のみ。 ネットワークフォルダはセルフホスト版 AnythingMCP でのみ利用できます。AnythingMCP Cloud では、代わりに SFTP または WebDAV 経由で NAS に接続してください。
要点: セルフホスト版 AnythingMCP を実行しているサーバーに共有を読み取り専用でマウントし、そのフォルダを File Search コネクタとして追加します。AnythingMCP は対応する全ファイルの全文をインデックス化して同期を保ち、ファイルがネットワークの外に出ることはありません。その後、AnythingMCP を Web 版 ChatGPT に接続します。ChatGPT はファイル名と内容の両方でファイルを探し、必要なページを読み取り、ファイル自体を添付または一時ダウンロードリンクとして渡せます。共有に書き込まれることは一切ありません。
AI アシスタントは単独ではネットワークドライブを開けません。仮に開けたとしても、1 つの質問に答えるために全ファイルをダウンロードしなければならなくなります。インデックスがあるからこそ、「現行の価格表で品番 NT-601 はいくらですか?」といった質問に数秒で答えられます。
必要なもの
- 有償ライセンスまたは 30 日間トライアルが有効なセルフホスト版 AnythingMCP。AnythingMCP Cloud はネットワーク共有に到達できません。SMB(ポート 445)はインターネットに公開すべきものではないためです。
- Docker ホストに 読み取り専用 でマウントされた共有(例:
/mnt/knowledge)。SMB/CIFS または NFS、Windows ファイルサーバーまたは NAS ボリュームのいずれでも構いません。 .envとdocker-compose.ymlを編集するための Docker ホストへのシェルアクセス。
セットアップ
ステップ 1 — 共有をマウントして File Search を有効にする
- Docker ホストに共有を 読み取り専用 でマウントします(例:
/mnt/knowledge)。 appコンテナとfiles-workerコンテナに読み取り専用でバインドし(docker-compose.ymlのコメントを参照)、.envにFILE_SOURCE_ROOTS=/mnt/knowledgeを設定します。ウィザードにはこれらのルート配下のフォルダだけが表示されます。- File Search のサービスを有効にします。
.envにFILES_WORKER_URL=http://files-worker:8891、FILES_WORKER_TOKEN、FILE_EXTRACTOR_TOKEN(それぞれopenssl rand -hex 24で生成)、COMPOSE_PROFILES=filesを追加します。 docker compose up -dを実行します。Connectors → New → File Search で、ワーカーとエクストラクターに到達できるかを確認できます。
すべての設定項目は File Search のドキュメントに記載されています。
ステップ 2 — File Search コネクタを設定する
AnythingMCP で Connectors → New → File Search を開き、Network folder を選択します(Marketplace では Network folder (File Search))。
- フォルダ。
FILE_SOURCE_ROOTS配下のフォルダを選びます(例:/mnt/knowledge/Purchasing)。 - テスト。 保存前に AnythingMCP がフォルダの内容を一覧表示し、読み取り可能かどうかを示します。
- スキャン。 Scan folder をクリックします。AnythingMCP はインデックス化せずにフォルダを一覧化し、各サブフォルダのファイル数、ファイルの種類、年をツリーで表示します。アーカイブに見えるフォルダ(
Alt、Old、Archive、Backup)は最初からチェックが外れているため、ChatGPT が古いドキュメントを引用することはありません。フォルダ、ファイルの種類、更新時期の上限を選択している間、バーが選択内容とご利用のプランを比較します。選択がプランの上限を超える場合は、さらにチェックを外すか、プランをアップグレードしてください。 - 説明。 AnythingMCP がスキャン結果からコネクタの説明文を下書きします(例: 「Purchasing share: supplier price lists and conditions, PDF and Excel, German, 2019–2026」)。このテキストは、フォルダに何が入っていて、いつ検索すべきかを ChatGPT に伝えます。サーバーに AI モデルが設定されていれば、ウィザードは AI で下書きを作成でき、送信される内容(フォルダ名、ファイル名、最大 20 件のサンプルファイルの先頭 2,000 文字、個人データはマスク済み)を正確に表示します。設定がなければ、フォルダ構造から下書きが作成されます。自由に編集してください。
- 有効化。 ツールプレフィックス、同期間隔、コネクタを割り当てる MCP サーバーを選び、Activate をクリックします。
最初の同期はすぐに始まり、独立したバックグラウンドサービスで実行されます。同期中も、ChatGPT や他のコネクタは通常どおりの速度で応答を続けます。コネクタの Files タブには、見つかったファイル、インデックス化済みのファイル、スキップしたファイル、前回と次回の同期、そして Sync now ボタンといった進行状況が表示されます。
ステップ 3 — サーバー URL をコピーする
MCP Servers で、ウィザードで選んだサーバーを開き、その URL をコピーします。
ステップ 4 — ChatGPT にコネクタを追加する
あなたのサーバー URL: AnythingMCP で MCP Servers → このコネクタが属するサーバーを開き、その URL をコピーします(
https://anythingmcp.example.com/mcp/…の部分はご自身のアドレスになります)。このガイドにYOUR_SERVER_IDと書かれている箇所で使用してください。
ChatGPT は、お使いのコンピューターではなく OpenAI のクラウドから MCP サーバーに接続します。そのため、AnythingMCP には公開された HTTPS アドレスが必要です。リポジトリの ./setup.sh で、ドメイン、HTTPS、OAuth を設定できます(デプロイガイド)。このステップで https://anythingmcp.example.com と書かれている箇所には、そのアドレスを使用してください。ファイル自体はご自身のサーバーに残ります。
ChatGPT は、Web 版の有償プランで、Plugins ページから MCP サーバーをプラグインとして追加します。開発者モードはもう必要ありません。Business ワークスペースでは管理者とオーナーのみが追加でき、Enterprise と Edu では管理者が Create plugins with MCPs 権限を付与できます。
- chatgpt.com/plugins にアクセスし、Add、続いて Add custom MCP server をクリックします。
- 名前を入力します(例: Name:
File server)。 - Connection で、Server URL に
https://anythingmcp.example.com/mcp/YOUR_SERVER_IDを入力し、Authentication は OAuth のままにします。 - I understand and want to continue を選択し、続けて Create as a plugin を選択します。ChatGPT から求められたら、AnythingMCP にサインインしてアクセスを許可します。
- 作成したプラグインを個人用プラグインからインストールし、チャットで @ を入力して選択します。
ステップ 5 — 質問する
新しいチャットを開始し、ファイルの内容について質問します。ChatGPT はまずインデックスを検索し、一致したページを開いて、ファイル名、ページ、ファイルの日付を添えて回答するため、出典を確認できます。
ChatGPT でファイルに対してできること
| ツール | 内容 |
|---|---|
<prefix>_guide | このフォルダの検索方法 |
<prefix>_search | インデックス化された全ページの全文検索: 最も関連性の高いページ、スニペット、日付を含むファイルを返します。フォルダ、ファイルの種類、日付で絞り込め、要望に応じて新しい順にも並べられます |
<prefix>_find | ファイル名(誤字を許容)またはパターンでファイルを検索 |
<prefix>_list | 1 つのフォルダを表示: 件数付きのサブフォルダ、サイズと日付付きのファイル |
<prefix>_read | ファイルをテキストとして読み取り。ページ指定("1-3,7")または文字数のウィンドウ単位で読めます |
<prefix>_grep | コードや数値の完全一致検索(前後 2 行のコンテキスト付き)。スプレッドシートの行は列名付きで返されます |
<prefix>_status | 同期状態、件数、一時停止の理由、内容の概要 |
<prefix>_view_page | PDF の 1 ページ、または画像ファイルを画像として表示: テキストでは捉えられない図面、スタンプ、写真、表に使えます |
<prefix>_get_file | ワークスペースのメンバー向けに、ファイル自体を一時ダウンロードリンクとして提供(画像は添付もされます) |
<prefix>_share_file | 一時リンク(社内向けまたは公開); インストール時は無効 |
<prefix> はウィザードで選んだツールプレフィックスです(例: pricelists)。_share_file 以外のすべてのツールは読み取りのみを行います。
対応ファイル: 100 種類以上のファイル形式からテキストを抽出します。PDF(ページ単位)、マクロ形式やテンプレート形式、.xlsb を含む Word、Excel、PowerPoint、OpenDocument、添付ファイルのテキストを含む Outlook の .msg、.eml、.mbox、.rtf、.epub、.xps、Apple の Pages、Numbers、Keynote(PDF プレビュー経由)、.svg と CAD 図面 .dxf のテキスト、CSV、Markdown、HTML、XML、JSON、YAML、カレンダーと連絡先、そしてソースコードです。それ以外のファイルもファイル名で検索でき、PDF のページや画像は画像として AI に見せられます。テキストレイヤーのないスキャン PDF は、Enterprise では OCR で読み取ります。
ChatGPT で試せるプロンプト
- 「Nordtor の最新の価格表を探して、NT-601 875 x 2000 の価格を教えてください。」
- 「共有内で、3 か月の予告期間に言及しているドキュメントはどれですか?」
- 「Purchasing フォルダで品番 4711-200 を検索し、それが出てくるすべての行を表示してください。」
- 「30 日を過ぎた返品について、社内手順にはどう書かれていますか? 該当の段落とファイルを引用してください。」
同期の仕組み
AnythingMCP は、すべてのファイルのサイズと更新日時を前回の実行時と比較し、新規ファイルと変更されたファイルだけを読み取ります。インデックス化済みのバージョンと内容が同一のファイルはチェックサム(SHA-256)で判別され、再処理されません。削除されたファイルはインデックスから除外されます。読み取れなかったファイルは次回以降の同期で再試行され、3 回失敗すると(パスワード保護されたファイルは即座に)名前では検索できる状態のまま残り、その理由は Files タブに表示されます。
同期は、ChatGPT に応答するサーバーとは別の専用バックグラウンドサービスで実行されます。大規模な初回同期でも質問への応答が遅くなることはなく、同期中も直近のインデックスで検索を続けられます。
フォルダがプランの上限を超えた場合、同期は一部だけをインデックス化するのではなく、何もダウンロードする前に一時停止します。Files タブにはフォルダ内のファイル数とプランの上限が表示され、ChatGPT はインデックス化済みのファイルの検索を続けつつ、新しいファイルが含まれていない可能性があると通知されます。フォルダのチェックを外すか、プランをアップグレードしてください。一時停止したフォルダは 1 日 1 回再チェックされ、上限内に収まれば自動的に再開されます。
セキュリティ
- 読み取り専用。 コネクタは一覧表示と読み取りのみを行います。共有上で書き込み、名前変更、削除を行うツールはありません。
- ワークスペース単位のみ。 インデックスはワークスペースごとに保存され、すべてのクエリはアプリケーションとデータベース(Row-Level Security)の両方でそのワークスペースに制限されます。
- テキストエクストラクター は、外部への経路、データベース、シークレットを持たない内部ネットワーク上で動作します。
- 誰が何を見られるか は MCP のロールに従います。ファイルツールを持たないロールには、それらのツールは表示されません。Enterprise では、ロールごとにフォルダの許可と拒否も設定できます。
- ファイルの内容はデータとして扱われます。 ツールは、ファイル内に見つかった指示には決して従わないようモデルに伝えます。
- ファイルはネットワーク内に留まります。 質問に対してツールが返したもの(一致の一覧、ページのテキスト)だけが、ご利用の AI プロバイダーに送信されます。
- 二重の読み取り専用。 ホストで共有を読み取り専用でマウントし、コンテナにも読み取り専用でバインドします。
プラン別の制限
| 30 日間トライアル | Starter | Team | Enterprise | |
|---|---|---|---|---|
| File Search コネクタ数 | 3 | 1 | 3 | 無制限 |
| インデックス化ファイル数(全コネクタ合計) | 2,000 | 500 | 2,000 | 無制限 |
| 自動同期 | 毎日 | 毎日 | 毎日 | 最短 5 分ごと |
| 1 日あたりの手動同期回数 | 3 | 1 | 3 | 無制限 |
| OCR、ロールごとのフォルダ権限、ワークスペースポリシー | – | – | – | ✓ |
最大ファイルサイズは FILES_MAX_FILE_BYTES で設定します(デフォルトは 100 MB)。File Search には有償ライセンス(Starter、Team、Enterprise)または 30 日間トライアルが必要です。無料の Community エディションでは、トライアル終了後は File Search を利用できません。すべてのプラン。
FAQ
無料の ChatGPT プランでカスタム MCP サーバーは使えますか? OpenAI はカスタム MCP サーバーを有償プランのみで案内しており、Free プランは対象に含まれていません。
なぜ AnythingMCP Cloud では利用できないのですか? Cloud はインターネット経由でファイルにアクセスしますが、SMB(ポート 445)はインターネットに公開すべきものではありません。Cloud では NAS 側の SFTP または WebDAV を使うか、共有の近くでセルフホスト版 AnythingMCP を実行してください。
セルフホスト版の Enterprise プランが必要ですか? いいえ。Starter には最大 500 ファイルの File Search コネクタが 1 つ、Team には 2,000 ファイルのコネクタが 3 つ含まれます。Enterprise では上限がなくなり、OCR、ロールごとのフォルダ権限、ワークスペースポリシーが加わります。
AnythingMCP は共有の全体をコピーしますか? いいえ。AnythingMCP が保持するのは抽出したテキストであり、ファイルではありません。ファイルが再度読み取られるのは、変更されたとき、またはファイル自体を要求されたときだけです。
ベクトル検索は使われますか? いいえ。社内ドキュメントでは正確な名前、コード、数値を検索するため、ページ単位の結果を返すキーワード検索のほうが埋め込みよりも確実です。
関連ガイド
- AI で社内ファイルサーバーを検索する
- AI で仕入先の価格表から価格を探す
- AI で Nextcloud と WebDAV のファイルを検索する
- AI チャットからダウンロードリンクとしてファイルを共有する
- ネットワークフォルダや Windows ファイルサーバーを Claude に接続する
- ネットワークフォルダや Windows ファイルサーバーを Gemini に接続する
- ネットワークフォルダや Windows ファイルサーバーを Microsoft Copilot に接続する
- ネットワークフォルダや Windows ファイルサーバーを Cursor に接続する
- ネットワークフォルダや Windows ファイルサーバーを Muse に接続する
- ChatGPT のその他のファイルソース: SFTP サーバー、FTP / FTPS サーバー、WebDAV サーバー、S3 バケット、Nextcloud、ownCloud、Synology NAS、QNAP NAS、Fritz!Box ストレージ、Hetzner Storage Box
このガイドは役に立ちましたか?