링크된 문서
Neovim
Neovim
Neovim MCP 서버는 인기 있는 텍스트 에디터인 Neovim과 AI 언어 모델 간의 통합을 제공합니다. 이 서버를 통해 AI 어시스턴트가 Neovim 세션과 상호작용하여 코드 편집, 네비게이션, 분석 및 기타 개발 작업을 지원할 수 있습니다.
특징
- 실시간 Neovim 세션 접근: 현재 실행 중인 Neovim 인스턴스와 직접 상호작용
- 코드 분석 및 탐색: 현재 버퍼의 코드 구조를 분석하고 탐색할 수 있는 기능
- 편집 작업 자동화: 코드 생성, 리팩토링, 문서화 등의 편집 작업 자동화
- 플러그인 통합: Neovim 생태계의 다양한 플러그인과 통합 가능
- LSP(Language Server Protocol) 연동: 코드 완성, 오류 진단 등의 LSP 기능 활용
- 상황 인식 지원: 프로젝트 구조, 파일 타입, 현재 커서 위치 등을 고려한 상황별 지원
- 확장 가능한 아키텍처: 사용자 정의 명령 및 기능 추가 가능
API
리소스
- 버퍼: 열려 있는 파일 버퍼 정보
- 윈도우: Neovim 윈도우 레이아웃 정보
- 탭: 탭 구성 정보
- 레지스터: Neovim 레지스터 내용
도구
get_current_buffer
현재 활성화된 버퍼의 내용과 메타데이터를 반환합니다. - 입력: 없음 - 출력: 버퍼 ID, 이름, 파일 타입, 내용 등
get_buffer_by_id
특정 ID의 버퍼 정보를 반환합니다.
- 입력:
- buffer_id: 조회할 버퍼의 ID
- 출력: 버퍼 메타데이터 및 내용
edit_buffer
버퍼 내용을 편집합니다.
- 입력:
- buffer_id: 편집할 버퍼의 ID (선택 사항, 기본값은 현재 버퍼)
- changes: 변경 사항 목록 (각 변경은 시작 행, 시작 열, 끝 행, 끝 열 및 새 텍스트 포함)
- 출력: 편집 성공 여부 및 상태
execute_command
Neovim 명령어를 실행합니다.
- 입력:
- command: 실행할 Neovim 명령어
- 출력: 명령 실행 결과
get_cursor
현재 커서 위치를 반환합니다. - 입력: 없음 - 출력: 행, 열 정보
set_cursor
커서 위치를 설정합니다.
- 입력:
- row: 행 번호
- col: 열 번호
- 출력: 성공 여부
get_file_structure
현재 버퍼 또는 지정된 파일의 구조를 분석합니다.
- 입력:
- buffer_id: 분석할 버퍼의 ID (선택 사항, 기본값은 현재 버퍼)
- 출력: 함수, 클래스, 변수 등의 구조화된 정보
search_in_buffer
버퍼 내에서 패턴을 검색합니다.
- 입력:
- buffer_id: 검색할 버퍼의 ID (선택 사항, 기본값은 현재 버퍼)
- pattern: 검색할 패턴 (정규식 지원)
- 출력: 일치하는 항목의 위치 목록
get_project_files
현재 프로젝트의 파일 목록을 반환합니다.
- 입력:
- pattern: 필터링할 패턴 (선택 사항)
- 출력: 파일 경로 목록
open_file
파일을 열거나 새 파일을 생성합니다.
- 입력:
- path: 열 파일의 경로
- create_if_missing: 파일이 없는 경우 생성 여부 (선택 사항, 기본값 false)
- 출력: 성공 여부 및 새로 열린 버퍼 ID
사용 방법
설치
# npm을 통한 설치
npm install -g neovim-mcp-server
# 또는 소스에서 빌드
git clone https://github.com/example/neovim-mcp.git
cd neovim-mcp
npm install
npm run build
필요 조건
- Neovim 0.7.0 이상 설치
- Node.js 14.0.0 이상
neovimnpm 패키지 (npm install -g neovim)
구성
MCP 클라이언트 구성 예시:
{
"mcpServers": {
"neovim": {
"command": "neovim-mcp-server",
"args": ["--socket=/path/to/nvim.sock"],
"env": {
"NVIM_LISTEN_ADDRESS": "/path/to/nvim.sock"
}
}
}
}
Neovim 설정
Neovim 내에서 다음 설정을 추가하여 MCP 서버와의 통신을 활성화합니다:
" Neovim init.vim 또는 init.lua에 추가
let g:mcp_server_enabled = 1
let g:mcp_server_socket = '/path/to/nvim.sock'
" 선택적 MCP 명령어 매핑
nnoremap <leader>ma :MCPAssist<CR>
활용 사례
- 코드 생성 및 완성: AI가 자동으로 코드를 생성하거나 완성하여 개발 속도 향상
- 코드 리팩토링: 기존 코드를 더 효율적이고 가독성 있게 리팩토링
- 문서화 지원: 코드에 대한 주석이나 문서를 자동으로 생성
- 코드 검색 및 분석: 복잡한 코드베이스에서 정보 찾기 및 분석
- 오류 디버깅: 코드 오류를 찾고 해결책 제안
- 패턴 인식: 일반적인 코딩 패턴을 인식하고 개선 사항 제안
연결된 구성 요소
- Terminal-Control - 터미널 명령 실행 및 관리
- Git - 소스 코드 버전 관리
- code-assistant - 코드 분석 및 생성 지원
- lsp-mcp - 언어 서버 프로토콜 통합