[OSS紹介#50] filesystem:Node.jsで効率的なファイル操作を実現するツール

この記事について

この記事では、近年注目を集めているオープンソースソフトウェア(OSS)の一つ「filesystem」について紹介します。このシリーズは、開発者が注目すべきツールや技術を定期的に取り上げるもので、今回は第50回目の記事にあたります。最近、MCP Serverに関する情報をいくつか提供してきましたが、今回の「filesystem」は特にファイルシステム操作に特化したNode.jsサーバーで、開発者にとっての生産性向上に寄与することが期待されます。

「filesystem」は、効率的なファイル操作を可能にする一連の機能を備えています。具体的には、ファイルの読み書き、ディレクトリの作成や削除、ファイルの移動や検索といった基本的な操作が含まれており、これらはすべてサーバーの制約内で行われます。特に、GUIに頼らずにコマンドラインを通じて操作できる点が大きな利点です。これにより、スクリプトや自動化ツールと連携しやすくなり、ワークフローの効率化が図れるでしょう。この記事を通して、本ツールの機能や使い方を詳しく見ていきます。

リンク:https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem


本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。

1. ツールでできること

filesystemは、ファイルシステム操作のためのNode.jsサーバーです。このサーバーはModel Context Protocol (MCP)に基づいており、以下の機能を提供します。

1.1 主な機能

  • ファイルの読み書き
  • ディレクトリの作成、一覧表示、削除
  • ファイルやディレクトリの移動
  • ファイルの検索
  • ファイルメタデータの取得

なお、このサーバーは、argsで指定されたディレクトリ内の操作のみを許可します。

1.2 APIリソース

  • file://system: ファイルシステム操作インターフェース

1.3 主要ツール

  • read_file: 指定されたパスのファイル内容を読み取ります。
  • write_file: 新しいファイルを作成するか、既存のファイルを上書きします。
  • edit_file: 高度なパターンマッチングとフォーマットを使用して選択的な編集を行います。
  • create_directory: 新しいディレクトリを作成します。
  • search_files: 指定されたパターンに基づいてファイルやディレクトリを再帰的に検索します。
  • get_file_info: 指定したファイルやディレクトリの詳細なメタデータを取得します。

2. セットアップ手順

2.1 動作環境

Model Context Protocol ServersはNode.js環境で動作します。その他の動作環境については、公式ドキュメントを確認してください。

2.2 インストール方法

npmでインストール

npm install

2.3 Dockerによるセットアップ

Dockerを使用する場合、以下のコマンドを実行します。すべてのディレクトリはデフォルトで/projectsにマウントされる必要があります。

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "mcp/filesystem",
        "/projects"
      ]
    }
  }
}

2.4 VS Codeでの使用

VS Codeの設定JSONに以下を追加することで、簡単に使用できます。

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "${workspaceFolder}"
        ]
      }
    }
  }
}

3. 簡単な使い方

3.1 基本操作

Model Context Protocol Serversを使用するためには、APIを通じて機能を呼び出します。例えば、ファイルを読み込むには以下のようにします。

{
  "command": "read_file",
  "args": {
    "path": "/path/to/file.txt"
  }
}

3.2 複数ファイルの読み込み

複数のファイルを同時に読み込むには、read_multiple_filesを使用します。

{
  "command": "read_multiple_files",
  "args": {
    "paths": ["/path/to/file1.txt", "/path/to/file2.txt"]
  }
}

3.3 ファイルの編集

ファイルを編集する際は、edit_fileを利用し、変更内容を指定します。

{
  "command": "edit_file",
  "args": {
    "path": "/path/to/file.txt",
    "edits": [
      {
        "oldText": "旧テキスト",
        "newText": "新テキスト"
      }
    ],
    "dryRun": true
  }
}

3.4 ファイルの検索

ファイルを検索する際は、search_filesを利用します。

{
  "command": "search_files",
  "args": {
    "path": "/path/to/search",
    "pattern": "*.txt"
  }
}

結論

Model Context Protocol Serversは、ファイルシステム操作を効率的に行うための強力なツールです。Node.js環境で動作し、簡単にセットアップできるため、開発者にとって非常に有用な選択肢となります。多様なAPIを活用することで、ファイル管理をよりスムーズに行うことができるでしょう。