Claude Code · 규칙과 확장

MCP — 외부 도구 연결

복사해 붙여넣던 데이터를 Claude가 직접 읽고 씁니다.

  • 1MCP가 무엇인지 안다
  • 2모델은 바깥, 호출은 내 PC임을 안다
  • 3stdio와 원격의 데이터 흐름을 구분한다
읽는 시간 15분실습 15분선수 B-4
자세히 보기
① 서버 추가claude mcp add한 줄이면 끝② 도구 등록자동 인식Claude가 알아본다③ 사용대화로 요청복사·붙여넣기 없이손으로 옮기던 데이터를 Claude가 직접 읽고 씁니다
개념확장 3종

무엇을 어디에 담을 것인가

규칙과 능력을 주는 방법은 하나가 아닙니다. 항상 알아야 할 사실, 외부 시스템 연결, 가끔 필요한 절차, 반드시 지켜야 할 통제는 각각 다른 곳에 담아야 합니다.

도구담는 것로드 시점강제력
CLAUDE.md항상 알아야 할 사실세션 시작 시 항상맥락 — 확률적
MCP외부 시스템 연결서버가 붙어 있는 동안도구 — 실제 동작
스킬절차적 작업호출될 때만맥락 — 확률적
반드시 지킬 통제도구 호출 시 자동코드 — 100% 확정
이번 세 편B-5 MCP바깥과 연결하고, B-6 스킬절차를 접어두고, B-7 훅규칙을 강제합니다.
MCP무엇인가

외부 도구를 Claude에 붙이기

MCP(Model Context Protocol)는 Claude를 외부 시스템에 연결하는 공개 표준입니다. 지라 이슈를 복사해 붙여넣고, 결과를 다시 옮겨 적던 일을 Claude가 직접 합니다.

붙일 때를 아는 법같은 도구에서 데이터를 복사해 채팅에 붙여넣고 있다면 — 그게 MCP로 연결할 신호입니다.
연결 대상할 수 있게 되는 일
이슈 트래커"ENG-4521에 적힌 기능을 구현하고 PR 올려줘"
모니터링"어제 오류가 늘어난 원인을 지표에서 찾아줘"
데이터베이스"이 기능을 쓴 사용자 10명을 뽑아줘"
문서 사이트"훅 설정하는 법을 공식 문서에서 찾아줘"
경로데이터가 지나가는 길

모델은 바깥에 있습니다

"Claude가 내 DB를 직접 읽는다"는 말은 편의상의 비유입니다. 실제로 내 PC에서 도는 것은 Claude Code이고, 모델은 Anthropic 서버 — 바깥에 있습니다. MCP 서버를 실제로 부르는 손도 모델이 아니라 내 PC입니다.

내 PC바깥 — 인터넷 너머Claude CodeMCP 호스트 — 실제 호출자= 내 PCClaude 모델Anthropic 서버= 바깥① 요청 전송② 호출 지시MCP 서버stdio는 이 PC, http는 원격⑥ 결과까지 전송④ 서버가 DB · 지라 · 파일에 접속모델은 바깥에 있고, MCP 서버를 부르는 쪽은 내 PC입니다

도구를 한 번 쓸 때 데이터는 이렇게 내 PC와 바깥을 왕복합니다.

순서어디서무슨 일이 일어나나
내 PC
Claude Code
내 말과 문맥, 그리고 붙어 있는 도구 목록(이름 · 설명 · 입력 스키마)을 묶어 Anthropic API로 보냅니다
바깥
모델
도구가 필요하다고 판단하면 "이 도구를 이 인자로 불러라"는 지시만 돌려줍니다. 모델이 직접 부르지 않습니다
내 PC
Claude Code
그 지시를 받아 실제 호출을 실행합니다. 권한 승인 창도, 훅도 여기서 걸립니다
MCP 서버서버가 DB · 지라 · 파일에 접속해 결과를 만듭니다. stdio이 PC 안의 프로세스, http원격 서버입니다
내 PC
Claude Code
결과를 받아 대화에 이어 붙입니다
바깥
모델
①과 같은 경로로 결과까지 실려 다시 나갑니다. 이때 처음으로 모델이 결과를 봅니다

--transport http로 붙인 원격 서버라면 ④에서 한 번 더 밖으로 나갑니다 — 내 PC에서 그 서버로. 그 서버를 운영하는 쪽도 인자와 결과를 볼 수 있습니다. ④ 구간을 어디에 둘지는 다음 절에서 Oracle 예시로 봅니다.

한 문장내 PC에 있는 것은 Claude Code, 바깥에 있는 것은 모델. MCP 서버를 부르는 손은 언제나 내 PC입니다.

그래서 무엇이 밖으로 나가나

항목모델에게 가나
서버 접속 정보 — DB 비밀번호 · API 토큰아니오. 내 PC의 설정과 서버 안에만 있습니다
도구 이름 · 설명 · 입력 스키마예. 모델이 골라 쓸 수 있도록 요청에 함께 실립니다 (서버가 많으면 필요한 것만 골라 싣기도 합니다)
호출 인자예. ②에서 모델이 만든 값이니 당연합니다
도구가 돌려준 결과예. 전부. ⑥에서 그대로 실려 나갑니다
가장 흔한 오해"MCP 서버가 내 PC에서 도니까 데이터가 밖으로 안 나간다"는 틀렸습니다. 서버가 로컬인 것과 결과가 로컬에 머무는 것은 다른 얘기입니다. 사내 DB에서 뽑은 행은 ⑥에서 그대로 API 요청에 실립니다. 무엇을 조회하게 할지가 곧 무엇을 내보낼지입니다 — 0-3 안전하게 쓰는 기준.
훅이 통하는 이유실제 호출이 ③ — 내 PC에서 일어나기 때문에, B-7 훅PreToolUse가 그 사이에 끼어들어 호출 자체를 막을 수 있습니다. 바깥에서 도구가 실행된다면 불가능한 일입니다.
데이터 흐름Oracle MCP 예시

