Skip to main content
Glama
bhouston

mcp-server-text-editor

by bhouston

クロードテキストエディターMCPサーバー

npmバージョン CIステータス テスト範囲

Claude 組み込みテキストエディタツールの、Model Context Protocol (MCP) サーバーとしてのオープンソース実装です。このパッケージは、Claude 組み込みテキストエディタツールと同じ機能を提供し、標準化された API を介してテキストファイルの表示、編集、作成を可能にします。

特徴

  • Claudeのテキストエディタと同一のAPI : Claudeの組み込みテキストエディタツールと全く同じインターフェースを実装します

  • MCPサーバーの実装: AIツール統合のためのモデルコンテキストプロトコル標準に準拠

  • ファイル操作:

    • オプションの行範囲指定でファイルの内容を表示する

    • 新しいファイルを作成する

    • 既存のファイル内のテキストを置き換える

    • 特定の行番号にテキストを挿入する

    • 以前の編集を元に戻す

Related MCP server: MCP Text Editor Server

サポートされているClaudeテキストエディターのバージョン

このパッケージは、組み込みの Claude テキスト エディター ツールバージョンと同等のツールを実装します。

  • text_editor_20241022 (クロード 3.5 ソネット)

  • text_editor_20250124 (クロード 3.7 ソネット)

ただし、組み込みの Claude ツールとの名前の競合を避けるために、ツール名として「text_editor」を使用します。

インストール

# Install from npm
npm install mcp-server-text-editor

# Or with pnpm
pnpm add mcp-server-text-editor

使用法

サーバーの起動

# Using npx
npx -y mcp-server-text-editor

# Or if installed globally
mcp-server-text-editor

Claude Desktopでの設定

{
  "mcpServers": {
    "textEditor": {
      "command": "npx",
      "args": ["-y", "mcp-server-text-editor"]
    }
  }
}

ツールコマンド

ビュー

ファイルまたはディレクトリの内容を表示します。

{
  "command": "view",
  "path": "/path/to/file.js",
  "view_range": [1, 10] // Optional: Show lines 1-10 only
}

作成する

指定された内容で新しいファイルを作成します。

{
  "command": "create",
  "path": "/path/to/file.js",
  "file_text": "console.log('Hello, world!');"
}

文字列の置換

ファイル内のテキストを置き換えます。

{
  "command": "str_replace",
  "path": "/path/to/file.js",
  "old_str": "console.log('Hello, world!');",
  "new_str": "console.log('Hello, Claude!');"
}

入れる

特定の行にテキストを挿入します。

{
  "command": "insert",
  "path": "/path/to/file.js",
  "insert_line": 5,
  "new_str": "// This line was inserted by Claude"
}

編集を元に戻す

ファイルに対して行われた最後の編集を元に戻します。

{
  "command": "undo_edit",
  "path": "/path/to/file.js"
}

発達

前提条件

  • Node.js 18歳以上

  • pnpm

設定

# Clone the repository
git clone https://github.com/bhouston/mcp-server-text-editor.git
cd mcp-server-text-editor

# Install dependencies
pnpm install

# Build the project
pnpm build

スクリプト

  • pnpm build : TypeScriptプロジェクトをビルドする

  • pnpm lint : 自動修正機能付きで ESLint を実行する

  • pnpm format : Prettier でコードをフォーマットする

  • pnpm clean : ビルド成果物を削除する

  • pnpm clean:all : ビルドアーティファクトとnode_modulesを削除する

  • pnpm test : テストを実行する

  • pnpm test:coverage : カバレッジレポート付きでテストを実行する

テスト

このプロジェクトではテストに Vitest を使用します。

テストを実行するには:

# Run all tests
pnpm test

# Run tests with coverage report
pnpm test:coverage

テスト カバレッジ レポートは、 coverageディレクトリに生成されます。

ライセンス

マサチューセッツ工科大学

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークする

  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature )

  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )

  4. ブランチにプッシュする ( git push origin feature/amazing-feature )

  5. プルリクエストを開く

Available Tools

1 tool
text_editorB

View, create, and edit files with persistent state across command calls. This tool is identical with Claude's built in text editor tool called text_editor_20241022

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`.
descriptionYesThe reason you are using the text editor (max 80 chars)
file_textNoRequired parameter of `create` command, with the content of the file to be created.
insert_lineNoRequired parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`.
new_strNoOptional parameter of `str_replace` command containing the new string (if not given, no string will be added). Required parameter of `insert` command containing the string to insert.
old_strNoRequired parameter of `str_replace` command containing the string in `path` to replace.
pathYesAbsolute path to file or directory, e.g. `/repo/file.py` or `/repo`.
view_rangeNoOptional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It mentions 'persistent state across command calls,' which is a useful behavioral trait not evident from the schema. However, it lacks details on permissions, error handling, file system interactions, or what 'persistent state' entails operationally. The description adds some value but leaves significant behavioral aspects unexplained.

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

Conciseness3/5

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

The description is two sentences: the first is front-loaded with core functionality, but the second sentence about being identical to another tool adds no value for tool selection and wastes space. It could be more concise by omitting the redundant second sentence.

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?

Given the complexity (8 parameters, no annotations, no output schema), the description is somewhat incomplete. It covers basic purpose and a behavioral trait (persistent state), but lacks details on usage context, error cases, or output expectations. For a multi-command tool with no output schema, more guidance would be helpful.

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 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. According to the rules, with high schema coverage, the baseline is 3 even with no param info in the description.

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

Purpose4/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: 'View, create, and edit files with persistent state across command calls.' It specifies the actions (view, create, edit) and resource (files), and mentions the persistent state feature. However, it doesn't distinguish from siblings since there are none, and the second sentence about being identical to another tool adds no functional clarity.

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 no guidance on when to use this tool versus alternatives. It mentions it's 'identical with Claude's built in text editor tool,' but this doesn't help an agent decide between this and other file manipulation tools. There are no explicit when/when-not scenarios or prerequisites described.

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 updatev1.0.0
    • First observedtext_editor

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The tool has a single, clear purpose for file editing with persistent state, making disambiguation trivial.

Naming Consistency5/5

A single tool named 'text_editor' follows a clear and consistent naming pattern. There are no other tools to compare against, so no inconsistency can exist.

Tool Count2/5

A single tool for a text editor server feels thin and under-scoped. While it covers basic file operations, typical text editors would benefit from additional tools for tasks like search/replace, formatting, or managing multiple files, making this count borderline inadequate.

Completeness2/5

The tool surface is severely incomplete for a text editor domain. It lacks essential operations such as search within files, undo/redo functionality, file management (e.g., rename, delete), or formatting options, which are core to text editing workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers