mcpField
F
Filesystem MCP

Filesystem MCP

ローカル
github.com開発ツール26今日更新

Filesystem MCP について

Filesystem MCP は、指定したフォルダー内のファイルを AI クライアントが閲覧、検索、変更できるローカル MCP サーバーです。ファイル操作に加え、機密ファイルの遮断、読み取り専用設定、一部の危険な操作への確認を備えます。

主な機能

  1. 01許可されたフォルダーの閲覧と読み取り
  2. 02ファイル名と内容の検索
  3. 03ファイルの編集、パッチ適用、移動、削除
  4. 04差分による変更のプレビュー
  5. 05機密ファイルの遮断とパス制限
  6. 06stdio と Streamable HTTP に対応

活用シーン

  1. 01コードリポジトリ全体から TODO を検索
  2. 02編集を適用する前に差分を確認
  3. 03設定ファイルやログファイルを比較
  4. 04AI クライアントの利用先を指定フォルダーに制限

MCP 対応

ディレクトリ一覧、検索、読み取り、差分比較、ファイル変更などのファイルシステムツールを MCP クライアントに公開します。stdio と Streamable HTTP のトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"filesystem-context": {
"command": "npx",
"args": [
"-y",
"@j0hanz/filesystem-mcp"
],
"env": {
"FS_ALLOWED_DIRS": "<FS_ALLOWED_DIRS>"
}
}
}
}
起動コマンドnpx -y @j0hanz/filesystem-mcp
設定が必要な環境変数
FS_ALLOWED_DIRSAllowed directories; ':'-separated on Unix, ';'-separated on Windows. Alternative to positional arguments.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@j0hanz/filesystem-mcp2.11.0
ocighcr.io/j0hanz/filesystem-mcp:2.11.0

ツール

13

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
filesarrayはい作成するファイルのリスト(最大 100 件)。各エントリには path と content が必要です

詳細

Filesystem MCP ロゴ

Filesystem MCP

AI アシスタントがファイルを安全に扱えるようにします。

選択したフォルダー内のファイルを読み取り、検索、編集、パッチ適用できます。
秘密のファイルは非表示のまま、リスクのある変更は確認を待ちます。

npm version CI License: MIT GitHub stars HOL Trust

Install in VS Code Install in VS Code Insiders Install in Visual Studio Install in Cursor Install in Claude Desktop

Glama における filesystem-mcp MCP サーバーの品質とメンテナンスのスコア

これは何ですか?

Model Context Protocol(MCP)は、Claude、VS Code の GitHub Copilot、Cursor などの AI アプリがツールに接続するための仕組みです。Filesystem MCP は MCP サーバーです。コンピューター上で実行され、AI にファイル操作用の 14 個のツールを提供する小さなプログラムです。使用できるフォルダーは自分で選択でき、それ以外の場所にはアクセスできません。

接続すると、次のようなことを依頼できます。

  • 「このリポジトリ内の TODO をすべて見つけ、ファイルごとにまとめてください。」
  • 「すべての .ts ファイルで getUser を fetchUser に名前変更してください。まず差分を見せてください。」
  • 「config.dev.json と config.prod.json の間で何が変わりましたか?」
  • 「server.log の末尾 50 行を読み取り、エラーを説明してください。」
  • 「古いスクリーンショットを archive/2025/ に移動してください。」

