MCP 문서 관리

메뉴

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 이상
  • neovim npm 패키지 (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>

활용 사례

  1. 코드 생성 및 완성: AI가 자동으로 코드를 생성하거나 완성하여 개발 속도 향상
  2. 코드 리팩토링: 기존 코드를 더 효율적이고 가독성 있게 리팩토링
  3. 문서화 지원: 코드에 대한 주석이나 문서를 자동으로 생성
  4. 코드 검색 및 분석: 복잡한 코드베이스에서 정보 찾기 및 분석
  5. 오류 디버깅: 코드 오류를 찾고 해결책 제안
  6. 패턴 인식: 일반적인 코딩 패턴을 인식하고 개선 사항 제안

연결된 구성 요소