Skip to main content
Glama
Weavatrix

weavatrix-refactor

by Weavatrix

Weavatrix Refactor

CI npm crates.io docs.rs MIT

Явный слой записи исходного кода в экосистеме Weavatrix; Core остаётся доступным только для чтения.

Рефакторинг между файлами без догадок со стороны агента.

Weavatrix Refactor — это нативный MCP-сервер для агентов, пишущих код. Он находит символ через граф репозитория, показывает превью байт-точных правок, сообщает о каждом одноимённом вхождении, которое не смог доказать, и записывает изменения только после явного подтверждения, привязанного к хэшу.

Полезное отличие не в том, что «ИИ умеет переименовывать слово». Оно в том, что агент получает доказательства до записи и восстанавливаемую транзакцию после неё.

Установка

Запустите нативный бинарник через npm:

npx -y weavatrix-refactor mcp /absolute/path/to/repository

Или установите его через Cargo:

cargo install weavatrix-refactor --locked
weavatrix-refactor mcp /absolute/path/to/repository

MCP-клиент может запустить его напрямую:

{
  "mcpServers": {
    "weavatrix-refactor": {
      "command": "weavatrix-refactor",
      "args": ["mcp", "/absolute/path/to/repository"],
      "env": {"WEAVATRIX_ALLOW_SOURCE_EDITS": "1"}
    }
  }
}

Оставьте WEAVATRIX_ALLOW_SOURCE_EDITS неустановленным для сессий только с превью. Превью — это чтение; только подтверждённое применение или откат требует этого флага.

Установка в качестве плагина

Репозиторий также поставляет один пакет плагинов для Cursor, Codex, Claude Code и Grok Build. Плагин запускает профиль только с расширениями, поэтому он добавляет 11 методов Refactor, не повторяя 43 метода чтения Weavatrix Core. Установите отдельный плагин Weavatrix, когда нужны обе поверхности.

Встроенный навык необязателен и активируется только для явно запрошенной работы по рефакторингу. Его точка входа остаётся короткой; у каждого метода есть отдельная справочная карточка, которая загружается только при необходимости.

  • Cursor: найдите Weavatrix Refactor после одобрения в маркетплейсе.

  • Codex: добавьте маркетплейс Weavatrix/weavatrix-refactor из .agents/plugins, затем добавьте weavatrix-refactor@weavatrix-refactor.

  • Claude Code: добавьте тот же маркетплейс репозитория из .claude-plugin, затем установите weavatrix-refactor@weavatrix-refactor.

  • Grok Build: выполните grok plugin marketplace add Weavatrix/weavatrix-refactor, откройте /marketplace и установите его.

Плагин открывает WEAVATRIX_ALLOW_SOURCE_EDITS=1, но каждая запись по-прежнему требует короткоживущий одноразовый токен, привязанный к точному превью и плану.

Для задачи переименования откройте только два инструмента, которые нужны агенту:

weavatrix-refactor mcp /absolute/path/to/repository --profile=rename

Профиль rename сохраняет rename_symbol и rollback_last_apply; все несвязанные инструменты графа и рефакторинга отсутствуют и не могут быть вызваны. Опустите опцию (или используйте --profile=refactor) для всех 11 методов Refactor. Более узкий каталог уменьшает повторяющийся контекст агента; он не ослабляет хэши превью, шлюз записи, токен подтверждения или проверки отката.

Когда Weavatrix Core уже установлен как отдельный MCP, откройте только 11 методов, которые добавляет Refactor:

weavatrix-refactor mcp /absolute/path/to/repository --profile=refactor

Профиль refactor используется по умолчанию для MCP и list-tools, включая плагин маркетплейса. Прежний профиль совместимости full удалён и отклоняется обеими командами: Refactor больше не публикует методы Core. Установите Weavatrix Core как отдельный MCP, если также нужна интеллектуальная работа с репозиторием только для чтения.

