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'
复现步骤
- 使用以下调用:
{
"file_path": "C:\Users\86150\.claude\CLAUDE.md",
"new_string": "要替换的新内容",
"old_string": "要替换的旧内容",
"replace_all": false
}
- 参数replace_all确实传递的是布尔值false
- 工具报错说收到的是字符串
预期行为
正确接受布尔类型false,正常执行编辑操作
实际行为
拒绝执行,声称收到字符串参数
环境
- Claude Code CLI
- Windows 平台 (MSYS2)
- Edit工具 (MCP)
附加说明
此bug会导致无法修改配置文件,只能绕道使用Write工具重写整文件。
另外Edit工具还有一个相关问题:当old_string与文件实际内容不匹配时(即使只差一个空格或换行),也会抛出同样的"参数错误",而不是清晰地提示"内容不匹配",这给调试带来很大困扰。
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