본문 바로가기
IT/AI

Claude Desktop에서 Local MCP 서버 연동하기(feat. 로컬 및 원격 DB 접근)

by twofootdog 2026. 1. 9.
반응형

안녕하세요

업무 수행이나 코딩 수행 시 Claude LLM 잘 사용하고 계신가요?

물론 Claude에 질의를 하면 훌륭한 답을 제시해 주지만, 좀 더 스마트하게 쓰고 싶은 경우가 생깁니다(예를 들면 Claude를 통해 Github에 PR 요청을 보낸다거나, 내 로컬 DB 에 접근하여 테이블을 생성하거나 등)

그럴 때 사용하는 게 바로 MCP(Model Context Protocol) 입니다.

오늘은 그런 분들을 위해 MCP가 무엇인지 알아보고,  Claude Desktop에서 로컬 MCP를 활용하는 방법(Postgresql MCP를 활용한 실습)에 대해 공유 드리려고 합니다.

[목차여기]

 

 

 

반응형

 


1. MCP(Model Context Protocol) 란 무엇인가

MCP (Model Context Protocol), 이름만 들으면 뭔가 어렵고 복잡해 보이지만, 원리는 정말 간단합니다.

관련 글 : 2026.01.13 - [IT/AI] - MCP(Model Context Protocol) 정의 및 종류. 활용 사례(feat. 개발 생산성의 새로운 표준)

 

1-1) "AI를 위한 USB 포트"

여러분이 노트북에 마우스를 꽂든, 키보드를 꽂든, 프린터를 꽂든 USB 포트 하나면 다 해결되죠? 예전에는 마우스용 구멍, 프린터용 구멍이 다 달랐는데 말이에요.

MCP가 바로 AI 세상의 USB-C 포트입니다.

  • 과거: Claude에게 내 구글 캘린더를 보여주려면 '캘린더 연결 코드'를 짜야 하고, 회사 DB를 보여주려면 'DB 연결 코드'를 또 따로 짜야 했습니다. 
  • MCP 도입 후: 그냥 "MCP 표준"에 맞춰서 구멍(Server)만 뚫어놓으면, Claude든 다른 AI든 꽂기만 하면 바로 데이터를 읽고 쓸 수 있습니다.

1-2) 작동 원리 3요소

MCP는 딱 세 가지만 기억하면 됩니다.

  1. Host : Claude Desktop 앱처럼 AI가 살고 있는 집입니다.
  2. Client : Host 안에서 "야, 데이터 좀 가져와"라고 명령을 내리는 친구입니다.
  3. Server : 실제 내 컴퓨터의 파일이나 DB(SQLite, Postgres)를 지키고 있다가, 요청이 오면 데이터를 꺼내주는 역할을 합니다.

결론: MCP를 쓴다는 건, "고립되어 있던 똑똑한 AI(Claude)에게 내 컴퓨터의 데이터(파일, DB)를 만질 수 있는 '손'을 달아주는 것"과 같습니다.

 

 

 


2. 사전 준비(Prerequisite)

이번 MCP 활용 실습은 내 로컬 PC에 Postgresql MCP 환경 구성을 합니다. 때문에 다음과 같은 프로그램들이 설치되어 있어야 합니다.

 

 


3. MCP 설치(Local Server)

3-1) 설정 > 개발자 > 로컬MCP서버 구성 편집

Claude Deskop 실행 후 > 설정 > 개발자 > 로컬 MCP 서버 "구성편집" 버튼을 클릭합니다.

 

 


3-2) 로컬 MCP서버 구성편집

구성편집을 클릭하면 파일 열기 창이 뜨는데요. claude_desktop_config.json 파일을 더블 클릭해서 파일을 열어 줍니다.

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

 

 

 


3-3) claude_desktop_config.json 파일 수정

mcpServers 항목에 아래 내용을 입력해 줍니다.

참고 : https://github.com/modelcontextprotocol/servers-archived/tree/main/src/postgres

다른 내용은 동일하고, postgresql 정보에 "postgresql://[계정명]:[비밀번호]@localhost(호스트정보):[포트]/[DB명]" 을 입력하시면 됩니다.

claude_desktop_config.json : 

{
   "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:1234@localhost:5432/postgres"
      ]
    }
  },
  "preferences": {
    "menuBarEnabled": true  <- 이건 원래 있던 값입니다
  }
}

 

 


3-4) Claude Desktop 재실행

claude_desktop_config.json 파일 저장 후, Claude Deskop을 종료 후(그냥 종료만 하지 말고, 작업관리자에서 아예 종료를 시킵니다), 재 실행 시킵니다.

재 실행 후 설정 > 개발자 > 로컬 MCP 서버를 보시면, 조금 전 추가한 Local Postgresql MCP 서버가 추가된 것을 확인할 수 있습니다.

 

 

 

 


4. MCP 연동 실습

로컬 DB에 member, role, member_role이라는 3개의 테이블을 생성해 놓은 상태에서 실습을 진행해 보겠습니다.

 

4-1) MCP 연동 전

MCP 연동 전에는 Claude Desktop이 로컬에서 기동중인 Postgresql 서버에 접근이 불가능합니다. 때문에 Postgresql 테이블의 구조를 알 수 있는 명령어를 가이드 해주는 등 소극적으로 업무를 수행합니다.

 

 


