Claude 와 Filesystem : Model Context Protocol(MCP) 실제 적용 사례

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 링크 복사하기

Claude Desktop에서 내 컴퓨터에 있는 파일을 제어해보자

Model Context Protocol에서 자주 언급되는 연동 사례 중에서 File System을 연동하는 케이스가 있어서 이 부분도 포스팅을 해보려고 합니다. LLM에서 내 Local의 File시스템을 검색하고, 관련된 정보를 얻는데 매우 유용한 MCP Server 가 되겠습니다.

소스의 레파지토리는 다음의 링크를 참고해주시길 바랍니다. https://github.com/modelcontextprotocol/servers/tree/HEAD/src/filesystem

Claude Deskop을 사용하다가 내 로컬안에 있는 파일 및 파일의 속성, 또는 일부 내용을 변경, 이동 등의 제어를 할수 있는 MCP Server가 있습니다.

Filesystem MCP Server

주요 특징

  • 파일 읽기/쓰기
  • 디렉토리 생성/나열/삭제
  • 파일/디렉토리 이동
  • 파일 검색
  • 파일 메타데이터 가져오기

이 MCP 서버는 설정에서 정의된 디렉토리 하위의 디렉토리 또는 파일만 지원됩니다.

API 관련 설명

제어 기반

  • file://system: 파일 시스템 작업 인터페이스

주요 기능

  • 읽기_파일
    • 파일의 전체 내용 읽기
    • 입력: path(문자열)
    • UTF-8 인코딩으로 전체 파일 내용을 읽습니다.
  • 여러 파일 읽기
    • 여러 파일을 동시에 읽기
    • 입력: paths(string[])
    • 읽기에 실패해도 전체 작업이 중단되지는 않습니다.
  • 쓰기_파일
    • 새 파일을 만들거나 기존 파일을 덮어씁니다(이 경우 주의하세요)
    • 입력:
      • path(문자열): 파일 위치
      • content(문자열): 파일 내용
  • 편집_파일
    • 고급 패턴 매칭 및 서식을 사용하여 선택적 편집을 수행합니다.
    • 특징:
      • 줄 기반 및 다중 줄 콘텐츠 매칭
      • 들여쓰기 보존을 통한 공백 정규화
      • 올바른 위치 지정을 통한 여러 동시 편집
      • 들여쓰기 스타일 감지 및 보존
      • 컨텍스트가 포함된 Git 스타일 diff 출력
      • 드라이런 모드로 변경 사항 미리 보기
    • 입력:
      • path(문자열): 편집할 파일
      • edits(배열): 편집 작업 목록
        • oldText(문자열): 검색할 텍스트(부분 문자열 가능)
        • newText(문자열): 바꿀 텍스트
      • dryRun(부울): 변경 사항을 적용하지 않고 미리 봅니다(기본값: false)
    • 드라이런에 대한 자세한 diff 및 매치 정보를 반환하고, 그렇지 않은 경우 변경 사항을 적용합니다.
    • 모범 사례: 변경 사항을 적용하기 전에 항상 dryRun을 먼저 사용하여 변경 사항을 미리 봅니다.
  • 디렉토리 생성
    • 새 디렉토리를 생성하거나 디렉토리가 존재하는지 확인하세요.
    • 입력: path(문자열)
    • 필요한 경우 상위 디렉토리를 생성합니다.
    • 디렉토리가 있으면 자동으로 성공합니다.
  • 목록_디렉토리
    • [FILE] 또는 [DIR] 접두사를 사용하여 디렉토리 내용을 나열합니다.
    • 입력: path(문자열)
  • 이동_파일
    • 파일 및 디렉토리 이동 또는 이름 변경
    • 입력:
      • source(끈)
      • destination(끈)
    • 대상이 존재하면 실패합니다.
  • 검색_파일
    • 재귀적으로 파일/디렉토리 검색
    • 입력:
      • path(문자열): 시작 디렉토리
      • pattern(문자열): 검색 패턴
      • excludePatterns(string[]): 패턴을 제외합니다. Glob 형식이 지원됩니다.
    • 대소문자 구분 없이 일치
    • 일치 항목의 전체 경로를 반환합니다.
  • 파일_정보_받기
    • 자세한 파일/디렉토리 메타데이터 가져오기
    • 입력: path(문자열)
    • 보고:
      • 크기
      • 창조 시간
      • 수정된 시간
      • 접속 시간
      • 유형(파일/디렉토리)
      • 권한
  • 허용된 디렉토리 목록
    • 서버가 액세스할 수 있는 모든 디렉토리를 나열합니다.
    • 입력이 필요하지 않습니다
    • 보고:
      • 이 서버가 읽고 쓸 수 있는 디렉토리

Claude Desktop에 설치

claude_desktop_config.json에 내용을 추가하고, 재시작 합니다.
Docker의 경우, 샌드박스가 적용된 디렉터리를 /projects에 마운트하여 서버에 제공할 수 있습니다.

Docker

참고 : 모든 디렉터리는 기본적으로 /projects에 마운트해야 합니다.

Docker Build

NPX

username의 이름을 변경하고, 접근을 허용하여 이용할 디렉토리를 정의합니다.

실제 적용 화면

결론

Claude Desktop을 이용한 Local File에 직접 제어를 할 수 있는 방법에 대해서 알아보았습니다. 텍스트 생성 이외에도 코드, 이미지 , 데이터 파일 등의 다양한 생성 작업들이 더욱 증가할 것으로 보이고, 더이상 복사 및 붙여넣기의 한계로부터 대화를 통한 제어가 일반적으로 가는 추세 입니다. 더불어 실제 마켓 플레이스 Pulse를 보면 관련된 File System의 기능을 제공하는 매우 다양한 다른 서버들도 올라오는 것 같습니다.

어플리케이션 개발과 관련된 코드 양산 및 저장, 관련 이미지 파일 생성 까지 개발과 관련된 자동 코드 생성 등의 구성도 가능해질것으로 보입니다.
실질적인 사용이 가능한 유즈 케이스에 대해서 이후 좀더 포스팅 해보도록 하겠습니다.


게시됨

카테고리

작성자

댓글

“Claude 와 Filesystem : Model Context Protocol(MCP) 실제 적용 사례”에 대한 2개의 응답

  1. […] Claude 와 Filesystem : Model Context Protocol(MCP) 실제 적용 사례 […]

  2. […] 실제 구현사례 : Claude 와 Filesystem : Model Context Protocol(MCP) 실제 적용 사례 […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다