Serena

Официальный

Oraios · лицензия MIT

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

На твоём компьютереБез ключаРаботает из РоссииЧитает и меняетБесплатноДанные остаются на компьютереЧитает тексты посторонних: код и настройки чужих проектовОсторожно в паре с подключениями, которые могут отправлять наружу

✓ Проверено 28.09.2026 на версии 1.7.0 в Claude Code (macOS) · 22 инструмента

Подключить ↓Что можно сделать ↓

Что сможет агент

  • Покажет, из чего состоит файл, и достанет код только нужной функции: агенту не придётся читать файл целиком. В нашем прогоне вместо 12,9 тыс. знаков файла хватило 1,2 тыс.
  • Найдёт все места, где вызывается функция, и для каждого назовёт функцию, внутри которой стоит вызов. Похожие имена и слова в строках в список не попадут.
  • Переименует функцию во всём проекте за один шаг: определение, импорты и вызовы во всех файлах. Имена, которые только похожи, останутся как были.
  • Удалит функцию, только если её нигде не используют. Если она где-то нужна, покажет эти места и ничего не тронет.
  • Запишет заметки об устройстве проекта в папку .serena внутри проекта, чтобы в новом разговоре агент не разбирался заново.

Паспорт

Кто сделал
Oraios
Статус
Официальный
Лицензия
MIT
Проверено
28.09.2026
Версия
1.7.0
Где работает
На твоём компьютере
Доступ
Без ключа
Россия
Работает из России
Данные
Данные остаются на компьютере
Цена
Бесплатно
Проверено в
Claude Code
Исходный код
github.com/oraios/serena
Документация
oraios.github.io/serena/

Подключить

Промпт собран из паспорта: команды в нём те же, что во вкладках Claude Code и Codex.

Промпт для агента
Подключи MCP-сервер «Serena» версии 1.7.0. Работай по шагам и после каждого коротко говори, что сделал.

Данные сервера (каталог smyslokod.ru, проверено 28.09.2026):
- имя в конфиге: serena
- официальный источник: https://github.com/oraios/serena
- запуск: uvx serena-agent@1.7.0 start-mcp-server --context claude-code --project-from-cwd --open-web-dashboard false
- переменные окружения сервера: SERENA_USAGE_REPORTING=false

Правила:
1. Не ставь Node.js, uv или Docker без моего «да». Не хватает - остановись и скажи, что поставить и откуда.
2. Ставь только пакет или адрес из этого промпта. Никаких установочных скриптов из README без моего подтверждения.
3. Перед правкой конфига сделай его резервную копию.

Шаги:
0. Определи, кто ты (Claude Code, Codex или другой агент) и какая у меня система.
1. Проверь окружение: uv --version (нужен uv). Скажи, что нашёл.
2. Проверь, нет ли уже сервера с таким именем: `claude mcp get serena` (в Codex: `codex mcp list`).
3. Подключи сервер:
   Claude Code: claude mcp add --scope user --env 'SERENA_USAGE_REPORTING=false' --transport stdio serena -- uvx serena-agent@1.7.0 start-mcp-server --context claude-code --project-from-cwd --open-web-dashboard false
   Codex: codex mcp add serena --env 'SERENA_USAGE_REPORTING=false' -- uvx serena-agent@1.7.0 start-mcp-server --context claude-code --project-from-cwd --open-web-dashboard false
   Если ты не Claude Code и не Codex, подключи способом, принятым у тебя, с той же командой запуска.
4. Проверка: `claude mcp list` (в Codex: `codex mcp list`), статус должен быть «Connected». Попроси меня перезапустить сессию. Перечисли инструменты сервера, их около 22. Сделай пробный запрос: «Через Serena покажи, какие функции и классы есть в главном файле кода этого проекта». Покажи результат.
5. Итог одним сообщением: что добавлено и куда, статус, число инструментов, команда отката и откуда восстановить копию конфига. Откат: `claude mcp remove serena --scope user` (в Codex: `codex mcp remove serena`).

Если на любом шаге ошибка, не чини наугад. Покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/mcp/serena#problemy
  • Выполнят Claude Code, Codex, Hermes и любой агент с доступом к терминалу.

Что нужно на компьютере: uv (менеджер пакетов Python).

Ключ: не нужен.

