MCP Text Editor Server について
MCP Text Editor Serverは、ClaudeなどのMCPクライアントに、指定ディレクトリ内のファイルを読む・編集するツールを提供します。行単位の編集に対応し、自動バックアップから変更を復元できます。
主な機能
- 01ファイルとディレクトリ一覧の表示
- 02指定テキストの置換
- 03行範囲の編集と比較表示
- 04テキスト挿入とファイル作成
- 05自動バックアップからの復元
活用シーン
- 01プロジェクトのファイルやフォルダーの確認
- 02指定したテキストやコードの変更
- 03ファイル作成や内容の挿入
- 04直近のファイル変更の取り消し
MCP 対応
このMCPサーバーは、ファイルの表示と変更のツールをMCPクライアントに公開します。パス検証により、操作を設定されたベースディレクトリ内に限定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Text Editor Server
Anthropic のテキストエディターツール機能を実装する Model Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude やその他の MCP クライアントが指定したディレクトリ内のファイルを読み取り、変更できます。
機能
このサーバーは、拡張された edit コマンドに加えて、Anthropic のテキストエディターツールと同じコマンドを実装しています。
-
view:ファイルの内容を確認したり、ディレクトリの内容を一覧表示したりします- ファイル全体、または行番号付きの特定の行範囲を表示します
- ファイルのメタデータを含むディレクトリ一覧を表示します
-
str_replace:テキストを正確に置換します- 特定の文字列を新しいテキストに置換します
- 置換回数を任意で指定できます
- シンプルで対象を絞った置換に最適です
-
edit:行番号を指定してコードブロックを編集します- 行全体の範囲を新しい内容に置き換えます
- 大規模なコード変更には str_replace より安全です
- 変更前と変更後を比較して表示します
-
insert:行番号を指定して新しい内容を追加します- 指定した行の後にテキストを挿入します
- 現在のファイル長を超える位置にも内容を追加できます
-
create:新しいファイルを作成するか、既存のファイルを上書きします- 指定した内容でファイルを作成します
- 既存のファイルを任意で上書きできます
-
undo_edit:バックアップからファイルを復元します- 最後に変更する前の状態に戻します
- 編集のたびにバックアップを自動作成します
インストール
前提条件
- Node.js 16 以降
- TypeScript
セットアップ
-
新しいプロジェクトを作成します:
mkdir text-editor-mcp cd text-editor-mcp npm init -y -
依存関係をインストールします:
npm install @modelcontextprotocol/sdk zod npm install -D @types/node typescript -
TypeScript の設定を作成します:
tsconfig.jsonファイルを作成します。{ "compilerOptions": { "target": "ES2022", "module": "Node16", "moduleResolution": "Node16", "outDir": "./build", "esModuleInterop": true, "strict": true }, "include": ["*.ts"] } -
ソースコードを保存します: テキストエディターサーバーのコードを、プロジェクト内に
text-editor-server.tsとして保存します。 -
コンパイルします:
npx tsc
使い方
サーバーの実行
node build/text-editor-server.js /path/to/working/directory
ディレクトリを指定しない場合、デフォルトで ./texteditor-data が使用されます。
Claude for Desktop との連携
-
Claude for Desktop の設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
設定にサーバーを追加します。
{ "mcpServers": { "text-editor": { "command": "node", "args": ["/absolute/path/to/build/text-editor-server.js", "/absolute/path/to/working/directory"] } } } -
Claude for Desktop を再起動します。
コマンドリファレンス
View コマンド
ファイルの内容またはディレクトリ一覧を表示します。
パラメーター:
path(必須):ベースディレクトリからの相対パスで指定するファイルまたはディレクトリのパスview_range(任意):表示する行範囲を指定する2つの整数の配列(例:[1, 10])- 行番号は1から始まります
- ファイルの末尾まで読み取る場合は、終了行に
-1を指定します
Claude での使用例: 「main.py の内容を見せて」 「server.js の10〜20行目を見せて」 「projects ディレクトリ内のファイルを一覧表示して」
Str_Replace コマンド
ファイル内の特定のテキストを置換します。シンプルで対象を絞ったテキスト置換に最適です。
パラメーター:
path(必須):ベースディレクトリからの相対パスで指定するファイルのパスold_str(必須):置換するテキストnew_str(必須):新しいテキストcount(任意):置換する出現回数(指定しない場合はすべて)
Claude での使用例: 「utils.js の 'function' を 'method' に置換して」 「error_handler.py の最初の 'error' を 'exception' に置換して」
Edit コマンド
ファイル内の行範囲を編集します。大きなコードブロックの編集には str_replace より安全です。
パラメーター:
path(必須):ベースディレクトリからの相対パスで指定するファイルのパスstart_line(必須):編集する最初の行番号(1から始まります)end_line(必須):編集する最後の行番号(1から始まります。ファイル末尾までの場合は -1)new_content(必須):指定した行範囲と置き換える新しい内容
Claude での使用例: 「server.js の10〜15行目を編集して、適切なエラー処理を実装して」 「25行目から始まる関数を、この改善版に置き換えて」
Insert コマンド
指定した行番号にテキストを挿入します。
パラメーター:
path(必須):ベースディレクトリからの相対ファイルパスline_number(必須):挿入する行番号(1 始まり)text(必須):挿入するテキスト
Claude での使用例: 「main.py の 5 行目の後に docstring を挿入してください」 「app.js の 1 行目に新しい import 文を追加してください」
Create コマンド
指定した内容で新しいファイルを作成します。
パラメーター:
path(必須):ベースディレクトリからの相対ファイルパスcontent(必須):ファイルに書き込む内容overwrite(任意):ファイルが存在する場合に上書きするかどうか(デフォルト:false)
Claude での使用例: 「これらの設定で config.json という名前の新しいファイルを作成してください」 「'Hello World' を出力する Python スクリプトを作成してください」
Undo_Edit コマンド
バックアップからファイルを復元します。
パラメーター:
path(必須):ベースディレクトリからの相対ファイルパス
Claude での使用例: 「README.md に対する最後の編集を取り消してください」 「server.js への変更を元に戻してください」
セキュリティ機能
サーバーには、以下の重要なセキュリティ対策が含まれています。
- パスの検証:操作が指定されたベースディレクトリ内に収まるようにします
- 自動バックアップ:ファイルを変更する前にバックアップを作成します
- エラー処理:操作に失敗した場合、明確なエラーメッセージを表示します
- ディレクトリの作成:存在しない場合、ベースディレクトリを自動的に作成します
会話の例
Claude で試せる会話の例を以下に示します。
- 「フィボナッチ数列を計算する新しい Python スクリプトを作成できますか?」
- 「構文エラーがある JavaScript ファイルがあります。確認して修正してもらえますか?」
- 「Python ファイルのすべての関数に適切な docstring を追加してください。」
- 「このコードを async/await を使うようにリファクタリングしたいです。手伝ってもらえますか?」
- 「次の設定を含む構成ファイルを作成してください……」
Claude の使用ルール
これらのルールは、テキストエディターのツールをいつ、どのように使うかを Claude が判断するのに役立ちます。
For ANY request involving viewing, editing, creating, or modifying files:
1. When you need to view file content:
+ Use the "view" command with the file path
+ For large files, use view_range parameter to see specific sections
2. When you need to edit existing files:
+ First use "view" to see the current content
+ For simple text replacements, use "str_replace" with old_str and new_str
+ For editing blocks of code or multiple lines, use "edit" with start_line, end_line, and new_content
+ For adding new content at a specific location, use "insert" with line_number and text
3. When you need to create new files:
+ Use "create" with path and content parameters
+ If replacing an existing file, set overwrite to true
4. If a user is unhappy with changes:
+ Use "undo_edit" to revert the most recent change to a file
Always confirm you've made the requested changes and summarize what you've done. When possible, show the relevant portions of the file before and after changes.
テキストエディターのツールをいつ、どのように使うかをモデルに案内するため、これらのルールを Claude のプロンプトに含めることができます。
Claude の使用ルール
これらのルールは、テキストエディターのツールをいつ、どのように使うかを Claude が判断するのに役立ちます。
For ANY request involving viewing, editing, creating, or modifying files:
1. When you need to view file content:
+ Use the "view" command with the file path
+ For large files, use view_range parameter to see specific sections
2. When you need to edit existing files:
+ First use "view" to see the current content
+ For simple replacements, use "str_replace" with old_str and new_str
+ For adding new content at a specific location, use "insert" with line_number and text
3. When you need to create new files:
+ Use "create" with path and content parameters
+ If replacing an existing file, set overwrite to true
4. If a user is unhappy with changes:
+ Use "undo_edit" to revert the most recent change to a file
Always confirm you've made the requested changes and summarize what you've done. When possible, show the relevant portions of the file before and after changes.
テキストエディターのツールをいつ、どのように使うかをモデルに案内するため、これらのルールを Claude のプロンプトに含めることができます。
トラブルシューティング
問題が発生した場合は、以下を確認してください。
- サーバーのログを確認します
- パスが正しいことを確認します
- 作業ディレクトリへの書き込みが可能であることを確認します
- Claude for Desktop の設定が正しいことを確認します
- 設定を変更した後、Claude for Desktop を再起動します
ライセンス
MIT
コントリビューション
コントリビューションを歓迎します!お気軽に Pull Request を送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。