Serena

Oraios · официальный сервер

MCP-подключения · 14 мин чтения

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

На твоём компьютере·Без ключа·Бесплатно·22 инструмента·проверено 28.09.2026 на версии 1.7.0

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

  • Покажет, из чего состоит файл, и достанет код только нужной функции: агенту не придётся читать файл целиком. В нашем прогоне вместо 12,9 тыс. знаков файла хватило 1,2 тыс.
  • Найдёт все места, где вызывается функция, и для каждого назовёт функцию, внутри которой стоит вызов. Похожие имена и слова в строках в список не попадут.
  • Переименует функцию во всём проекте за один шаг: определение, импорты и вызовы во всех файлах. Имена, которые только похожи, останутся как были.
  • Удалит функцию, только если её нигде не используют. Если она где-то нужна, покажет эти места и ничего не тронет.
  • Запишет заметки об устройстве проекта в папку .serena внутри проекта, чтобы в новом разговоре агент не разбирался заново.
Кто сделал
Oraios
Версия
1.7.0
Проверено
28.09.2026, Claude Code
Лицензия
MIT
Документация
oraios.github.io/serena/

Подключить

Поставить агентомClaude Code✓CodexCursor

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

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

Данные сервера (каталог code.tarasovweb.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://code.tarasovweb.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 в 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 только служебные файлы, поэтому заметки можно хранить в репозитории вместе с кодом.

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

редакция, прогон при проверке 28.09.2026
Задача
Разобраться в чужом магазине на 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 заденет действия корзины и общий шаблон страниц. Файлы целиком он не читал, лишнего в списке нет.

Инструменты

22 · описания около 7,5 тыс. токенов

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

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

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

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

5

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.2026·1.7.0·Claude Code, macOS·работаетb2686886acab5175

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

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

Илья Тарасов

Илья Тарасов

Основатель TarasovWeb и TarasovAgency. Предприниматель и веб-разработчик.

Об авторе проекта · Обсудить проект

Читайте также

MCP-серверы

amCharts 5

Агент строит графики для отчётов, сайта и кабинета на amCharts 5 по точной документации, примерам и справочнику свойств

MCP-серверы

Ant Design

Агент собирает кабинеты и панели управления на React из компонентов Ant Design по точным свойствам, примерам и токенам темы нужной версии

MCP-серверы

Ark UI

Даёт агенту свойства, готовые примеры и атрибуты для стилей компонентов Ark UI, когда он собирает интерфейс на React, Vue, Svelte или Solid