Related MCP server: MCP Refactoring

Безопасное переименование между файлами за три вызова

Предположим, два файла объявляют resolveTarget. Голое имя неоднозначно, поэтому сервер отказывается выбирать одно и возвращает точные идентификаторы:

// rename_symbol
{"symbol":"resolveTarget","new_name":"locateTarget","output_format":"json"}

{
  "status": "NOT_FOUND",
  "reason": "the name matches more than one symbol; pass one of the candidate ids",
  "candidates": [
    "symbol:src/core.ts#function:resolveTarget@2:1",
    "symbol:src/shadow.ts#function:resolveTarget@3:1"
  ]
}

Повторите с нужным идентификатором. Результат по-прежнему только для чтения: он содержит план правок, хэши содержимого, доказанное количество правок и ссылки, которые бэкенд отказался угадывать.

// rename_symbol
{
  "symbol": "symbol:src/core.ts#function:resolveTarget@2:1",
  "new_name": "locateTarget",
  "output_format": "json"
}

{
  "status": "PLANNED",
  "completeness": "PARTIAL",
  "renamedEdits": 7,
  "uncertainReferences": ["... three named locations ..."],
  "confirmToken": "single-use-token",
  "plan": {"schemaVersion":"weavatrix.edit-plan.v1","files":["..."]}
}

После просмотра плана повторите ту же операцию с теми же входными данными и её токеном:

// rename_symbol
{
  "symbol": "symbol:src/core.ts#function:resolveTarget@2:1",
  "new_name": "locateTarget",
  "mode": "apply",
  "confirm_token": "single-use-token",
  "output_format": "json"
}

{"status":"APPLIED"}

Этот точный поток проверяется на реальном stdio MCP-сервере. Фикстура репозитория требует семь правок в трёх файлах, сохраняет четыре ловушки (более длинный идентификатор, строку, комментарий и несвязанную тень) и должна по-прежнему компилироваться; она набирает 12/12.

Что автоматизировано сегодня

Одиннадцать инструментов не претендуют на одинаковый уровень автоматизации:

Уровень

Инструменты

Что получает агент

Полный рабочий процесс превью/применения

rename_symbol, rename_related_symbols

Сгенерированный план и токен, затем подтверждённая запись путём повторения той же операции

Создание плана

change_signature, edit_symbol, bulk_replace, organize_imports, move_file

Байт-точные правки или план для проверки; используйте apply_edit_plan, где возвращается конверт плана правок

Консультативный

move_symbol, delete_readiness

Радиус поражения, риски циклов/архитектуры или вердикт об удалении; без автоматической записи в исходный код

Инфраструктура безопасности

apply_edit_plan, rollback_last_apply

Проверка/применение конверта плана правок и восстановление с защитой от дрейфа

Refactor использует внутри граф Weavatrix на Rust для доказательств, но никогда не экспортирует методы Core. Установите отдельный плагин Weavatrix для интеллектуальной работы с репозиторием только для чтения. MCP Refactor владеет ровно своими 11 методами расширения; --profile=rename — это опциональный более узкий двухметодный рабочий процесс.

Модель безопасности и точные ограничения

  • Неоднозначные имена завершаются ошибкой с идентификаторами-кандидатами вместо выбора первого совпадения.

  • PARTIAL означает, что граф доказал правки в плане, но не доказал, что не существует других семантических ссылок. uncertainReferences называет места, требующие проверки.

  • Каждый файл в плане несёт хэш содержимого. Изменённое рабочее дерево делает превью устаревшим вместо применения старых координат.

  • Применение требует WEAVATRIX_ALLOW_SOURCE_EDITS=1 плюс короткоживущий одноразовый токен, привязанный к этому репозиторию и точно пересчитанному плану.

  • rollback_last_apply отказывается перезаписывать файлы, которые дрейфовали после транзакции.

  • Многофайловые записи журналируются и восстанавливаются после сбоев. Они не являются наблюдаемо атомарными для посторонних процессов: другой процесс может кратко наблюдать промежуточное состояние файловой системы.

