local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Connects to a Neovim instance to view and manipulate text buffers, run Vim commands, access editor status, manage windows, set marks and registers, and make visual selections. Allows AI to interact directly with content in the Neovim editor.
Leverages Vim's native text editing commands and workflows to enable AI assistance with code and text editing. Supports navigation, manipulation of buffers, window management, and visual selections.
Neovim MCP 서버
Claude Desktop(또는 모든 클라이언트)과 Neovim 간의 개념 증명 통합은 Model Context Protocol(MCP)과 공식 neovim/node-client JavaScript 라이브러리를 사용합니다. 이 서버는 Claude가 이미 이해하고 있는 Vim의 기본 텍스트 편집 명령과 워크플로를 활용하여 가벼운 코드 또는 범용 AI 텍스트 지원 계층을 생성합니다.
특징
- 예를 들어 nvim을 시작할 때
--listen /tmp/nvim
과 같이 소켓 파일을 노출하면 nvim 인스턴스에 연결합니다. - 현재 버퍼를 봅니다
- 커서 위치, 모드, 파일 이름을 가져옵니다.
- vim 명령을 실행하고 선택적으로 vim을 통해 셸 명령을 실행합니다.
- 삽입이나 교체를 사용하여 편집할 수 있습니다.
API
자원
nvim://session
: 현재 neovim 텍스트 편집기 세션nvim://buffers
: 수정된 상태, 구문 및 창 ID를 포함한 메타데이터가 포함된 현재 Neovim 세션의 모든 열려 있는 버퍼 목록
도구
- vim_버퍼
- 줄 번호가 표시된 현재 VIM 텍스트 편집기 버퍼
- 입력
filename
(문자열) - 파일 이름은 무시되고 현재 활성 버퍼 콘텐츠가 포함된 번호가 매겨진 줄의 문자열이 반환됩니다.
- vim_명령
- VIM에 탐색, 스팟 편집 및 줄 삭제를 위한 명령 보내기
- 입력
command
(문자열) nvim.replaceTermcodes
통해 전달된 vim 명령을 실행합니다. 여러 명령을 줄바꿈으로 구분하면 작동합니다.- 오류가 발생하면
'nvim:errmsg'
내용이 반환됩니다.
- vim_상태
- VIM 편집기의 상태를 가져옵니다
- 상태에는 커서 위치, 모드, 파일 이름, 시각적 선택, 창 레이아웃, 현재 탭, 표시, 레지스터 및 작업 디렉토리가 포함됩니다.
- vim_edit
- VIM 편집기에서 insert, replace 또는 replaceAll을 사용하여 줄을 편집합니다.
- 입력
startLine
(숫자),mode
("insert"
|"replace"
|"replaceAll"
),lines
(문자열) - insert는 startLine에 줄을 삽입합니다.
- replace는 startLine에서 시작하는 줄을 바꿉니다.
- replaceAll은 버퍼 내용 전체를 교체합니다.
- vim_window
- Neovim 창 조작(분할, vssplit, 닫기, 탐색)
- 입력
command
(문자열: "split", "vsplit", "only", "close", "wincmd h/j/k/l") - 창 관리 작업을 허용합니다
- vim_mark
- 특정 위치에 표시를 설정하세요
- 입력
mark
(문자열: az),line
(숫자),column
(숫자) - 지정된 위치에 명명된 마크를 설정합니다.
- vim_register
- 레지스터의 내용 설정
- 입력
register
(문자열: az 또는 "),content
(문자열) - 등록 내용을 관리합니다
- vim_visual
- 시각적으로 선택하기
- 입력
startLine
(숫자),startColumn
(숫자),endLine
(숫자),endColumn
(숫자) - 시각적 모드 선택을 생성합니다
클로드는 이 간단한 도구 세트를 사용하여 neovim 세션을 들여다보고 질문에 답하고 버퍼를 편집할 수 있습니다.
제한 사항
- 이는 모델 컨텍스트 프로토콜을 실험하기 위한 간단한 개념 증명입니다. 사용 시 발생하는 모든 책임은 사용자에게 있습니다.
- 사용자 정의 neovim 구성과 원활하게 상호 작용하지 않을 수 있습니다!
- 오류 처리가 개선될 수 있습니다.
- 가끔 클로드는 vim 명령 입력을 제대로 받지 못할 때가 있습니다.
구성
환경 변수
ALLOW_SHELL_COMMANDS
: 셸 명령(예:!ls
) 실행을 활성화하려면 'true'로 설정합니다. 보안을 위해 기본값은 false입니다.NVIM_SOCKET_PATH
: Neovim 소켓 경로를 설정합니다. 지정하지 않으면 기본값은 '/tmp/nvim'입니다.
Claude Desktop과 함께 사용
claude_desktop_config.json
에 다음을 추가하세요:
지엑스피1
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 약관에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
You must be authenticated.
Claude가 이미 이해하고 있는 Vim의 기본 텍스트 편집 명령과 워크플로를 활용하여 가벼운 코드 지원 계층을 만듭니다.