Нужен uv: подходящий Python он скачает сам. Без Python и кэша uv первый запуск занял у нас 17 секунд и около 330 МБ на диске. Для проектов на TypeScript и JavaScript нужен ещё Node.js 20 или новее: при первом открытии такого проекта Serena ставит сервер языка через npm в папку ~/.serena. Запускай агента из папки проекта: флаг --project-from-cwd открывает ближайшую папку с .git или .serena. Режим --context claude-code оставляет Serena только работу с кодом: файлы, терминал и команды остаются за самим агентом. Запуск команд у Serena появится, только если его включают настройки проекта в .serena/project.yml (подробнее в разделе «Безопасность и данные»). Флаг --open-web-dashboard false не открывает браузер при каждом запуске: панель с журналом остаётся по адресу http://127.0.0.1:24282/dashboard/, на Mac в строке меню появляется значок Serena. Переменная SERENA_USAGE_REPORTING=false выключает отправку статистики запусков разработчикам. Во вкладках других клиентов стоит тот же режим claude-code, другие клиенты мы не проверяли. Claude Desktop и приложение Codex запускают сервер не из папки проекта: в начале разговора попроси «Активируй через Serena проект /полный/путь/к/проекту». У Serena есть и свои режимы для других клиентов (codex, ide, desktop-app); в режиме desktop-app у неё появляется запуск команд на компьютере.

Проверь, что работает

Пробный запрос

Через Serena покажи, какие функции и классы есть в главном файле кода этого проекта

Что должно получиться: Агент вызовет get_symbols_overview и покажет список функций, классов и констант файла, не читая его целиком. Если Serena ответит «No active project», запусти агента из папки проекта или попроси его активировать проект по полному пути.

Что можно сделать

6 сценариев

Разобраться в чужом или старом проекте

Агент покажет, из чего состоят главные файлы, и прочитает только нужные функции. В нашем прогоне обзор файла на 543 строки занял 478 знаков, а код нужной функции - ещё 23 строки.

  1. get_symbols_overview отдаёт список функций, классов и констант файла без их кода.
  2. find_symbol с include_body достаёт код одной функции.
  3. find_referencing_symbols показывает, откуда функцию вызывают, чтобы собрать цепочку.
Промпт
Открой этот проект через Serena. Найди файлы, где лежит главная логика: [оплата, корзина, формы заявок, работа с базой]. Для каждого покажи через get_symbols_overview, какие в нём функции. Потом прочитай через find_symbol только функции, которые отвечают за [что хочешь понять], и объясни простыми словами, как это работает и в каком порядке вызывается. Файлы целиком не читай.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Если агент по привычке читает файлы сам, напиши в запросе «через Serena»: разработчики Serena пишут, что Claude Code охотнее берёт свои инструменты.

Найти все места, где используется функция, перед правкой

Агент соберёт список настоящих мест: импорты и вызовы, с названием функции, внутри которой стоит каждый вызов. В нашем прогоне Serena нашла 6 мест в двух файлах, поиск по тексту дал 11 строк вместе с похожими именами.

  1. find_symbol находит саму функцию и файл, где она объявлена.
  2. find_referencing_symbols возвращает места вызова с кусочком кода вокруг и именем функции, где стоит вызов.
Промпт
Через Serena найди все места, где используется функция [имя функции] (find_referencing_symbols). Для каждого места напиши файл, функцию, внутри которой стоит вызов, и что сломается, если я поменяю у [имя функции] входные данные или ответ. Пока ничего не правь.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. У нас поиск мест занимал от 0,4 до 5 секунд.
Наш прогон: Serena переименовала getCart в fetchCart, git diff показывает 7 строк в трёх файлах, похожее имя getCartQuery не тронуто

Переименовать функцию во всём проекте

Serena поменяет имя в определении, импортах и всех вызовах одним действием. У нас переименование getCart заняло 0,1 секунды и поправило 7 строк в трёх файлах, похожее имя getCartQuery осталось как было.

  1. rename_symbol меняет имя через сервер языка и трогает только настоящие упоминания функции.
  2. git diff показывает, что именно поменялось в каждом файле.
Промпт
Через Serena переименуй функцию [старое имя] в [новое имя] во всём проекте. Сначала проверь, что все изменения сохранены в git, и покажи через find_referencing_symbols, где функция используется. Переименуй через rename_symbol после моего «да». Потом покажи список изменённых файлов через git diff --stat и собери проект или запусти проверки, если они есть, чтобы убедиться, что всё сходится.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Сделай коммит до переименования: откатить можно будет одной командой.
  • Совет. Инструкция Serena просит агента не перепроверять переименование сборкой. Если в проекте есть сборка или проверки, попроси их запустить сам.

Одна и та же правка во многих файлах с предпросмотром

