mcp-server-text-editor
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-text-editorshow me the first 20 lines of config.json"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: MCP Text Editor Server
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)
But 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-editorUsage
Starting the Server
# Using npx
npx -y mcp-server-text-editor
# Or if installed globally
mcp-server-text-editorConfiguring 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 buildScripts
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:coverageThe 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
Available Tools
1 tooltext_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
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`. | |
| description | Yes | The reason you are using the text editor (max 80 chars) | |
| file_text | No | Required parameter of `create` command, with the content of the file to be created. | |
| insert_line | No | Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`. | |
| new_str | No | Optional 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_str | No | Required parameter of `str_replace` command containing the string in `path` to replace. | |
| path | Yes | Absolute path to file or directory, e.g. `/repo/file.py` or `/repo`. | |
| view_range | No | Optional 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
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.
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.
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.
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.
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.
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.
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports
Read, edit, publish, and preview your pepita websites from Claude.
Related MCP Servers
- FlicenseBqualityDmaintenanceMulti-mode MCP server supporting both Claude Desktop (STDIO) and OpenAI (HTTP/SSE) integrations with file operations including read, write, delete, and search capabilities.3
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides line-oriented text file editing capabilities through a standardized API. Optimized for LLM tools with efficient partial file access to minimize token usage.MIT
- FlicenseNot gradedqualityDmaintenanceTurns Claude Desktop into a Cursor-like assistant for code browsing, editing, searching, linting, formatting, and version control.
- AlicenseNot gradedqualityCmaintenanceEnables sandboxed file operations via MCP tools, resources, and prompts, with a Claude CLI client and Groq-powered web UI for file CRUD, search, code review, and documentation generation.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bhouston/mcp-server-text-editor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server