
MCP 2편 : Claude 와의 만남
저번에 이어 claude 에서 MCP(Model Context Protocol) 를 사용하는 방법을 알아볼 것 입니다.우선 저번 글을 읽지 않았다면 MCP 1편 : MCP 개념과 준비할 것들 를 먼저 보시고 오시기 바랍니다. 또한 저는 claude 유료 플랜에서 작성하는 글이며, 무료 플랜에서는 기능적인...
저번에 이어 claude 에서 MCP(Model Context Protocol) 를 사용하는 방법을 알아볼 것 입니다.
우선 저번 글을 읽지 않았다면 MCP 1편 : MCP 개념과 준비할 것들 를 먼저 보시고 오시기 바랍니다.
또한 저는 claude 유료 플랜에서 작성하는 글이며, 무료 플랜에서는 기능적인 제약이 있을수 있습니다.
그리고, 윈도우즈에서 설치 및 실행하는 결과입니다.
(밑에서는 존칭 및 경어체를 사용하지 않으니, 양해해 주시기 바랍니다.)
Claude Desktop 설정

claude desktop을 설치하고 난뒤 설정에서 개발자 항목으로 들어가야 한다.
하단의 설정이 아닌 상단 메뉴의 설정으로 들어가야 한다.
설정에서 개발자 탭으로 이동 한뒤에 "설정 편집"을 클릭하면 된다.
그럼 claude_desktop_config.json 파일을 볼수 있게 되는데, 이것을 edit 툴로 오픈을 하면 된다.
실제 경로는 C:\Users\사용자명\AppData\Roaming\Claude 이니 참조하자.

우선 로컬에 있는 파일과 디렉토리를 제어할 수 있는 Filesystem 서버를 추가할 것이다.
서버라고 해서 복잡한 것은 아니고, 코드 몇줄 만 추가하면 바로 사용이 가능해 진다.
위에서 edit툴에서 오픈한 claude_desktop_config.json 에 아래 내용을 추가하고 저장하면 된다.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "D:\\KAN_WebWork\\MCP"]
}
}
}json 분석 및 실행 과정
json 분석
해당 json을 간단히 설명하면..
mcpServers : MCP 서버들의 설정을 포함하는 최상위 객체로 해당 파일내 유일해야 한다.
filesystem : MCP 서버의 이름 또는 식별자로 이런식으로 여러 서버를 추가해서 사용하게 된다.
command : 실행을 하는 주 실행파일명이다. 여기서는 node의 npx를 사용해서 실행하게 된다.
args : 명령어 실행 시 전달할 인자(arguments)들의 배열이다.
-y : 패키지 설치시 자동으로 설치하게 하는 플래그
@modelcontextprotocol/server-filesystem : 실행할 npm 패키지 이름
D:\\KAN_WebWork\\MCP : 서버가 접근할 로컬 경로, 여러개를 추가할 수 있다.
실행 과정
그럼 이 서버(filesystem)가 실행되는 과정을 살펴보자.
- 초기화 단계:
- JSON 구성 파일이 로드되고 파싱
- mcpServers 객체 내부의 서버 설정(여기서는 filesystem)을 확인
- 서버 시작:
- npx 명령어가 실행되어 @modelcontextprotocol/server-filesystem 패키지를 다운로드하고 실행
- 지정된 경로(D:\KAN_WebWork\MCP)에 접근 권한을 가진 파일시스템 서버가 시작
- 클라이언트-서버 연결:
- 호스트 애플리케이션(클라이언트)이 시작된 MCP 서버에 연결
- 필요한 인증 과정
- 파일 작업 처리:
- 클라이언트가 파일 읽기/쓰기/수정 요청을 서버에 전송
- 서버는 요청을 받아 지정된 경로(D:\KAN_WebWork\MCP)에서 해당 작업을 수행
- 작업 결과를 클라이언트에 반환
- 데이터 전송 및 처리:
- 서버와 클라이언트 간에 데이터가 안전하게 주고받음
- 필요에 따라 데이터 변환이나 가공이 이루어짐
- 오류 처리:
- 파일이 없거나 권한이 없는 경우 등의 오류 상황을 처리
- 클라이언트에 적절한 오류 메시지를 반환합니다.
간단히 말하면, npx를 통해 server-filesystem 패키지를 로컬에서 설치하고, 이 패키지를 통해 인자값으로 지정된 디렉토리 하위를 제어하게 된다는 것이다. 이 과정에서 claude로 상호 연결이 되어서 정보를 주고 받게 되는 것이다.
Claude Desktop 설정
이제 테스트 해 보자. claude desktop을 종료하고 다시 실행하면 된다.
윈도우에서는 그냥 우측 X 를 눌러서 종료시 제대로 mcp를 불러오지 못하면 이때는 좌측 상단 메뉴의 종료를 닫아보자.