Агент сначала покажет список всех мест с номерами и поменяет только после твоего подтверждения. У нас Serena нашла 2 места в одном файле и заменила ровно их.

  1. replace_in_files с dry_run ничего не меняет и выдаёт список правок с номерами.
  2. Второй вызов меняет выбранные места. В нашем прогоне с ожидаемым числом 2 он заменил ровно 2.
Промпт
Через Serena замени во всём проекте «[старый текст]» на «[новый текст]» (replace_in_files). Сначала сделай пробный прогон с dry_run и покажи мне список мест. После моего «да» примени замену только к тем местам, которые я подтвержу.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Подходит, чтобы поменять телефон, почту или название, которые разбросаны по сайту.

Удалить функцию, только если она нигде не нужна

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

  1. find_referencing_symbols показывает, есть ли у функции вызовы.
  2. safe_delete_symbol удаляет функцию без вызовов, а при вызовах отвечает списком мест и ничего не трогает.
Промпт
Найди через Serena функции в [папка или файл], которые больше нигде не используются (find_referencing_symbols). Покажи мне список. Каждую, которую я подтвержу, удали через safe_delete_symbol: если функция всё-таки где-то вызывается, Serena ничего не удалит и покажет эти места.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Сделай коммит до чистки, чтобы любое удаление можно было вернуть.

Заметки об устройстве проекта на следующий раз

Агент запишет главное о проекте в папку .serena/memories внутри проекта и в новом разговоре прочитает заметки вместо повторного разбора. В нашей проверке запись, чтение, правка, переименование и удаление заметок заняли по 0,1 секунды.

  1. onboarding заводит файл с правилами заметок и выдаёт агенту план, какие заметки записать.
  2. write_memory кладёт заметку файлом .md в .serena/memories, read_memory читает её в следующем разговоре.
Промпт
Через Serena проведи знакомство с проектом (onboarding) и запиши заметки: как устроен проект, какими командами запускают сайт и проверки, какие правила оформления кода. Потом покажи список заметок (list_memories).

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. В папке .serena Serena исключает из git только служебные файлы, поэтому заметки можно хранить в репозитории вместе с кодом.

Пример работы

Задача

Разобраться в чужом магазине на Next.js перед правкой корзины

Промпт

Через Serena покажи, какие функции есть в lib/shopify/index.ts, покажи код getCart и найди все места, где getCart вызывается

Что сделал агент

  1. get_symbols_overview по lib/shopify/index.ts за 0,3 секунды: 16 функций, 10 констант и переменная, 478 знаков вместо 12,9 тыс. знаков файла.
  2. find_symbol за 0,1 секунды достал код getCart: 23 строки.
  3. find_referencing_symbols за 5 секунд нашёл 6 мест в двух файлах: два импорта и вызовы в removeItem, updateItemQuantity, redirectToCheckout и RootLayout.
  4. Для сравнения поиск по тексту дал 11 строк: туда попали соседняя константа getCartQuery и имя запроса в строке GraphQL.

Результат

Три вызова Serena, и агент знает, что правка getCart заденет действия корзины и общий шаблон страниц. Файлы целиком он не читал, лишнего в списке нет.

Редакция, 28.09.2026 · прогон при проверке

Инструменты сервера

22

22 инструмента, описания около 7,5 тыс. токенов. В Claude Code это почти не мешает: инструменты грузятся по запросу. Если в настройках Claude Code задан свой адрес подключения (ANTHROPIC_BASE_URL), в части других клиентов и на старых моделях описания грузятся целиком и занимают место в памяти агента на каждом сообщении.

Нажми на строку, чтобы увидеть оригинальное описание: ровно его читает агент.

Когда не нужен

Небольшой проект на несколько десятков файлов: Claude Code сам находит нужное поиском по тексту и чтением файлов. В нашем магазине из 65 файлов поиск по тексту нашёл getCart в 11 строках, из них 7 нужных: объявление, два импорта и четыре вызова, и агент разобрался бы без Serena. Подключение при этом добавляет ему 22 инструмента и свою инструкцию. Serena окупается, когда файлов сотни, имена похожи друг на друга и правка задевает много мест. Для проектов без кода (тексты, таблицы, заметки) она не нужна.

Частые проблемы

Serena отвечает «node is not installed or isn't in PATH» и просит агента остановиться

Проект на TypeScript или JavaScript, а на компьютере нет Node.js: сервер языка для таких проектов Serena ставит через npm. Поставь Node.js 20 или новее с nodejs.org и перезапусти сессию агента. При следующем открытии проекта Serena сама поставит сервер языка.