Применяются только правки с доказанным происхождением. Лексический или графовый бэкенд намеренно более консервативен, чем языковой сервер, и его не следует читать как заявление о полной семантике компилятора.

Измеренный бенчмарк, с разделением несопоставимых слоёв

Зафиксированный в августе 2026 года бенчмарк использует эквивалентные состязательные фикстуры на TypeScript, Rust и Python. В каждой — семь обязательных правок, четыре ловушки и шлюз сборки/тестов. Протокольные запуски считают точную инициализацию o200k_base, каталог, запрос и токены ответа. Агентные запуски используют фактическое совокупное использование, сообщаемое Codex CLI с закреплённой моделью gpt-5.6-sol / средним рассуждением. Никакого байтового прокси или оценочной конверсии токенов в секунду не используется.

Новый профиль только для переименования сохранил все девять протокольных запусков на 12/12, сократив фиксированный MCP-контекст с 9 331 до 485 токенов. Его направленный A/B-тест агента на TypeScript:

Рука

Правильность

Медианное время от начала до конца

Медианное количество входных токенов

Naked Codex

12/12 x3

42 602 мс

72 169

Weavatrix 1.0.6 --profile=rename

12/12 x3

48 389 мс

108 155

Weavatrix 1.0.5 full surface

12/12 x3

58 719 мс

275 784

Serena

12/12 x3

68 728 мс

388 271

Полная матрица агентов — 12/12 во всех 27 запусках TypeScript/Rust/Python; каждый запуск также завершился операционно и прошёл санитарный аудит канала правок. Детерминированная протокольная матрица также выявила языковой дефект Serena: её предлагаемый поток find_symbolrename_symbol набрал 7/12 на TypeScript во всех трёх запусках, тогда как Rust и Python прошли. Она также нашла и привела к исправлениям для вызовов макросов Rust и свидетельств вызовов f-строк/модульного уровня Python.

На этом игрушечном TypeScript-репозитории голый Codex по-прежнему быстрее и дешевле, чем суженный профиль. Продемонстрированная ценность Weavatrix — это превью перед записью, именованная неопределённость, отказ от устаревших планов, явная авторизация и откат, а не универсальная экономия токенов на маленьких репозиториях.

См. полную методологию, все медианы по языкам, ссылки на сырые результаты и ограничения.

Контракт

Имена 11 инструментов Refactor, их схемы и состояния результатов зафиксированы в contract/refactor-tools.v1.json. Все операции рефакторинга — нативные Rust; хост использует внутри движок weavatrix-rust только для чтения для графовых доказательств, не экспортируя его методы на поверхность по умолчанию.

Версии 0.1.x использовали JavaScript-движок. Эта линия продолжается как weavatrix-refactor-js и сохраняет отдельный каталог состояния, хранилище токенов и журнал отката.

Лицензия

MIT.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
15Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables fast semantic code search and analysis across 15+ programming languages. Supports searching for functions and classes, tracing code usage, detecting syntax errors, and analyzing code quality and structure.
    29
    33
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to apply Martin Fowler's 71+ refactoring patterns to codebases through a pluggable, language-agnostic architecture. Supports previewing and applying refactorings, analyzing code smells, and inspecting code structure with safe-by-default operations.
    5
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables coding agents to perform safe, project-wide Python refactoring (rename, move, extract, inline, change signature, organize imports, etc.) with a dry-run safety contract and LSP-coordinate addressing.
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides semantic code search and code insights via a knowledge graph, enabling AI to understand, navigate, and modify complex projects with deep dependency and architecture analysis.
    MIT

View all related MCP servers

Related MCP Connectors

  • Enterprise code intelligence for M&A, security audits, and tech debt. Hosted server with 200k free.

  • Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Weavatrix/weavatrix-refactor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server