이처럼 mcp를 불러올때 오류가 발생하는 경우가 있다. 이때는 다시 종료하고 재실행을 해 보자.
만일 그래도 안된다면 로그 폴더 열기로 해당 로그를 살펴보면 된다. (그리고, claude에서 물어보면 대부분 해결 됨.. ㅎㅎ)
로그 파일은 C:\Users\사용자명\AppData\Roaming\Claude\logs 에 저장되게 되니, 참조하면 된다.
위 오류는 server에 연결이 안되어서 발생한 오류였다.

정상적으로 load가 되면 우측 하단에 망치 아이콘과 함께 숫자가 보인다. 이게 MCP를 통해 사용할수 있는 명령어(MCP에서는 tools로 불린다)의 갯수다.
(filesystem만 세팅되어 있으면 숫자 11이 보이게 된다.)

망치 아이콘을 클릭하면 이제 사용할수 있는 명령어(tools)가 볼수 있으며 간단한 설명도 볼수 있다.
보다 자세한 것은 readme 를 참조하자.
https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem?activeTab=readme
@modelcontextprotocol/server-filesystem (www.npmjs.com)
MCP server for filesystem access. Latest version: 2025.1.14, last published: 2 months ago. Start using @modelcontextprotocol/server-filesystem in your project by running `npm i @modelcontextprotocol/server-filesystem`. There are 2 other projects in the npm
MCP 서버 실행

모든 준비가 끝났다. 이제 MCP 디렉토리에 새로이 디렉토리를 생성해 보자.
그럼 filesystem에서 create_directory를 실행하겠냐고 묻게 된다. 허용하면 다시 다른 권한이 필요하면 아래처럼 계속해서 권한요구를 하며, 허용을 해 주면 작업을 완료하게 된다.

성공적으로 디렉토리가 생성이 되었다.
별 다른 키워드없이 "MCP 디렉토리" 를 지정하니, MCP의 filesystem의 허용 디렉토리 명인지를 인지를 했다.
만일 인지를 못하거나 해서 MCP가 작동하지 않고, 일반 AI로써 답변을 한다면 "filesystem을 이용해서" 이런식으로 MCP 서버 식별자를 지칭하면 정상적으로 작동할 것이다.
하나를 더 해 보자.
이번에 mcp server 추천 리스트를 받아서 출력해 주고, 이것을 MCP/new 디렉토리에 pdf로 저장을 하는 것이다.

list_allowed_directories, create_directory, write_file 같은 과정을 거치면서 pdf파일이 정상적으로 저장이 되었다.

탐색기에서 해당 파일 생성된 것을 확인하고, 열어보니.. 음.. 한국이라서 설명부분을 깨져 있었다.
아직 이런 부분에서는 보완이 필요한거 같다. 이제 막 시작된 MCP지만, 금방 이런 문제는 해결될 것으로 보인다.
아니면 node쪽을 알고 있다면, 추가 패키지나 다른 MCP server와 연계해서 문제를 해결 할수도 있다.
다음에는 Brave api를 이용해서 실시간 검색을 추가해 보도록 하겠습니다.
그럼 이만..
끝.
<i>이 글은 블로그 이전으로 티스토리에서 가져온 글입니다.</i>



댓글
생각을 남겨주세요
댓글을 남기려면 로그인해 주세요.
댓글 로그인 설정이 아직 준비 중입니다.
아직 댓글이 없습니다.