콘텐츠로 이동

MCP 통합

MCP(Model Context Protocol)는 Claude Code가 외부 데이터 소스와 서비스에 연결하기 위한 표준 프로토콜입니다. 파일시스템, 데이터베이스, GitHub, Slack 등 다양한 외부 시스템을 MCP 서버로 구현하여 Claude의 도구로 노출할 수 있습니다.

Claude Code ←→ MCP 프로토콜 ←→ MCP 서버 ←→ 외부 서비스
├── 파일시스템
├── PostgreSQL
├── GitHub API
└── Slack

MCP 서버가 제공하는 도구는 mcp__<서버명>__<도구명> 형식으로 Claude에게 노출됩니다.

mcp__filesystem__read_file
mcp__filesystem__write_file
mcp__github__create_pull_request
mcp__postgres__execute_query
mcp__slack__send_message

이 네이밍 규칙 덕분에 내장 도구와 MCP 도구를 명확히 구분할 수 있으며, 권한 설정에서도 MCP 도구만 선택적으로 제어할 수 있습니다.

| 전송 타입 | 설명 | 사용 사례 | |-----------|------|-----------| | stdio | 로컬 프로세스와 표준 입출력으로 통신 | 로컬 CLI 도구, 가장 일반적 | | HTTP | 원격 Streamable HTTP 서버 | 클라우드 서비스의 권장 전송 | | SSE | 기존 원격 서버 전송 | 폐기 예정, 가능한 경우 HTTP로 이전 | | WebSocket | 지속적인 양방향 연결 | 서버가 세션으로 외부 이벤트를 밀어 넣는 경우 |

// stdio 서버 예시 (로컬 프로세스)
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
}
}
}
// HTTP 서버 예시 (원격)
{
"mcpServers": {
"remote-api": {
"type": "http",
"url": "https://mcp.example.com/v1"
}
}
}

MCP 도구는 기본적으로 실행 전 사용자 승인이 필요합니다. Claude가 MCP 도구를 호출하려 할 때 권한 프롬프트가 표시됩니다.

| 응답 | 동작 | |------|------| | 허용 | 이번 한 번만 실행 허용 | | 거부 | 실행 차단, 에러 반환 | | 항상 허용 | 이후 동일 도구 자동 승인 |

settings.jsonpermissions.allow에 MCP 도구를 추가하면 자동으로 승인됩니다.

{
"permissions": {
"allow": [
"mcp__filesystem__read_file",
"mcp__github__*"
]
}
}
Terminal window
# MCP 서버 추가
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /home
# HTTP 서버 추가
claude mcp add --transport http my-api https://mcp.example.com/mcp
# 서버 목록 확인
claude mcp list
# 서버 제거
claude mcp remove filesystem

실행 중에는 /mcp 패널에서 연결 상태와 도구 수를 확인하고 원격 서버의 OAuth 인증을 진행할 수 있습니다. CLI에서는 claude mcp list, claude mcp get <name>, claude mcp remove <name>으로 구성을 관리합니다. 원격 서버가 끊기면 Claude Code는 제한된 횟수의 지수 백오프로 재연결을 시도합니다.

외부 서버는 읽어 온 콘텐츠를 통해 프롬프트 인젝션을 전달할 수 있습니다. Anthropic Directory의 검토된 커넥터를 포함해, 연결 전에 운영 주체·권한 범위·데이터 처리 정책을 직접 확인해야 합니다.