취미/프로그래밍

Postgres MCP 연결해서 데이터 뽑기

Anything Doing OK 2025. 6. 4. 14:47

1. MCP 기초

https://www.youtube.com/watch?v=fkqXQOjj8cA  

12분 정도까지 보면서 MCP 기초 학습하기

 

2.MCP 설정 JSON 만들기

 

https://smithery.ai/server/@smithery-ai/postgres 

 

PostgreSQL MCP Server | Smithery

 

smithery.ai

으로 접속하여 우측의 JSON 클릭 

 

해당 정보를 작성해주고 첫번째 모자이크에 DB 비밀번호 맨뒤 '/'뒤에 에 접속하고자하는 DB명

ex ) postgresql://postgres:password@localhost:5432/databasename < 해당형식이된다.

 

"postgres": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@smithery/cli@latest",
        "run",
        "@smithery-ai/postgres",
        "--key",
        "**************",
        "--profile",
        "**************"
      ]
    }

제공받은 JSON 파일을 

claude_desktop_config.json 에 붙여준다. 

*** 에는 실제 제공받은 key 가 있을 것

이후 클로드 데스크탑 재실행

 

 

3. 프롬프트 작성

 

프롬프트로 

' DB 에서 user 중에 john 이라는 이름을 포함한 사용자를 찾아줘 ' 라고 요청을 작성하면 

{ `sql`: `SELECT * FROM users WHERE name ILIKE '%john%'`
이런식으로 스스로 쿼리를 DB 에 날린다.

명령어를 잘못날려서 name 이 없는 상황

 

그러면 알아서 클로드가

테이블의 구조를 분석하고 쿼리를 재생성해서 

"user_id": 1,
    "username": "john_doe",
    "email": "john.doe@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "010-1234-5678",
    "created_at": "2025-06-04T04:20:11.211Z",
    "is_active": true,
    "role": "customer"
  }

의 데이터를 찾아준다. 

실제로 DB 에서 쿼리를 날린 데이터와 같다.

 

 

 

4.사용후기

 

클로드처럼

쿼리 이렇게 날리면 DBA 한테 한대 맞을 거 같다. ILIKE '%john%' 라니.. 음...

도메인 지식이 중요하고 프롬프트의 중요성이 더욱 커질 것 같다. 

아마 프롬프트로 Table 의 구조 와 DB 구조를 분석 시킨 후 데이터를 뽑도록하여 성능을 높여야겠다.