serena

AI Coding ToolsCLIPython

★ 29,218주당 +261조회 4

무엇인가

Serena는 코딩 에이전트에게 IDE 수준의 코드 탐색·편집 능력을 붙이는 MCP 서버다. 파일을 텍스트 덩어리로 다루는 대신 심볼과 그 사이의 관계 구조를 다루는 계층에 속한다. 코드베이스에서 정의를 찾고, 참조를 모으고, 이름을 바꾸고, 선언을 다른 파일로 옮기는 작업을 도구 호출로 노출한다.

어떻게 동작하나

구조는 두 부분으로 나뉜다. 클라이언트와는 MCP로 통신하고, 코드 해석은 별도 백엔드에 위임한다. 기본 백엔드는 LSP를 구현한 언어 서버들을 감싸는 추상화 계층이다. 대안으로 JetBrains IDE의 분석·편집 엔진을 그대로 쓰는 유료 플러그인 백엔드가 있다. 서버 자체는 Python으로 작성됐고, 클라이언트가 실행 명령으로 띄우게 하거나 사용자가 HTTP 모드로 띄운 뒤 URL을 넘기는 두 가지 연결 방식을 지원한다.

무엇과 다른가

차이는 편집의 좌표계에 있다. 라인 번호와 정규식 패턴으로 위치를 지정하면 파일이 조금만 바뀌어도 좌표가 어긋나고, 여러 파일에 걸친 변경은 여러 번의 호출로 쪼개진다. Serena는 심볼을 기준으로 위치를 잡으므로 참조 조회, 이름 변경, 이동이 파일 경계를 넘어 한 번의 호출로 처리된다. 언어 서버 백엔드는 40개 이상의 언어를, JetBrains 백엔드는 해당 IDE가 지원하는 언어와 프레임워크를 커버한다.

어떻게 쓰나

도입은 README의 Quick Start 절차를 따른다. MCP 마켓플레이스나 플러그인 마켓플레이스를 통한 설치는 오래된 명령을 담고 있어 금지된다. 클라이언트에는 서버 실행 명령을 등록하거나, HTTP 모드로 띄운 서버의 URL을 지정한다. Claude Code, Codex, OpenCode, Gemini-CLI 같은 터미널 클라이언트와 VSCode, Cursor, JetBrains 계열 플러그인, Claude Desktop, OpenWebUI 같은 데스크톱·웹 클라이언트가 MCP를 통해 붙는다.

전제와 한계

전제 조건이 있다. Serena는 도구만 제공하고 작업 계획과 호출 순서는 LLM이 결정하므로 MCP를 지원하는 클라이언트가 반드시 필요하다. 언어 서버 백엔드는 대상 언어에 맞는 LSP 서버에 의존하고, JetBrains 백엔드는 유료 플러그인이며 무료 체험이 제공된다. 두 백엔드 중 하나를 골라 쓴다.

유사 도구