Skip to main content
Glama

Neovim MCP 서버

Claude Desktop(또는 모든 클라이언트)과 Neovim 간의 개념 증명 통합은 Model Context Protocol(MCP)과 공식 neovim/node-client JavaScript 라이브러리를 사용합니다. 이 서버는 Claude가 이미 이해하고 있는 Vim의 기본 텍스트 편집 명령과 워크플로를 활용하여 가벼운 코드 또는 범용 AI 텍스트 지원 계층을 생성합니다.

특징

  • 예를 들어 nvim을 시작할 때 --listen /tmp/nvim 과 같이 소켓 파일을 노출하면 nvim 인스턴스에 연결합니다.

  • 현재 버퍼를 봅니다

  • 커서 위치, 모드, 파일 이름을 가져옵니다.

  • vim 명령을 실행하고 선택적으로 vim을 통해 셸 명령을 실행합니다.

  • 삽입이나 교체를 사용하여 편집할 수 있습니다.

Related MCP server: MCP Code Analyzer

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 파일을 참조하세요.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bigcodegen/mcp-neovim-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server