mcp-server-text-editor
by: bhouston
An open source implementation of the Claude built-in text editor tool
📌Overview
Purpose: The framework aims to provide an open-source implementation of the Claude built-in text editor tool as a Model Context Protocol (MCP) server, enabling users to manage text files via a standardized API.
Overview: This package replicates the functionality of Claude's text editor tool, allowing users to view, edit, and create text files seamlessly. Built in adherence to the Model Context Protocol, it simplifies AI tool integration, ensuring consistency and reliability in file operations.
Key Features:
-
Identical API to Claude's Text Editor: Implements the same interface as Claude’s built-in text editor, making it easy for users familiar with Claude to adapt.
-
MCP Server Implementation: Aligns with Model Context Protocol standards, enhancing compatibility with AI tools.
-
Comprehensive File Operations: Enables viewing of file contents, creating new files, replacing and inserting text at specific lines, and undoing previous edits, providing extensive functionality for text management.
Claude Text Editor MCP Server
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.
Features
- 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
Supported Claude Text Editor Versions
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)
Using the tool name 'text_editor' to avoid name conflicts with built-in Claude tools.
Installation
# Install from npm
npm install mcp-server-text-editor
# Or with pnpm
pnpm add mcp-server-text-editor
Usage
Starting the Server
# Using npx
npx -y mcp-server-text-editor
# Or if installed globally
mcp-server-text-editor
Configuring in Claude Desktop
{
"mcpServers": {
"textEditor": {
"command": "npx",
"args": ["-y", "mcp-server-text-editor"]
}
}
}
Tool Commands
View
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
Create a new file with the specified content.
{
"command": "create",
"path": "/path/to/file.js",
"file_text": "console.log('Hello, world!');"
}
String Replace
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
Insert text at a specific line.
{
"command": "insert",
"path": "/path/to/file.js",
"insert_line": 5,
"new_str": "// This line was inserted by Claude"
}
Undo Edit
Revert the last edit made to a file.
{
"command": "undo_edit",
"path": "/path/to/file.js"
}
Development
Prerequisites
- Node.js 18+
- pnpm
Setup
# 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
Scripts
pnpm build
: Build the TypeScript projectpnpm lint
: Run ESLint with auto-fixingpnpm format
: Format code with Prettierpnpm clean
: Remove build artifactspnpm clean:all
: Remove build artifacts and node_modulespnpm test
: Run testspnpm test:coverage
: Run tests with coverage report
Testing
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.
License
MIT
Contributing
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