Filesystem MCP を選ぶ理由

  • デフォルトで安全です。AI が使えるのは許可したフォルダーだけで、.env ファイル、秘密鍵、クラウドの認証情報はブロックされます。AI が空でないフォルダーを削除する場合、許可していないフォルダーを開く場合、または create や move でファイルを上書きする場合、サーバーは事前に確認を求めます。確認を省略できるのは create とコピーだけで、その場合は overwrite: true を渡します。edit、patch、replace_text による編集は確認なしで適用されますが、dryRun を使えば、AI が先に差分を表示できます。AI に一切変更させたくない場合は、--read-only を指定すると、書き込みを行うすべてのツールが無効になります。
  • 検索と編集はコード向けに作られています。AI は、ハングしない正規表現エンジン(RE2)を使って、grep のようにファイル内を検索できます。また、デフォルトではサーバーが .gitignore の対象ファイルや node_modules などのフォルダーをスキップします。編集は完全一致による置換で、テキストが一致しない場合はエラーを返します。また、事前に差分をプレビューできます。
  • AI のコンテキストを節約できます。AI は1回の呼び出しで複数のファイルを読み込むことも、必要な行だけを読み込むこともできます。また、読み込む前にファイルのサイズとトークン数の推定値を確認できます。
  • macOS、Linux、Windows で、stdio または HTTP を介して、あらゆる MCP クライアントと連携します。npx、Docker、ワンクリックで使える Claude Desktop 拡張機能を使ってインストールできるほか、これを基に独自のクライアントを構築することもできます。
  • プライバシーが守られます。マシン上で動作し、テレメトリーはなく、ネットワーク通信も行いません。
リファレンスサーバーとの比較

このサーバーと公式の @modelcontextprotocol/server-filesystem の違いを、2026-10-11 に README と照合しました。

機能Filesystem MCPリファレンスサーバー
ファイル内検索search_text:リテラルテキストまたは RE2 正規表現なし。search_files は名前のみを照合
機密ファイル.env、鍵、認証情報をデフォルトでブロックブロックされない
ファイルの上書きcreate は事前に確認(overwrite: true の場合を除く)write_file は確認なしで上書き
ファイルの削除delete:空でないフォルダーの削除前に確認なし
.gitignore一覧表示ツールと検索ツールで尊重非対応
読み取り専用モード--read-only は書き込みを行うすべてのツールを無効化Docker の ro マウントのみ
統一差分の適用patchなし
2つのファイルの比較diffなし
多数のファイルにわたる置換フォルダーまたは glob に対する replace_textなし
ファイルの監視ファイルを購読して変更通知を受信なし
トランスポートstdio、または --port を使った Streamable HTTPstdio

クイックスタート

メモ

Node.js 24 以降が必要です。node --version で確認してください。

  1. MCP サーバーを AI アプリに追加します。以下からお使いのものを選んでください。
  2. /path/to/project を、AI が使用できるフォルダーに置き換えます。複数のフォルダーを指定できます。
  3. アプリを再起動し、「アクセスできるフォルダーはどれですか?」と尋ねます。

ヒント

VS Code は現在、開いているフォルダーをサーバーと共有するため、ワンクリックの VS Code インストールではパスの指定は不要です。他のアプリや HTTP 経由で使用する場合は、フォルダーを args に指定してください。AI がフォルダーはないと答える場合は、これで解決できます。

VS Code

上の Install in VS Code をクリックするか、以下を .vscode/mcp.json に追加してください。

{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@j0hanz/filesystem-mcp@latest", "/path/to/project"]
    }
  }
}

または、ターミナルから実行します。

code --add-mcp '{"name":"filesystem","command":"npx","args":["-y","@j0hanz/filesystem-mcp@latest","/path/to/project"]}'
Cursor

上の Install in Cursor をクリックしてから、フォルダーを args に追加してください。または、プロジェクト内の .cursor/mcp.json、もしくはすべてのプロジェクトで使用する場合は ~/.cursor/mcp.json に以下を追加してください。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@j0hanz/filesystem-mcp@latest", "/path/to/project"]
    }
  }
}
Claude Desktop

ワンクリックでインストールするには、 filesystem-mcp.mcpb をダウンロードし、Claude Desktop で開いて、許可するフォルダーを選択してください。Claude Desktop に組み込まれた Node.js が実行します。拡張機能の設定では、読み取り専用モードを有効にしたり、アクセスをブロックするファイルを追加したりすることもできます。

手動で設定するには、claude_desktop_config.json に以下を追加してください (Settings → Developer → Edit Config)。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@j0hanz/filesystem-mcp@latest", "/path/to/project"]
    }
  }
}
Claude Code
claude mcp add filesystem -- npx -y @j0hanz/filesystem-mcp@latest /path/to/project

