An open-source implementation of the Claude built-in text editor tool as a Model Context Protocol (MCP) server. This package provides the same functionality as Claude's built-in text editor tool, allowing you to view, edit, and create text files through a standardized API.
- Identical API to Claude's Text Editor: Implements the exact same interface as Claude's built-in text editor tool
- MCP Server Implementation: Follows the Model Context Protocol standard for AI tool integration
-
File Operations:
- View file contents with optional line range specification
- Create new files
- Replace text in existing files
- Insert text at specific line numbers
- Undo previous edits
This package implements an equivalent tool to the built-in Claude text editor tool versions:
-
text_editor_20241022
(Claude 3.5 Sonnet) -
text_editor_20250124
(Claude 3.7 Sonnet)
But using the tool name 'text_editor' to avoid name conflicts with built-in Claude tools.
# 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
{
"mcpServers": {
"textEditor": {
"command": "npx",
"args": ["-y", "mcp-server-text-editor"]
}
}
}
View the contents of a file or directory.
{
"command": "view",
"path": "/path/to/file.js",
"view_range": [1, 10] // Optional: Show lines 1-10 only
}
Create a new file with the specified content.
{
"command": "create",
"path": "/path/to/file.js",
"file_text": "console.log('Hello, world!');"
}
Replace text in a file.
{
"command": "str_replace",
"path": "/path/to/file.js",
"old_str": "console.log('Hello, world!');",
"new_str": "console.log('Hello, Claude!');"
}
Insert text at a specific line.
{
"command": "insert",
"path": "/path/to/file.js",
"insert_line": 5,
"new_str": "// This line was inserted by Claude"
}
Revert the last edit made to a file.
{
"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
: Build the TypeScript project -
pnpm lint
: Run ESLint with auto-fixing -
pnpm format
: Format code with Prettier -
pnpm clean
: Remove build artifacts -
pnpm clean:all
: Remove build artifacts and node_modules -
pnpm test
: Run tests -
pnpm test:coverage
: Run tests with coverage report
This project uses Vitest for testing.
To run the tests:
# Run all tests
pnpm test
# Run tests with coverage report
pnpm test:coverage
The test coverage report will be generated in the coverage
directory.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request