소개
성장피터님이 보내주신 MCP관련 노마드 코더 유튜브 영상을 보다가,
postgreSQL MCP를 사용해보고 싶다는 생각이 들었습니다.
(PostgreSQL은 mySQL과 비슷한 관계형 데이터베이스(RDBMS)의 일종이라고 생각하시면 됩니다.)
https://youtu.be/szUo30BOZlo?si=VkkvK8IQvlgOQ8na
Claude한테 데이터베이스에 접근할 수 있는 권한을 주면,
- 개발자들은 개발을 더 쉽게 할 수 있지 않을까? (DB 테이블 설계/생성/테스트데이터 생성)
- 비개발자들은 SQL을 몰라도 자연어로 질의해서 database에서 원하는 정보를 찾거나 데이터 시각화/분석을 할 수 있지 않을까?
생각이 들었고, 한번 Claude에 database MCP를 연결해 봤습니다.
실제로 당근마켓에서는 Text2SQL(자연어를 SQL로 바꿔주는 것)을 이용하여 비개발 직군(PM, 마케팅 팀, 서비스 기획자, 운영팀)에서 자유롭게 당근마켓 데이터에 접근해서 인사이트를 얻을 수 있게 한다고 합니다!
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
Docker로 PostgreSQL 띄우기
도커를 사용하지 않고 직접 로컬에서 설치해서 DB를 띄워도 되지만, 저는 도커를 사용해서 로컬에서 PostgreSQL database를 띄웠습니다.
윈도우환경이라 도커 데스크 탑에서 진행했습니다.
도커 데스크탑 설치후, Postgres 이미지를 받고 컨테이너 띄우기
아래 명령어 실행하여 도커에 postgres container 띄우기
docker run -d \ --name postgres-container \ -e POSTGRES_USER=testuser \ -e POSTGRES_PASSWORD=testpass \ -e POSTGRES_DB=testdb \ -v C:/Users/Laura/workspace/postgres-data:/var/lib/postgresql/data \ -p 5432:5432 \도커 컨테이너에 접속해서 postgres 접속되는지 확인
docker ps명령어로 도커가 잘 떠있나 확인도커로 들어가서 db 조회
docker exec -it postgresql-container bash #db 접속 psql -h 127.0.0.1 -p 5432 -U testuser -d testdb #db 목록 조회 \l #testdb 사용 \c testdb #testdb의 테이블 조회 \dt #테이블이 아무것도 없는 빈 데이터베이스 조회되면 성공
로컬에서 postgreSQL 띄우기 성공!
Database MCP 띄우기
아래 mcp server 코드를 git 에서 클론후, README를 참고하여 서버 띄우기
https://github.com/executeautomation/mcp-database-server
node dist/src/index.js --postgresql --host 127.0.0.1 --database testdb --user testuser --password testpass
Claude 와 Database MCP 연결
Claude 데스크탑 앱에서 파일 > 설정 > 개발자 > 설정 편집 클릭
claude_desktop_config.json열어서 mcpServer에 postsql 추가
Claude + posrgresql mcp연결 완료!
Claude가 제가 로컬에서 띄운 DB에 접근할 수 있는 상태가 되었습니다!
일단 비어있는 DB라서, 간단하게 온라인 쇼핑몰에서 사용할 DB 스키마를 만들어보겠습니다.