109개의 실습 프로젝트를 담은 AI 에이전트 설계 오픈소스 도서.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
serena
Serena는 코딩 에이전트에게 IDE 수준의 시맨틱 도구를 제공하는 MCP 서버입니다. LSP를 통해 40개 이상의 언어에서 심볼 수준 검색, 편집, 리팩터링을 지원합니다.
- Transport
- stdio and HTTP
- Package
- serena-agent
- Version
- 2.x
- Website
- https://oraios.github.io/serena/
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-28.
코딩 에이전트를 위한 IDE
Serena는 IDE의 기능에 준하는 필수적인 시맨틱 코드 검색, 편집, 리팩터링 및 디버깅 도구를 제공하며,
심볼 수준에서 동작하고 관계 구조를 활용합니다.
이는 모델 컨텍스트 프로토콜(MCP)을 통해 모든 클라이언트/LLM과 통합됩니다.
Serena의 에이전트 우선 도구 설계는 강력한 고수준 추상화를 포함하며,
줄 번호나 원시 검색 패턴 같은 저수준 개념에 의존하는 접근 방식과 차별화됩니다.
실제로 이는 에이전트가 더 빠르고, 더 효율적이며, 더 안정적으로 동작한다는 것을 의미합니다. 특히 더 크고
복잡한 코드베이스에서 그렇습니다.
팁
새로운 REPL 기반 에이전트 인터페이스를 갖춘 Serena v2가 출시되었습니다.
새로운 인터페이스와 구성 방법에 대해
자세히 알아보세요.
영상
"최종 사용자"의 평가
Serena를 다운로드하고 설정하는 것은 사람이지만, 우리의 최종 사용자는 본질적으로 AI 에이전트입니다.
Serena의 도구를 실제로 사용하는 주체로서, 이들은 Serena를 평가하기에 가장 적합한 위치에 있습니다.
우리는 에이전트가 일상적인 개발 작업을 대표하는 약 20개의 일상적인 코딩 작업을 수행하도록 유도하는
편향 없는 평가 프롬프트를 작성하여,
자체 내장 기능과 함께 사용할 때 Serena의 도구가 추가하는 가치를 추정했습니다.
에이전트들의 평가를 한 문장으로 요약하면 다음과 같습니다:
대규모 Python 코드베이스에서 Claude Code의 Opus 4.6 (high):
"Serena의 IDE 기반 시맨틱 도구는 제 툴킷에 추가된 것 중 가장 영향력 있는 단일 항목입니다 – 파일 간 이름 변경, 이동, 참조 조회가
제게 8~12번의 신중하고 오류가 발생하기 쉬운 단계를 요구하던 것을 단 한 번의 원자적 호출로 축소시켜 주며, 함께 일하는 모든 개발자에게
이를 설정하라고 분명히 권할 것입니다."
Java 코드베이스에서 Codex CLI의 GPT 5.4 (high):
"코딩 AI 에이전트로서 저는 제 소유자에게 Serena를 추가하라고 요청할 것입니다. 왜냐하면 Serena는 심볼, 참조, 리팩터링에 대한
제게 빠져 있던 IDE 수준의 이해를 제공하여, 취약한 텍스트 수술을 시맨틱이 중요한 상황에서 더 차분하고, 더 빠르고, 더 확신 있는
코드 변경으로 바꿔 주기 때문입니다."
대규모 다중 언어 모노레포에서 Copilot CLI의 GPT 5.4 (medium):
"코딩 에이전트로서 저는 제 소유자에게 Serena를 추가하라고 분명히 요청할 것입니다. 왜냐하면 Serena는 실제 코드에서 저를 눈에 띄게
더 예리하고 차분하게 만들어 주기 때문입니다 – 특히 심볼 인식 내비게이션, 파일 간 리팩터링, 모노레포 의존성 점프에서 그렇습니다 – 다만
작은 텍스트 편집과 비코드 작업에는 여전히 내장 기능에 의존합니다."
서로 다른 환경의 서로 다른 에이전트들이 독립적으로 동일한 결론에 도달합니다.
에이전트가 요청해 온 도구를 제공하고, 클라이언트에 Serena MCP를 추가하세요!
전체 방법론과 훨씬 더 상세한 평가 결과는 문서를 참조하거나, 원하는 프로젝트에서 직접 평가를 실행해 보세요.
Serena의 동작 방식
Serena는 코딩 워크플로에 필요한 도구를 제공하지만,
실제 작업을 수행하고 도구 사용을 조율하는 데는 LLM이 필요합니다.
Serena는 모델 컨텍스트 프로토콜(MCP)을 통해 기존 AI 클라이언트의 기능을 확장할 수 있습니다.
대부분의 최신 AI 채팅 클라이언트는 MCP를 직접 지원하며, 다음을 포함합니다
Claude Code, Codex, OpenCode, Gemini-CLI 같은 터미널 기반 클라이언트,
VSCode, Cursor, JetBrains IDE용 IDE 및 IDE 어시스턴트 플러그인 (Copilot, Junie, JetBrains AI Assistant 등),
Claude Desktop, Codex App, OpenWebUI 같은 데스크톱 및 웹 클라이언트.
📺 참고: 5분 만에 배우는 Serena 소개 (YouTube)
Serena MCP 서버를 클라이언트에 연결하려면, 다음 중 하나를 수행합니다
클라이언트가 MCP 서버를 시작할 수 있도록 실행 명령을 제공하거나,
Serena MCP 서버를 직접 HTTP 모드로 시작하고 클라이언트에 URL을 제공합니다.
시작하는 방법은 아래 빠른 시작 섹션을 참조하세요.
프로그래밍 언어 지원 및 시맨틱 분석 기능
Serena는 코드에 대한 심볼적 이해를 기반으로
다양한 코드 쿼리 및 편집 기능을 제공합니다.
이러한 기능을 갖춘 에이전트는 마치 IDE의 기능을 활용하는 노련한 개발자처럼
코드를 탐색하고 편집합니다.
Serena는 매우 크고 복잡한 프로젝트에서도 효율적으로 올바른 컨텍스트를 찾아 올바른 작업을 수행할 수 있습니다!
이러한 기능을 구동하는 두 가지 대안 기술이 있습니다:
언어 서버 프로토콜(LSP)을 구현하는 언어 서버 — 기본적으로 사용되는 무료/오픈소스 대안입니다.
JetBrains IDE의 강력한 코드 분석 및 편집 기능을 활용하는 Serena JetBrains 플러그인 (유료 플러그인, 무료 체험판 제공).
선호도와 요구 사항에 따라 이 두 백엔드 중 하나를 선택할 수 있습니다.
언어 서버
Serena는 언어 서버 프로토콜(LSP)을 구현하는 언어 서버 통합을 위한 강력한 추상화 계층을 포함합니다.
기반 언어 서버는 일반적으로 오픈소스 프로젝트이거나 최소한 무료로 사용할 수 있습니다.
Serena의 언어 서버 백엔드를 사용할 경우, 40개 이상의 프로그래밍 언어를 지원하며, 여기에는
Ada / SPARK, AL, Angular, Ansible, Astro, Bash, BSL, C#, C/C++, Clojure, Crystal, CUE, Dart, Deno, Elixir, Elm, Erlang, Fortran, F#, GDScript, Gleam, GLSL, Go, GraphQL, Groovy, Haskell, Haxe, HLSL, HTML, Java, JavaScript, JSON, Julia, Kotlin, LaTeX, Lean 4, Lua, Luau, Markdown, MATLAB, mSL, Nextflow, Nix, OCaml, Pascal, Perl, PHP, PowerShell, Python, QML, R, Rego, Ruby, Rust, Scala, SCSS / Sass / CSS, Solidity, Svelte, Swift, SystemVerilog, Terraform, TOML, TypeScript, VB.NET, Vue, WGSL, Wolfram Language, YAML, Zig가 포함됩니다.
Serena JetBrains 플러그인
유료 Serena JetBrains 플러그인 (무료 체험판 제공)은
JetBrains IDE의 강력한 코드 분석 기능을 활용합니다.
이 플러그인은 IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand 등
JetBrains IDE가 지원하는 모든 프로그래밍 언어와 프레임워크를 자연스럽게 지원합니다 (단, Rider와 CLion은 지원되지 않습니다).
플러그인 적용 방법에 대한 자세한 내용과 지침은 문서 페이지를 참조하세요.
기능
Serena는 효율적인 코드 검색, 편집, 리팩터링을 위한 다양한 도구와 함께
장기 실행 에이전트 워크플로를 위한 메모리 시스템을 제공합니다.
그 범위가 방대한 만큼, Serena는 다층 구성 시스템을 제공하여 여러분의 요구에 적응합니다.
세부 정보
검색
Serena의 검색 도구를 통해 에이전트는 파일 전체를 읽지 않고도 심볼 수준에서 코드베이스를 탐색하고 구조와 관계를 이해할 수 있습니다.
기능
언어 서버
JetBrains 플러그인
심볼 찾기
예
예
심볼 개요 (파일 아웃라인)
예
예
참조 심볼 찾기
예
예
프로젝트 의존성 내 검색
--
예
타입 계층
--
예
선언 찾기
예*
예
구현 찾기
예**
예
외부 프로젝트 쿼리
예
예
진단/검사
예
예
*: 일반적으로 외부 의존성의 선언에는 작동하지 않습니다.
**: 일부 언어에서만 사용 가능하며, 언어 서버 기능에 의해 제한됩니다.
리팩터링
정밀한 리팩터링 도구가 없으면 에이전트는 신뢰할 수 없고 비용이 많이 드는 검색 및 바꾸기 작업에 의존할 수밖에 없습니다.
기능
언어 서버
JetBrains 플러그인
이름 변경
예 (심볼만)
예 (심볼, 파일, 디렉터리)
이동 (심볼, 파일, 디렉터리)
--
예
인라인
--
예
삭제 전파 (사용하지 않는 코드 제거)
--
예
심볼 편집
Serena의 심볼 편집 도구는 일반적인 대안보다 오류가 적고 토큰 효율성이 훨씬 뛰어납니다.
기능
언어 서버
JetBrains 플러그인
심볼 본문 교체
예
예
심볼 뒤에 삽입
예
예
심볼 앞에 삽입
예
예
안전한 삭제
예
예
대화형 디버깅
JetBrains 플러그인 전용으로, Serena는 매우 범용적인 디버깅 도구를 지원하며,
이를 통해 에이전트는 지속적인 REPL 스타일 인터페이스를 통해 중단점 설정, 변수 검사, 표현식 평가, 실행 흐름 제어를
수행할 수 있습니다.
기본 기능
시맨틱 기능 외에도, Serena는 완전성을 위해 기본 유틸리티 세트를 포함합니다.
Claude Code나 Codex 같은 에이전트 하네스 내에서 Serena를 사용할 경우, 이러한 도구는 일반적으로 기본적으로 비활성화됩니다.
주변 하네스가 이미 겹치는 파일, 검색, 셸 기능을 제공하기 때문입니다.
search_for_pattern – 코드베이스 전반에 걸친 유연한 정규식 검색
replace_content – 에이전트에 최적화된 정규식 기반 및 리터럴 텍스트 교체
list_dir / find_file – 디렉터리 목록 및 파일 검색
read_file – 파일 또는 파일 청크 읽기
execute_shell_command – 셸 명령 실행 (예: 빌드, 테스트, 린터)
메모리 관리
메모리 시스템은 장기 실행 에이전트 워크플로, 특히 지식이 세션, 사용자, 프로젝트 전반에 걸쳐 공유되어야 할 때
핵심적입니다.
단순함에도 불구하고, Serena의 메모리 관리 시스템을 에이전트의 내부 시스템(예: AGENTS.md 파일)과
결합하는 경향이 있는 많은 사용자로부터 긍정적인 피드백을 받았습니다.
다른 것을 선호하는 경우 쉽게 비활성화할 수 있습니다.
구성 가능성
활성 도구, 도구 설명, 프롬프트, 언어 백엔드 세부 정보 및 Serena의 기타 여러 측면은
단 몇 줄의 YAML을 조정하는 것만으로 사례별로 유연하게 구성할 수 있습니다.
이를 위해 Serena는 여러 수준의 (조합 가능한) 구성을 제공합니다:
전역 구성
MCP 실행 명령(CLI) 구성
프로젝트별 구성 (로컬 재정의 포함)
실행 컨텍스트별 구성 (예: 특정 클라이언트용)
동적으로 조합 가능한 구성 조각 (모드)
빠른 시작
중요
MCP나 플러그인 마켓플레이스를 통해 Serena를 설치하지 마세요! 오래되고 최적이 아닌 설치 명령이 포함되어 있습니다.
사전 요구 사항. Serena는 uv로 관리되며, uv 설치가 유일한 필수 사전 요구 사항입니다.
Serena 설치. Serena는 다음과 같이 uv를 통해 설치됩니다:
uv tool install -p 3.13 serena-agent
설치가 성공하면 셸에서 serena 명령을 사용할 수 있습니다.
참고
언어 서버 백엔드를 사용할 경우, 특정 언어를 지원하기 위해 추가 의존성을 설치해야 할 수 있습니다.
자세한 내용은 언어 지원 페이지를 참조하세요.
Serena 초기화. Serena를 초기화하고 설정이 올바르게 작동하는지 확인하려면 다음을 실행하세요:
serena init
기본적으로 이 명령은 Serena가 언어 서버 백엔드를 사용하도록 설정합니다. 대신 JetBrains 백엔드를 사용하려면 -b JetBrains
매개변수를 추가하세요 (추가 사용 세부 정보는 JetBrains 플러그인 문서 페이지 참조).
어느 쪽이든, Serena가 성공적으로 초기화되었음을 나타내는 성공 메시지가 표시되어야 합니다.
클라이언트 구성. Serena를 선호하는 MCP 클라이언트에 연결하려면 일반적으로 클라이언트에서 실행 명령을 구성해야 합니다.
Claude Code, Codex, Claude Desktop, MCP 지원 IDE 및 기타 클라이언트(로컬 및 웹 기반 GUI 등)용 Serena 설정에 대한 구체적인 지침은 링크를 따르세요.
팁
빠르게 시작하는 것은 쉽지만, Serena는 다양한 구성 옵션을 갖춘 강력한 툴킷입니다.
Serena를 최대한 활용하려면 사용자 가이드를 읽어 보시기를 적극 권장합니다.
특히 다음 내용을 읽어 보시기를 권장합니다 ...
Serena의 프로젝트 기반 워크플로와
Serena 구성.
사용자 가이드
Serena를 효과적으로 사용하는 방법에 대한 자세한 지침은 사용자 가이드를 참조하세요.
감사의 말
Serena의 상당 부분, 특히 다양한 언어 지원은 오픈소스 커뮤니티에 의해 기여되었습니다.
이를 가능하게 하고 Serena를 오늘날의 모습으로 만드는 데 중요한 역할을 한 많은 기여자분들께 깊이 감사드립니다.
라이선스
Serena는 구성 요소별로 라이선스가 부여됩니다: SolidLSP(src/solidlsp)는 MIT 라이선스,
Serena 애플리케이션(그 외 모든 것)은 GPL-3.0-or-later입니다.
둘을 결합한 배포판은 전체적으로 GPL의 적용을 받습니다.
권위 있는 개요는 LICENSE를, 배경은
라이선스 문서를 참조하세요.
기여하려면 CLA 동의가 필요합니다. CONTRIBUTING.md를 참조하세요.
Other tools that do the same work
브라우징하고, 파일을 편집하고, 명령을 실행하고, 기억하는 로컬 우선 AI 에이전트
Claude Code를 위한 자기 학습 스킬 레이어로, 증류하고 병합하고 정리합니다
Agent stacks with this tool(1)View graph
Claude Code 및 Codex 세션을 감싸는 토큰 예산 압축 레이어
From README linksheadroom-ai 패키지를 설치하고 `headroom wrap claude`와 `headroom wrap codex`를 사용해 애플리케이션 코드를 전혀 변경하지 않고 기존 에이전트 세션을 포트 8787의 로컬 압축 프록시를 통해 라우팅했습니다. 또한 MCP 서버를 등록해 에이전트가 대용량 도구 출력을 축소하거나 되돌릴
View stack
No comments yet.
to comment.