Serena
코드를 텍스트가 아닌 심볼로 다루는 LSP 기반 MCP 툴킷
코드를 글자가 아니라 심볼로 다루게 해 주는 MCP 서버입니다. LSP로 함수·참조 관계를 따라 찾고 고치기 때문에, 파일을 통째로 읽지 않고도 큰 코드베이스를 다룹니다. Claude Code·Codex·Cursor처럼 MCP를 받는 도구에 붙습니다.
설치 명령어
uv tool install -p 3.13 serena-agent && serena init빠른 시작 · 핵심 명령
uv tool install -p 3.13 serena-agentuv로 Python 3.13 환경에 설치합니다serena init초기화하고 언어 서버 백엔드를 점검합니다claude mcp add serena -- serena start-mcp-server --context claude-codeClaude Code에 MCP 서버로 등록합니다
# Claude Code에 프로젝트 단위로 등록 claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"
차별점
- 줄 번호나 정규식이 아니라 심볼 단위로 찾습니다. 선언·참조·구현을 관계로 따라갑니다.
- Go·Java·Python·Rust·TypeScript 등 여러 언어를 LSP 백엔드로 받칩니다.
- rename·move 같은 변경을 여러 파일에 걸쳐 한 번에 처리합니다.
- JetBrains 플러그인 백엔드를 붙이면 타입 계층 분석 같은 IDE 기능까지 끌어옵니다.
대안과 비교
grep이나 파일 통째 읽기는 글자만 봅니다. 그래서 맥락을 채우느라 토큰을 많이 먹고 엉뚱한 곳을 고치기도 합니다. Serena는 심볼 관계로 좁혀 들어가 큰 저장소일수록 토큰과 오류를 함께 줄입니다. 바깥 문서를 넣는 Context7과 역할이 갈려, 둘을 같이 붙이면 안과 밖을 모두 봅니다.
함께 쓰는 도구 · 대안
셋업 주의
- 마켓플레이스 설치는 README가 권하지 않습니다(구버전 명령 포함). uv tool install로 직접 설치합니다.
도구 정보
- 라이선스
- MIT
- 런타임
- python
관련 영상
큐레이터 노트
저장소가 커질수록 값이 오르는 도구입니다. 파일을 통째로 읽어 맥락을 채우는 방식은 큰 코드베이스에서 토큰을 많이 먹고 엉뚱한 곳을 고치기도 하는데, Serena는 심볼 단위로 선언·참조·구현을 따라가 그 낭비를 줄입니다. 작은 프로젝트라면 차이가 크지 않으니, 규모가 부담이 되기 시작할 때 들이는 게 맞습니다.
설치는 README가 권하는 uv tool install 경로가 안전합니다. 마켓플레이스 설치는 구버전 명령이 섞여 있어 권장되지 않습니다.
값을 가장 잘 보여주는 건 큰 코드베이스입니다. 한 프로덕션 자바 벤치마크(ManoMano)에선 Claude Code 내장 LSP가 메서드를 환각하고 테스트 9개를 끝내 통과시키지 못한 반면, Serena를 붙인 쪽은 45분 만에 전체 테스트를 통과시켰습니다. 다만 Claude Code가 자체 심볼 탐색을 내장하면서 역할이 겹친다는 지적도 나오니, 큰 저장소가 아니라면 굳이 겹쳐 둘 이유는 줄어듭니다.