서버를 어디에 둘까 — stdio vs 원격

앞 절 ④ 구간을 확대한 그림입니다. 사내 Oracle DB를 조회하는 oracle-mcp를 만들었다고 해봅시다 — 서버를 어디에 두느냐에 따라 이 구간이 달라집니다. 아래 두 도식에는 모델이 나오지 않습니다. 모델은 앞 절에서 본 대로 바깥에 있고, 어느 쪽을 고르든 조회 결과는 그리로 나갑니다.

① stdio — 내 PC에서 프로세스로내 PC 안에서 모두 실행Claude Code내가 쓰는 곳oracle-mcp내 PC의 프로세스Oracle DB사내망stdioSQL*Net② 원격 HTTP — 서버에 두고 호출내 PC사내 · 클라우드 서버Claude Code내가 쓰는 곳oracle-mcp서버에서 실행Oracle DB사내망HTTPSSQL*Net파란 점 = 요청 · 주황 점 = 응답어느 쪽이든 조회 결과는 대화에 담겨 모델로 전송됩니다

① stdio — 내 PC에서 프로세스로

Claude Code가 내 PC에서 서버를 직접 실행합니다. 둘은 같은 컴퓨터 안에서 표준입출력으로 주고받고, DB 접속도 내 PC에서 나갑니다.

claude mcp add --transport stdio oracle -- node ./oracle-mcp/server.js
구간지나가는 것어디를 지나나
Claude Code ↔ oracle-mcp도구 호출 · 결과내 PC 안 (네트워크를 타지 않음)
oracle-mcp ↔ OracleSQL · 조회 결과내 PC → 사내망
접속 정보DB 계정 · 비밀번호내 PC에만 보관
이럴 때내 PC가 이미 사내망에 있고, DB 계정이 개인 계정이며, 나 혼자 쓰는 경우. 서버를 따로 띄울 필요가 없습니다.

② 원격 HTTP — 서버에 두고 호출

서버가 사내 서버나 클라우드에서 상시 실행되고, 내 PC는 HTTPS로 호출만 합니다. DB 접속은 그 서버에서 나갑니다.

claude mcp add --transport http oracle https://mcp.example.co.kr/oracle \
  --header "Authorization: Bearer $TOKEN"
구간지나가는 것어디를 지나나
Claude Code ↔ 서버도구 호출 · 결과내 PC → 네트워크 (HTTPS)
서버 ↔ OracleSQL · 조회 결과서버 → 사내망
접속 정보DB 계정 · 비밀번호서버에만 보관 (사용자는 모름)
이럴 때팀 전체가 같은 방식으로 조회해야 하고, DB 계정을 개인에게 나눠주지 않으려는 경우. 권한·감사 로그를 한 곳에서 관리할 수 있습니다.

둘 다 해당되는 것 — 결과는 모델로 갑니다

오해하기 쉬운 지점"로컬에서 돌리니 데이터가 밖으로 안 나간다"는 사실이 아닙니다. 조회 결과는 대화 문맥에 담겨 모델로 전송돼야 Claude가 그것을 보고 답할 수 있습니다.

stdio가 지켜주는 것은 DB 접속 자격증명과 DB 자체에 대한 접근 경로이지, 조회 결과의 비공개가 아닙니다. 그래서 민감한 테이블일수록 서버 쪽에서 아래를 통제해야 합니다.

통제방법
읽기 전용조회 전용 계정만 사용. INSERT · UPDATE · DELETE 권한 제거
범위 제한필요한 뷰·테이블만 노출. 전체 스키마를 열지 않기
건수 제한도구가 반환하는 행 수에 상한. 전체 덤프 방지
마스킹주민번호·연락처 등은 서버에서 가린 뒤 반환
기준모델에 보내도 되는 데이터인지를 먼저 정하세요. 전송 경로를 바꾸는 것으로는 해결되지 않습니다.
실습연결하기

서버 하나 붙여보기

아래는 Claude Code 공식 문서를 검색·조회하는 읽기 전용 서버입니다. 붙여두면 추측 대신 실제 문서를 읽고 답합니다.

claude mcp add --transport http claude-docs https://code.claude.com/docs/mcp
부분
mcp add서버를 등록
--transport http원격 HTTP 서버로 연결. 내 PC에서 프로세스를 띄우는 방식은 stdio
claude-docs내가 정하는 이름. 이후 목록과 도구 이름에 붙습니다
https://…서버 주소

등록됐는지 확인하고, 세션 안에서는 /mcp로 봅니다.

claude mcp list

저장 위치는 --scope로 정합니다 — 생략하면 나만, project.mcp.json에 저장돼 팀과 공유, user내 모든 프로젝트에 적용됩니다.

claude mcp add --scope project --transport http claude-docs https://code.claude.com/docs/mcp
신뢰MCP 서버의 도구는 내 데이터를 읽고 외부로 보낼 수 있습니다. 출처가 분명한 서버만 추가하고, 팀 공유(project)로 넣을 때는 더 신중하세요.
클로드코드 시작하기Claude Code · 규칙과 확장