# Hashfile MCP

Сервер для правки файлов по содержимому строк, а не по номерам, и для контроля доступа агента к секретам и lock-файлам.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 5
- Автор: mrorigo
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/mrorigo/hashfile-mcp
- Обновлён: 2026-03-21
- HTML: https://affpapa.org/nevibecode/mcp/hashfile-mcp

## Что делает

Hashfile MCP решает старую боль: агент говорит «замени строку 42», а файл уже сдвинулся на три строки вниз. Здесь каждая строка при чтении получает короткий хеш, и операция правки ссылается на содержимое, а не на позицию. Сервер сам находит строку, даже если она переехала, а хеш файла не даёт применить правку к устаревшей версии. Операции `replace`, `insert_after`, `insert_before` и `delete` можно собрать в одну атомарную пачку.

Внутри девять инструментов: три для правки по хешам (`read_text_file`, `edit_text_file`, `write_text_file`) и шесть обычных файловых (`list_directory`, `directory_tree`, `create_directory`, `move_file`, `write_file`, `read_multiple_files`). Доступ ограничивается через frontmatter в `AGENTS.md`: `forbidden` закрывает путь целиком, `read_only` разрешает чтение, но не запись, `ignore` прячет каталог от агента. Файл можно положить в любом месте дерева, побеждает ближайший. Паттерны `.gitignore` сервер тоже учитывает, а правила из `AGENTS.md` имеют приоритет.

Сборка из исходников: `cargo build --release`, бинарник окажется в `target/release/hashfile-mcp`. Без установленного Rust собрать не получится, а путь к бинарнику прописывается в конфиге MCP-клиента вручную. Зависимостей у сервера нет.

## Требования
- Нужно: готовый бинарник из релизов репозитория

## Установка

### Claude Code (родная платформа)

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

## Когда брать
- править файл, который сдвинулся после чтения, и не попасть в чужую строку
- закрыть агенту доступ к `.env` и ключам
- запретить запись в lock-файлы и схемы, оставив чтение
- спрятать `node_modules` и сборку из контекста агента
- применить несколько правок одним действием

## Примеры запросов агенту
- Прочитай `src/main.rs` и замени строку с функцией `main` на новую версию
- Добавь в `AGENTS.md` запрет на `secrets/**` и `**/*.env`
- Покажи дерево проекта без `node_modules` и `target`

## Похожие
- [no-heredoc](https://affpapa.org/nevibecode/rules/no-heredoc.md) — правило · ★ 40451
- [access](https://affpapa.org/nevibecode/skills/anthropics-access.md) — скилл · 3867 установок
- [access-control-rbac](https://affpapa.org/nevibecode/skills/access-control-rbac.md) — скилл · 757 установок
- [security-guidance](https://affpapa.org/nevibecode/skills/owasp-security-guidance.md) — скилл · 401 установка
- [node9](https://affpapa.org/nevibecode/mcp/node9.md) — MCP-сервер · ★ 219
- [Koma Core MCP](https://affpapa.org/nevibecode/mcp/koma-core-mcp.md) — MCP-сервер · ★ 13

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