または、現在のプロジェクトをサーバーに指定するプラグインをインストールしてください。

/plugin marketplace add j0hanz/j0hanz-marketplace
/plugin install filesystem-mcp@j0hanz-marketplace
Visual Studio

ソリューションフォルダー内の .vs\mcp.json、またはすべてのソリューションで使用する場合は %USERPROFILE%\.mcp.json に以下を追加してください。

{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@j0hanz/filesystem-mcp@latest", "C:/path/to/project"]
    }
  }
}
GitHub Copilot CLI and Antigravity CLI (plugin)

filesystem-mcp プラグイン を使うと、現在のプロジェクト向けにサーバーを設定できます。

クライアントインストール
Copilot CLIcopilot plugin marketplace add j0hanz/j0hanz-marketplace、続けて copilot plugin install filesystem-mcp@j0hanz-marketplace
Antigravity CLIgit clone https://github.com/j0hanz/j0hanz-marketplace、続けて agy plugin install ./j0hanz-marketplace/plugins/filesystem-mcp
Docker

コンテナーから見えるのは、マウントしたフォルダーのみです。この設定では、:ro マウントと --read-only フラグによって、書き込みを二重にブロックします。

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/path/to/project:/workspace:ro",
        "ghcr.io/j0hanz/filesystem-mcp:latest",
        "--read-only",
        "/workspace"
      ]
    }
  }
}

AI が変更できるようにするには、:ro と --read-only を削除してください。VS Code と Visual Studio では、"mcpServers" の代わりに "servers" を使用します。詳しくは Docker での実行を参照してください。

Other MCP clients

Windsurf、Cline、およびほとんどの他のクライアントでは、上記の Claude Desktop と同じ mcpServers JSON を使用します。どのクライアントでも、サーバーの設定は次のとおりです。

  • command: npx
  • args: -y、@j0hanz/filesystem-mcp@latest、続けて1つ以上のフォルダー

グローバルにインストールして、filesystem-mcp /path/to/project を実行することもできます。

npm install -g @j0hanz/filesystem-mcp
## ツール
ツール機能
list_rootsサーバーが使用できるフォルダーを表示します。
listls や tree のように、フォルダーをツリー形式で一覧表示します。
find_files**/*.test.ts のような名前または glob でファイルを検索します。
search_textgrep のように、ファイル内のテキストまたは正規表現を検索します。必要に応じて前後の行も表示できます。
statファイルを読み込まずに、サイズ、日付、種類、権限、トークン数の推定値を取得します。
readテキストファイル全体、または指定した行、先頭、末尾を読み込みます。画像と音声はメディアとして返され、それ以外は binary として返されます。
diff2 つのファイルを比較し、統合 diff を返します。
create ✎新しいファイルの書き込み、追記、空のフォルダーの作成を行います。overwrite: true を指定しない限り、ファイルを置き換える前に確認します。
edit ✎ファイル内の完全一致するテキストを置き換えます。ファイルに対する編集はすべて適用されるか、ひとつも適用されないかのどちらかです。dryRun を指定すると、先に差分を表示します。
patch ✎ファイルに統合 diff を適用します。すべてのハンクが適用されるか、ひとつも適用されないかのどちらかです。
replace_text ✎複数のファイルからテキストまたは正規表現を検索して置き換えます。dryRun を指定すると、変更内容を表示します。
move ✎ファイルやフォルダーを移動、名前変更、コピーします。コピー時に overwrite: true を指定しない限り、上書き前に確認します。
delete ✎ファイルやフォルダーを削除します。空ではないフォルダーを削除する前に確認します。
undo ✎サーバーの実行中に、取り消し ID または直近の N 回の呼び出しを指定して、以前の変更を元に戻します。以降に変更されたファイルはスキップします。

✎ はファイルを変更します。--read-only を指定すると、これらのツールは削除されます。

検索および一覧表示ツールは、AI が明示的に求めない限り、隠しファイル、.gitignore の対象ファイル、および node_modules、dist、.git などのフォルダーをスキップします。

設定

ほとんどの場合、フォルダー引数だけで十分です。以下のオプションは一般的な用途をカバーします。

オプション機能
--read-onlyファイルを変更するすべてのツールを削除します。
--deny '<pattern>'例として --deny 'private/**' や --deny '*.sqlite' のように、対象外にするファイルを追加します。
--allow '<pattern>'例として --allow '.env.example' のように、組み込みのシークレットパターンを 1 つ許可します。
--allow-cwdサーバーの起動元のフォルダーも許可します。
--max-file-size <n>read が読み込む最大ファイルサイズ(バイト単位)です。デフォルトは 10 MiB です。
--port <n>stdio の代わりに、http://127.0.0.1:<n>/mcp で HTTP 経由のサービスを提供します。
--print-configサーバーが使用する設定を出力して終了します。

フラグは、たとえば ["-y", "@j0hanz/filesystem-mcp@latest", "--read-only", "/path/to/project"] のように、パッケージ名の後の args に指定します。

設定の完全なリファレンスでは、すべてのフラグと環境変数、シークレットファイルの完全な一覧、制限事項、API キーを使った HTTP の設定、Docker、トラブルシューティングについて説明しています。

セキュリティ

保護機能仕組み
フォルダーのサンドボックスサーバーはシンボリックリンクを含むすべてのパスを解決し、解決後のパスが許可されたフォルダー内にとどまることを確認します。
シークレットファイル.env、*.pem、*.key、SSH キー、.npmrc、クラウド認証情報などのその他のファイルはブロックされ、一覧にも表示されません。
操作の決定権はユーザーにありますAI が空でないフォルダーを削除する、新しいフォルダーへのアクセス権を取得する、または create や move でファイルを上書きする前に、サーバーが確認を求めます。AI が overwrite: true を渡した場合に限り、create とコピーでは確認を省略します。インプレース編集(edit、patch、replace_text)では確認を求めませんが、dryRun でプレビューできます。確認を求めることができないクライアントには、代わりにエラーが返されます。
アクセス禁止フォルダーAI もクライアントも、ホームフォルダー自体、システムフォルダー、~/.ssh、~/.aws などのフォルダーを追加することはできません。
安全な書き込み新しい内容は一時ファイルに書き込まれ、その後、元の場所に名前変更されます。そのため、クラッシュしても書き込み途中のファイルが残りません。書き込み後もファイルのアクセス権限は維持されます。
正規表現によるハングの防止RE2 は線形時間で実行されるため、検索パターンによってサーバーがフリーズすることはありません。
HTTPサーバーはデフォルトで localhost のみをリッスンします。他のアドレスを使用するには API キーが必要です。
コンテナーDocker イメージは root 以外のユーザーとして実行されます。

脆弱性を発見した場合は、非公開で報告してください。 SECURITY.md に報告方法が記載されています。

独自のクライアントを構築する

エージェント、エディタープラグイン、ウェブアプリ、CI ジョブ、スクリプトなど、独自のコードから Filesystem MCP を呼び出すこともできます。AI アプリと同じルールが適用されるため、許可されたフォルダーの外部にアクセスしたり、秘密ファイルを読み取ったりすることはできません。

import { Client } from '@modelcontextprotocol/client';
import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';

const dir = '/path/to/project';
const client = new Client(
  { name: 'my-app', version: '1.0.0' },
  { capabilities: { elicitation: { form: {} } }, versionNegotiation: { mode: 'auto' } },
);
client.setRequestHandler('elicitation/create', async () => ({ action: 'decline' }));
await client.connect(
  new StdioClientTransport({
    command: 'npx',
    args: ['-y', '@j0hanz/filesystem-mcp', dir],
    cwd: dir,
  }),
);

const result = await client.callTool({ name: 'search_text', arguments: { searchPattern: 'TODO' } });
const { matches } = (result.structuredContent ?? result._meta) as { matches: unknown[] };
console.log(matches);
await client.close(); // stops the server process; without it the script never exits

基本事項:

  • データの場所。 テキストブロックはモデル向けに記述されています。同じデータは、独自のテキストを生成するツール(list、search_text、edit、...)では _meta に JSON として、stat、create、list_roots では structuredContent に格納されています。例外は read です。ファイルのテキストはテキストブロックにのみ含まれ、_meta にはファイルに関するメタデータが格納されています。
  • パス。 相対パスは、サーバーの作業ディレクトリがルート内にある場合はその作業ディレクトリを基準に解決され、それ以外の場合はルートを基準に解決されます。複数のルートがある場合、パスはそのうちちょうど1つの配下に存在する必要があります。絶対パスが曖昧になることはありません。検索結果はルートを基準とする相対パスで表示されるため、そのまま渡し直すことができます。ディスク上の名前と異なるのが Unicode 形式(NFC または NFD)または空白文字(U+00A0、U+202F)だけの名前でも、そのエントリーが見つかります。
  • 確認。 上書き、再帰的な削除、ルート外のパスについては、ユーザーへの確認が必要です。elicitation ケイパビリティを宣言してハンドラーで応答するか、2026-07-28 プロトコルではそれらをデータ(input_required)として受け取り、後で応答してください。
  • プロトコルのバージョン。 サーバーは、stdio と Streamable HTTP 経由で、2025 プロトコルおよび 2026-07-28 に対応しています。HTTP 経由では、2025 年版のクライアントは確認や変更通知を受け取りません。
  • リソース。 filesystem-mcp://file/{+path} として任意のファイルを読み取り、購読できます。internal://instructions と get-help プロンプトには、モデル向けのサーバーガイドが含まれています。

クライアントガイドに詳細があり、TypeScript および Python SDK でテストされています。また、examples/ には実行可能なクライアントが6つあります。

例内容
fsqシェルから stdio または HTTP 経由で任意のツールを使用。スクリプト向けの --json に対応
browserサーバーからの質問がページに表示されるローカルのウェブ UI
tailファイル購読を使った tail -f。ローカルまたはリモートサーバー上で動作
gatekeeper各変更の差分を表示し、y/N の入力を待つコーディングエージェント
hooksワークスペースが変更されるたびに、モデルを介してタスクを実行
pythonPython SDK を使ったワークスペースの TODO レポート

プライバシーポリシー

Filesystem MCP はすべてお使いのマシン上で動作します。このポリシーは、npm パッケージ、Docker イメージ、.mcpb デスクトップ拡張機能を対象としています。

  • データ収集: ありません。サーバーはテレメトリー、分析、クラッシュレポートを行わず、外部へのネットワークリクエストも送信しません。
  • 利用と保存: サーバーがファイルを読み書きするのは、許可されたフォルダー内で、MCP クライアントがツールを呼び出した場合に限られます。ツールの結果はそのクライアントに送られ、それ以外には送信されません。短期間の結果キャッシュと取り消し履歴(保存されたファイルの内容)はメモリ内に保持され、サーバーの終了時に消去されます。
  • 第三者との共有: サーバーによる共有はありません。MCP クライアントは、そのクライアント独自のプライバシーポリシーに基づき、ツールの結果をモデルプロバイダーに送信する場合があります。
  • 保持期間: サーバーはプロセスの終了後、何も保持しません。診断ログはお使いのマシン上の stderr に出力されます。MCP クライアントが独自のログファイルに保存する場合があります。
  • お問い合わせ: https://github.com/j0hanz/filesystem-mcp/issues で Issue を作成するか、GitHub Security Advisories を通じて非公開でセキュリティ上の問題を報告してください。

貢献

バグ報告、アイデア、プルリクエストを歓迎します。まずは CONTRIBUTING.mdをご覧ください。セットアップ、ソースからのサーバーの実行方法、プルリクエストに必要なチェックについて説明しています。

Filesystem MCPが役に立った場合は、GitHubでスターを付けていただくと、ほかの人にも見つけてもらいやすくなります。

貢献者

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。