Token导航 LogoToken导航TokenDH.com
Hashline MCP logo
运维云端未说明官方级别未说明来源级核验

Hashline MCP

MCP Server

一个通过短内容哈希精确引用行号进行原子化文件编辑的MCP服务器,解决传统LLM编辑工具的脆弱性问题,适用于代码协作和AI辅助开发场景。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ck0i

提供方

ck0i

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

hashline mcp

用于精确、哈希引用文件编辑的MCP服务器。与其复制精确的内容或依赖脆弱的行号,不如通过短内容哈希对引用行进行建模,使编辑具有原子性、可验证性和抗状态漂移性。

问题

当前的LLM编辑工具以可预测的方式损坏:

  • 补丁格式 在大多数型号上发生灾难性故障(在微调环境之外的故障率超过50%)
  • 字符串替换 需要完美再现包括空格在内的内容——此时“找不到字符串”错误实际上是一个模因
  • 完整文件重写 工作但浪费代币,在大文件上崩溃

所有这些方法都迫使模型回忆他们已经看到的确切文件内容,这从根本上来说是错误的抽象。

想法

用简短的内容哈希标记每一行。模型参考线 line:hash 而不是再现内容:

12:a3|function hello() {
13:f1|  return "world";
14:0e|}

要编辑第13行,模型只需说“替换” 13:f1 随着 return "hello";“--不需要完全回忆原始字符串,不需要对空格敏感,也不需要对匹配的出现产生歧义。

如果文件自模型上次读取以来发生了变化,哈希值将不匹配,编辑将彻底失败。重新读取,重试。简单。

工具

hashline_read

读取文件并返回标记为的每一行 lineNumber:hash|content,其中哈希是行内容SHA-256的前2个十六进制字符。

{
  "path": "src/index.ts",
  "range": { "start": 1, "end": 50 }
}

hashline_edit

使用以下命令应用一个或多个操作 line:hash 参考文献所有哈希值都会预先验证——如果有任何不匹配的地方,整个编辑都会被拒绝(原子全有或全无)。从下到上应用操作以保留行号。

支持的操作:

操作描述
replace用新内容替换单行或范围
insert_after在引用的行后插入内容
insert_before在引用行之前插入内容
delete删除一行或一个范围
{
  "path": "src/index.ts",
  "operations": [
    { "type": "replace", "target": "12:a3", "content": "function greet() {" },
    { "type": "delete", "target": "20:b7", "end_target": "25:c1" },
    { "type": "insert_after", "target": "30:d4", "content": "// new section\nconst x = 1;" }
  ]
}

成功编辑后,响应包括一个上下文窗口(每次编辑周围±5行),其中包含更新的哈希值,因此模型可以继续编辑而无需完全重新读取。

设置

需要节点18+。

npm install
npm run build

claude代码集成

添加到MCP配置(~/.claude/settings.json 或项目级别):

{
  "mcpServers": {
    "hashline": {
      "command": "node",
      "args": ["path/to/hashline-mcp/dist/index.js"]
    }
  }
}

发展

npm run dev   # runs with tsx, no build step needed

设计决策

  • 2节哈希:足够短,不会使上下文膨胀,足够长,可以捕获过时的状态。冲突在理论上是可能的,但实际上无关紧要——目标是检测文件更改,而不是加密唯一性
  • 自下而上的应用程序:当多个操作针对不同的行时,从下往上应用意味着早期操作不会为后期操作更改行号
  • 重叠拒绝:拒绝单个编辑调用中的重叠范围——强制显式分离并防止意图模糊
  • 全有或全无验证:一个错误的哈希值会导致整个编辑失败。无部分突变,无损坏状态

技术栈

  • TypeScript+Node.js
  • @modelcontextprotocol/sdk 用于MCP服务器/传输
  • zod 用于模式验证
  • stdio传输(适用于任何MCP客户端)

灵感

hashline概念的灵感来自 可以 部分的文章 *线束问题*,它认为在LLM和代码更改之间进行调解的工具——而不是模型本身——是人工智能辅助开发的真正瓶颈。本文演示了行哈希引用极大地提高了跨模型的编辑成功率,同时减少了令牌的使用。

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaude云端部署代码编辑本地部署哈希引用原子操作AI辅助开发版本安全

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP