Edit工具参数bug: replace_all传false报错

Resolved 💬 3 comments Opened Apr 5, 2026 by bigmanBass666 Closed Apr 5, 2026

问题描述

使用Edit工具修改CLAUDE.md文件时,即使正确传递布尔值false给replace_all参数,也会报错:

Error: Input validation error: The parameter 'replace_all' type is expected as 'boolean' but provided as 'string'

复现步骤

  1. 使用以下调用:
{
  "file_path": "C:\Users\86150\.claude\CLAUDE.md",
  "new_string": "要替换的新内容",
  "old_string": "要替换的旧内容",
  "replace_all": false
}
  1. 参数replace_all确实传递的是布尔值false
  1. 工具报错说收到的是字符串

预期行为

正确接受布尔类型false,正常执行编辑操作

实际行为

拒绝执行,声称收到字符串参数

环境

  • Claude Code CLI
  • Windows 平台 (MSYS2)
  • Edit工具 (MCP)

附加说明

此bug会导致无法修改配置文件,只能绕道使用Write工具重写整文件。

另外Edit工具还有一个相关问题:当old_string与文件实际内容不匹配时(即使只差一个空格或换行),也会抛出同样的"参数错误",而不是清晰地提示"内容不匹配",这给调试带来很大困扰。

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