[MCP] Claude로 로컬 파일에 접근하기

Jaeseo Lee·2025년 4월 3일
0

USB-C로 빗대어 설명하는 MCP가 무엇인지를 느껴보기 위해
공식에서 설명하는 간단한 예제를 만들어 보도록 하겠습니다.

예제는 단순히 이미 제작되어 있는 FileSystem이라는 MCP 서버를 통해 Tool을 불러오고 Args에 로컬의 Path를 전달 해 주는 방식입니다.

1. Download Claude for Desktop

먼저 데스크톱용 클로드를 설치해 줍니다. 다운로드 링크 (클로드 공홈)
본문에서는 Claude.ai가 아닌 데스크톱용 클로드를 사용하는지 설명 되어 있습니다.

Why Claude for Desktop and not Claude.ai
Because servers are locally run, MCP currently only supports desktop hosts. Remote hosts are in active development.

2. Add the Filesystem MCP Server

2.1 Add a ConfigFile

설치된 클로드에 로그인을 하고, 설정을 들어갑니다.
Settings

설정창에 왼쪽 탭에서 개발자탭에 들어가 설정 편집을 눌러줍니다.
EditConfig

클로드에서 claude_desktop_config.json을 생성하고, 그 파일에 기본적인 Config들을 작성해주면 됩니다.

생성된 json파일의 경로는 다음과 같습니다:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

만약 파일이 생성되지 않았다면 해당 경로에 생성해주면 됩니다.

2.2 Set a Config

이제 텍스트 편집기를 통해 MCP Server에 대한 Config를 작성합니다.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/your/path/to/desktop"
      ]
    }
  }
}

여기서 생각해봐야 할 점은

  • 어떤 경로를 인자로 넘겨줄 것인가.
  • 데스크톱에 Node.js가 설치되어 있는가.
    (FileSystem Server는 npx Command를 사용하기 때문에 Node가 필요합니다.)

저는 D:\를 인자로 사용했습니다.

How does the configuration file work?
애플리케이션이 동작할 때 사용할 MCP 서버를 config파일을 통해 알려줍니다.
서버에 대한 Describe는 여기에 정리되어 있습니다.

2.3 Restart a Claude

이제 Claude를 재시작 해줍니다.

Setting 해놓은 config를 읽고 클라이언트를 생성해 Server에서 Tool을 가져 온 모습입니다.

오픈소스로 올라온 Github에 들어가보면 TS파일에 설정된 Tool들이 불러와진 것을 알 수 있습니다.

3. Try it out

저는 프롬프트에 다음과 같은 명령을 넣었습니다.

Prompt:
D드라이브에는 무슨 폴더들이 있고, 그 하위에는 무슨 파일들이 있는지 깔끔하게 정리해서 시각화 해줘

이제 Claude가 Tool을 사용하겠다는 내용과 내 로컬 파일을 탐색해도 되는지 Permission을 수락 받은 후 탐색을 진행합니다.

가장 크게 놀란 점은 저의 프롬프트를 받고 명령을 이행할 때 어떤 툴을 사용해서 어떻게 사용하는지 처리 과정을 보여준다는 점 입니다.
(LLM 추론 모델의 생각 과정을 보여주 듯)

또한, 과정을 보면 알 수 있듯이, 민감한 정보를 담은 폴더들은 탐색을 중단하는 모습입니다.

마지막으로 시각화를 해달라는 Prompt 마지막 문장에 따라 시각화도 해줍니다.

MCP를 이용하면 더욱 똑똑한 AI Agent를 구성할 수 있고,
활용도가 무궁무진한 만큼 Automatically한 업무(Task)가 가능할 것 같습니다.

profile
I hope to be the fastest "Backend". Like a sprinter 🏃🏻‍♂️

0개의 댓글