В ответе Serena «No active project» или «No project root found»

Serena не нашла проект: флаг --project-from-cwd ищет от папки, где запущен агент, ближайшую папку с .git или .serena/project.yml. Так бывает, если агент запущен не в папке проекта, в проекте ещё нет git или клиент запускает сервер не из папки проекта. Запусти агента из папки проекта. Если не помогло, попроси агента: «Активируй через Serena проект /полный/путь/к/проекту»: когда проект не найден, у Serena появляется инструмент activate_project.

Агент не видит инструментов сервера

Клиент не перезапущен после подключения: Claude Code читает подключения при старте сессии. Закрой и открой сессию, потом проверь: claude mcp list.

«uvx: command not found»

Не установлен uv, менеджер пакетов Python. Поставь uv по инструкции с docs.astral.sh/uv и перезапусти клиент.

Агент путается в инструментах и медленно отвечает

В настройках Claude Code задан свой адрес подключения (ANTHROPIC_BASE_URL): поиск инструментов выключается, и описания всех подключений грузятся целиком. Оставь включёнными только нужные подключения.

Безопасность и данные

Кто сделал
Oraios (официальный). Исходный код: github.com/oraios/serena, лицензия MIT.
Что видит агент
Код и файлы открытого проекта: имена и тексты функций, ошибки от сервера языка, заметки из папки .serena. Всё, что Serena отдаёт агенту, уходит в модель вместе с разговором. Путь вида ../ за пределы проекта Serena не открывает, но по символической ссылке внутри проекта прочитала у нас код из файла снаружи. Журнал каждого запуска с запросами агента и ответами, включая куски кода, остаётся в ~/.serena/logs: сама Serena старые журналы не удаляет.
Куда уходят данные
Данные остаются на компьютере.
Что может изменить
Правит код проекта: заменяет функции целиком, вставляет код, переименовывает и удаляет по всему проекту, заменяет текст во многих файлах сразу. Пишет в проект папку .serena (настройки, служебные файлы, заметки), а в ~/.serena на компьютере хранит свои настройки со списком открытых проектов, журналы и серверы языков. В режиме claude-code команд на компьютере не запускает. Но настройки проекта в файле .serena/project.yml могут вернуть инструмент запуска команд: у нас проект с такой строкой получил execute_shell_command, хотя не был отмечен доверенным. Перед работой с чужим проектом открой его .serena/project.yml, если он есть.
Тексты посторонних

Читает тексты посторонних: код и настройки чужих проектов. В таком тексте могут прятаться команды для агента.

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

Наша проверка
Источник - репозиторий oraios/serena компании Oraios (Германия) и пакет serena-agent в PyPI, его публикуют разработчики Oraios; лицензия MIT. В базе OSV записей по версии 1.7.0 и её 76 зависимостям нет. Две уязвимости прошлых версий здесь закрыты: чужой сайт мог достучаться до веб-панели через подмену адреса (исправлено в 1.5.2), настройки чужого проекта могли выполнить код при его открытии (исправлено в 1.7.0). Сам пакет ставится готовым архивом. Одну небольшую зависимость (на Python 3.14 ещё PyYAML) uv собирает из исходников: её установочный файл мы прочитали, там только описание пакета. Описания всех 22 инструментов и инструкция сервера прочитаны целиком: скрытых указаний нет, инструкция настойчиво просит агента брать для кода инструменты Serena вместо своих. Соединения при работе: PyPI (проверка новой версии), сайт Oraios в Германии (новости для панели), реестр npm (сервер языка при первом запуске). Статистику запусков (система, версия, режим) Serena отправляет на сайт Oraios, в команде каталога она выключена переменной SERENA_USAGE_REPORTING=false. Панель и значок в строке меню доступны только с твоего компьютера (адрес 127.0.0.1). Версия в команде закреплена.
Версия
В командах закреплена версия 1.7.0: ставится ровно то, что мы проверили.

Проверить самому

Промпт Артемия: агент прочитает код подключения как недоверенный и покажет строки, где читаются секреты, уходят данные или меняются твои настройки.

Полезные материалы

Журнал проверок

ДатаВерсияГдеИтогОтпечаток
28.09.20261.7.0Claude Code, macOSработаетb2686886acab5175

Отпечаток - контрольная сумма того, что сервер отдаёт агенту: инструкций, инструментов, подсказок и ресурсов. Поменялся при той же версии - поменялось поведение.

Подключения делают их авторы. Мы проверяем установку и описываем, что они умеют, но код и сервис остаются чужими. Перед установкой посмотри, какие данные получит агент.