4-2) MCP 연동 후 테이블 구조 출력

Local MCP 서버와 연동 후에는 아래와 같이 로컬에서 기동중인 DB에 대한 질의를 하면, Claude가 Local MCP 서버를 통해서 Local Postgresql DB에 접근해서 질의를 한 후, 테이블 구조를 출력하는 것을 확인할 수 있습니다.

 

 


4-3) 쿼리문 생성

조인 쿼리를 생성해달라고 질의할 경우 아래와 같이 쿼리 및 결과까지 뽑아줍니다.

 

 


4-4) ERD 생성

테이블 ERD를 그려달라고 하면, FK를 설정하지 않았지만 알아서 판단해서 ERD도 그려줍니다.

 

 


4-5) 로컬 MCP 서버를 통해 원격 DB 접속

다음으로 로컬 MCP 설정으로 원격 Postgresql DB 에 접근해서 DB 설정을 조회해 보겠습니다.

우선 claude_desktop_config.json 파일을 열고 mcpServers 항목의 DB 주소를 원격 주소로 변경 후 Claude Desktop 을 재기동합니다. 

claude_desktop_config.json : 

{
   "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:12345678@postgres.cklyw6tgbrhb.ap-northeast-2.rds.amazonaws.com:5432/postgres" <- 수정
      ]
    }
  },
  "preferences": {
    "menuBarEnabled": true 
  }
}

 

 


4-6) 재 질의

MCP 설정을 변경했으면, 다시 질의해 봅니다. 

구분을 위해 원격 DB에는 MEMBER_HIST라는 신규 테이블을 만들었습니다. 

ERD를 뽑아달라는 질의를 하면 정상적으로 ERD를 추출해줍니다. 

잘 안되네요

 

 


4-7) 오류 사유 확인

Claude Desktop의 Postgresql MCP 오류 로그는 아래 파일에서 확인 가능합니다.

  • Mac: ~/Library/Application Support/Claude/logs/mcp-server-postgres.log
  • Windows: %APPDATA%\Claude\logs\mcp-server-postgres.log

로그를 확인을 해보니 다음과 같은 오류가 발생했네요. SSL 없이 연결을 시도하다가 오류가 났습니다. 

2026-01-09T08:37:51.354Z [postgres] [info] Message from client: {"method":"tools/call","params":{"name":"query","arguments":{"sql":"SELECT version();"}},"jsonrpc":"2.0","id":4} { metadata: undefined }
2026-01-09T08:37:51.370Z [postgres] [info] Message from server: {"jsonrpc":"2.0","id":4,"error":{"code":-32603,"message":"no pg_hba.conf entry for host \"59.6.169.100\", user \"postgres\", database \"postgres\", no encryption"}} { metadata: undefined }

 

 


4-8) SSL 옵션 추가

claude_desktop_config.json 파일의 Postgresql 연동 URL에 SSL 설정을 추가 후 Claude Desktop을 재기동해줍니다.

  • URL 끝에 ?sslmode=require 추가

claude_desktop_config.json : 

{
   "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:12345678@postgres.cklyw6tgbrhb.ap-northeast-2.rds.amazonaws.com:5432/postgres?sslmode=require" <- 수정
      ]
    }
  },
  "preferences": {
    "menuBarEnabled": true 
  }
}

 

오류 로그가 바뀌었습니다. Postgresql MCP 서버에서 Postgresql DB 로 SSL 접근 시 사용하는 인증서를 신뢰하지 못하는 거 같습니다. Node에서 사용하는 인증서가 문제인 거 같습니다.

2026-01-09T08:47:53.376Z [postgres] [info] Message from server: {"jsonrpc":"2.0","id":4,"error":{"code":-32603,"message":"self-signed certificate in certificate chain"}} { metadata: undefined }

 

 


4-9) Node 인증서 옵션 수정

claude_desktop_config.json 파일의 인증서 옵션 설정을 추가 후 Claude Desktop을 재기동해줍니다. (※ 해당 옵션은 인증서 유효성 회피 옵션이므로 운영기에서 사용은 자제하는게 좋습니다)

  • "env" : { "NODE_TLS_REJECT_UNAUTHORIZED": "0" } 추가

claude_desktop_config.json : 

{
   "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:12345678@postgres.cklyw6tgbrhb.ap-northeast-2.rds.amazonaws.com:5432/postgres?sslmode=require"
      ],
      "env": {
         "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  },
  "preferences": {
    "menuBarEnabled": true 
  }
}

 

 


4-10) Node 인증서 옵션 수정 후 재 질의

재 질의를 하면 로컬 Postgresql MCP 서버를 통해서 원격 DB에 접속해서 응답을 해주는 것을 확인할 수 있습니다. 성공!!!!

 

 

 

 


5. 마치며

이것으로 Claude Desktop 에서 Local MCP 서버를 통해서 Local DB 및 원격 DB 접근하는 방법에 대해 알아보았습니다.

하지만 이렇게 연동한다고 Claude Code CLI에서는 MCP 연동이 불가능하며, 별도 설정이 필요합니다.

다음 글에서는 Claude Code CLI를 통해서 MCP 서버 연동을 하는 실습을 하도록 하겠습니다.

 

 

 

 

 

 

 

 


6. 참고자료

 

반응형

댓글