Obsah

Serena

Vytvořeno: 15.8.2026 | Aktualizováno: 15.08.2026 13:09

Serena je open-source nástroj, který dává coding agentům schopnosti IDE přes Model Context Protocol (MCP). Agent díky němu může v projektu vyhledávat a upravovat funkce, třídy a jejich reference podle významu kódu, ne jen podle textu nebo čísel řádků.

K čemu slouží

Serena není AI model ani samostatný autonomní agent. Je to vrstva mezi agentem, například OpenCode, Claude Code nebo Codexem, a nástroji pro analýzu zdrojového kódu.

Největší přínos má při práci nad většími nebo neznámými projekty:

Příklad: při přejmenování metody calculateTotal na calculateInvoiceTotal by agent neměl slepě nahradit řetězec v souborech. Serena může najít symbol a požádat language server o refaktoring, který pracuje s jeho skutečnými referencemi.

Serena nenahrazuje testy, lint, code review ani Git. Sémantické nástroje snižují riziko chybné editace, ale správnost výsledku stále musí ověřit testy a kontrola změn.

CLI a MCP server

Serena má dvě role.

Po instalaci přes uv jsou pro člověka užitečné například tyto příkazy:

# Instalace a inicializace s výchozím LSP backendem
uv tool install -p 3.13 serena-agent
serena init
 
# Vytvoření projektu a předindexace symbolů
serena project create --index
 
# Dodatečná indexace a kontrola projektu
serena project index
serena project health-check
 
# Spuštění MCP serveru
serena start-mcp-server

Podle dokumentace spuštění se v běžném režimu stdio server nespouští ručně: MCP klient jej spustí jako vlastní podproces a komunikuje s ním přes standardní vstup a výstup.

Provozní režimy

Stdio je vhodné pro jednoho agenta nad jedním projektem. Každá agentní session spustí vlastní instanci Sereny.

Streamable HTTP se hodí, když se k jedné instanci mají připojovat různí klienti nad týmž projektem. Server pak spouští správce prostředí a klienti se připojí na MCP URL. Serena je stavová a v jedné instanci má aktivní právě jeden projekt; nesdílí se proto mezi agenty, kteří pracují nad různými repozitáři.

Jak funguje LSP backend

Language Server Protocol (LSP) je standardní rozhraní mezi editorem a analyzátorem konkrétního programovacího jazyka. Language server zná syntaxi, importy, typy, definice a reference v projektu.

Agent → MCP → Serena → LSP language server → analýza projektu
      ←      ←        ←                     ← výsledky

Serena převede MCP volání na dotazy do vhodného language serveru a odpověď vystaví agentovi ve sjednocené podobě. Nejde o hledání nad embeddingy ani o vektorovou databázi nad zdrojovým kódem. Sémantické porozumění dodává konkrétní language server.

Například Pyright analyzuje Python, Intelephense PHP, TypeScript Language Server TypeScript a JavaScript, gopls Go a rust-analyzer Rust. Serena podporuje desítky jazyků; u některých server sama stáhne a u jiných vyžaduje lokální závislost nebo další konfiguraci.

Nástroje pro agenta

Nástroje Sereny zahrnují zejména:

Podpora jednotlivých operací závisí na schopnostech language serveru. LSP backend například umí rename symbolů, ale obecný přesun symbolu, souboru nebo adresáře není dostupný pro všechny jazyky.

Indexace a projektová paměť

Serena rozlišuje analýzu kódu od projektové paměti.

Indexace kódu

Language server při otevření projektu analyzuje workspace a vytváří si vlastní informace o symbolech a vztazích. Serena může u větších projektů předem načíst symbolická data příkazem serena project index. Tato předindexace zrychlí první dotazy; podle workflow dokumentace se spouští jednou a Serena ji pak průběžně aktualizuje při změnách souborů.

U JetBrains backendu indexaci obstarává IDE, takže samostatná indexace Sereny nedává smysl.

Paměť a onboarding

Při prvním použití projektu může Serena provést onboarding: projde důležité soubory, build a testovací nastavení a vytvoří lidsky čitelné Markdown poznámky v '' .serena/memories/'' v kořeni projektu. Typicky jde o architekturu, příkazy pro build a testy nebo projektové konvence.

Paměť Sereny není RAG ani databáze. Agent nejdříve dostane seznam názvů pamětí a relevantní soubor si přečte cíleně. Paměti lze upravovat ručně, verzovat s projektem a kombinovat s AGENTS.md.

Onboarding může spotřebovat hodně kontextu. Po prvním spuštění je vhodné vytvořené poznámky zkontrolovat a pro další práci začít novou agentní session. Pokud projekt vlastní paměť nepotřebuje, lze ji i onboarding vypnout režimy no-memories nebo no-onboarding.

Alternativní JetBrains backend

Vedle výchozího LSP backendu nabízí Serena placený plugin pro JetBrains IDE. MCP server zůstává stejný; plugin je jen alternativní zdroj jazykové inteligence z otevřeného IDE.

JetBrains varianta navíc umí například indexovat externí knihovny, přesouvat symboly, soubory a adresáře, inlinovat symboly, zobrazit type hierarchy a interaktivně debugovat přes breakpointy a REPL. Vyžaduje otevřený stejný projekt v IDE a není nutná, pokud LSP backend poskytuje dostatečnou podporu pro daný jazyk.

Doporučené nastavení pro coding agenta

Výchozí LSP backend není chybný. Nevhodné však může být výchozí nastavení serveru určené pro klienta, který nemá vlastní nástroje pro soubory a shell. OpenCode už takové nástroje má, proto není dobré vystavit dvě sady podobných nástrojů bez jasného pravidla použití.

Pro terminálového coding agenta je vhodný kontext ide, který je určený pro asistenty s vlastními základními nástroji. Server lze spustit například takto:

serena start-mcp-server \
  --context ide \
  --project-from-cwd \
  --open-web-dashboard false

Dokumentace MCP klientů upozorňuje, že agenti někdy preferují vlastní grep a čtení souborů, i když mají Sereně dostupné sémantické nástroje. Pro práci v projektu proto dává smysl mít v AGENTS.md explicitní pravidlo: pro navigaci v kódu, hledání referencí, rename a změny napříč soubory má agent nejprve použít symbolické nástroje Sereny. Textové vyhledávání zůstává vhodné pro konfigurace, dokumentaci, nezdrojové soubory a případy, kde LSP daný jazyk nebo konstrukci nepokrývá.

Bezpečnost a omezení

Serena může upravovat soubory a spouštět příkazy. Důvěryhodný MCP klient, důvěryhodný repozitář a důvěryhodná lokální konfigurace jsou součástí jejího bezpečnostního modelu.

Podrobnosti popisuje bezpečnostní dokumentace Sereny.

Kdy ji použít

Serena se vyplatí pro rozsáhlejší aplikace, monorepa, refaktoring veřejných API, práci v neznámém kódu a dlouhodobé agentní workflow. Pro malý skript, čistě dokumentační repozitář nebo jednorázovou textovou změnu přinese málo oproti běžnému hledání a editaci souborů.

Zdroje