返回市场
文本编辑器服务器

文本编辑器服务器

作者:bhouston30 星标更新:2025-03-17

项目介绍

Claude 文本编辑器 MCP 服务器

npm 版本 CI 状态 测试覆盖率

<p align="center"> <img src="https://mintlify.s3.us-west-1.amazonaws.com/mcp/logo/dark.svg" alt="模型上下文协议 Logo" width="200"/> </p>

这是一个开源实现,将 Claude 内置的文本编辑器工具作为 模型上下文协议 (MCP) 服务器。此包提供了与 Claude 内置的文本编辑器工具相同的功能,允许您通过标准化的 API 查看、编辑和创建文本文件。

功能

  • 与 Claude 文本编辑器相同的 API:实现了与 Claude 内置文本编辑器工具完全相同的接口
  • MCP 服务器实现:遵循用于 AI 工具集成的模型上下文协议标准
  • 文件操作
    • 查看文件内容,可选指定行范围
    • 创建新文件
    • 替换现有文件中的文本
    • 在特定行号插入文本
    • 撤销之前的编辑

支持的 Claude 文本编辑器版本

此包实现了与 内置的 Claude 文本编辑器工具等效的工具版本:

  • text_editor_20241022 (Claude 3.5 Sonnet)
  • text_editor_20250124 (Claude 3.7 Sonnet)

但使用工具名称 'text_editor' 以避免与内置的 Claude 工具发生命名冲突。

安装

# 从 npm 安装
npm install mcp-server-text-editor

# 或者使用 pnpm
pnpm add mcp-server-text-editor

使用方法

启动服务器

# 使用 npx
npx -y mcp-server-text-editor

# 或者如果全局安装了
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] // 可选:仅显示第 1 到第 10 行
}

创建

创建一个具有指定内容的新文件。

{
  "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": "// 这一行由 Claude 插入"
}

撤销编辑

撤销对文件所做的最后一次编辑。

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

开发

先决条件

  • Node.js 18+
  • pnpm

设置

# 克隆仓库
git clone https://github.com/bhouston/mcp-server-text-editor.git
cd mcp-server-text-editor

# 安装依赖
pnpm install

# 构建项目
pnpm build

脚本

  • pnpm build: 构建 TypeScript 项目
  • pnpm lint: 运行 ESLint 并自动修复
  • pnpm format: 使用 Prettier 格式化代码
  • pnpm clean: 删除构建产物
  • pnpm clean:all: 删除构建产物和 node_modules
  • pnpm test: 运行测试
  • pnpm test:coverage: 带覆盖率报告运行测试

测试

此项目使用 Vitest 进行测试。

要运行测试:

# 运行所有测试
pnpm test

# 带覆盖率报告运行测试
pnpm test:coverage

测试覆盖率报告将在 coverage 目录中生成。

许可证

MIT

贡献

欢迎贡献!请随意提交拉取请求。

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求