MCP (Model Context Protocol): 외부 도구 연결의 핵심

MCP는 Claude Code를 외부 도구, 데이터베이스, API 및 기타 시스템에 연결하는 범용 어댑터입니다. Claude Code는 MCP 서버와 클라이언트 역할을 모두 수행할 수 있습니다.

MCP란?

  • 정의: Model Context Protocol - AI 모델이 외부 시스템과 통신하기 위한 표준 프로토콜
  • 역할: GitHub, JIRA, Slack, 데이터베이스 등 외부 시스템과의 연결 제공
  • 특징: 외부 도구를 슬래시 명령어로 노출하여 Claude가 사용할 수 있게 함

MCP 서버 추가 방법

CLI를 통한 추가

# Playwright MCP 서버 추가
claude mcp add playwright npx @playwright/mcp@latest

# GitHub MCP 서버 추가
claude mcp add github npx @modelcontextprotocol/server-github

# SQLite MCP 서버 추가
claude mcp add sqlite npx @modelcontextprotocol/server-sqlite

# 현재 연결된 MCP 서버 목록 확인
claude mcp list

# MCP 서버 제거
claude mcp remove playwright

설정 파일을 통한 추가

// ~/.claude/settings.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    },
    "postgres": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/server-postgres",
        "postgresql://user:pass@localhost:5432/mydb"
      ]
    },
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

주요 MCP 서버

서버용도설치 명령
GitHub이슈, PR 관리npx @modelcontextprotocol/server-github
Playwright브라우저 자동화npx @playwright/mcp@latest
PostgreSQL데이터베이스 쿼리npx @modelcontextprotocol/server-postgres
SQLite로컬 DB 쿼리npx @modelcontextprotocol/server-sqlite
Filesystem파일 시스템 접근npx @modelcontextprotocol/server-filesystem
Slack슬랙 메시지 전송npx @modelcontextprotocol/server-slack

MCP 도구 사용

MCP 서버가 추가되면 해당 도구가 슬래시 명령어로 사용 가능합니다:

# Playwright 예시
/mcp__playwright__navigate {"url": "https://example.com"}
/mcp__playwright__screenshot {"name": "homepage"}
/mcp__playwright__click {"selector": "#login-button"}

# GitHub 예시  
/mcp__github__create_issue {"title": "버그 수정", "body": "상세 내용..."}
/mcp__github__list_issues {"state": "open"}

# PostgreSQL 예시
/mcp__postgres__query {"sql": "SELECT * FROM users LIMIT 10"}

MCP와 서브에이전트

  • 기본 동작: 서브에이전트는 메인 대화의 모든 도구(MCP 포함)를 상속
  • 제한사항: 백그라운드 서브에이전트에서는 MCP 도구 사용 불가
  • 권장사항: MCP 도구가 필요한 작업은 포그라운드에서 실행

MCP 컨텍스트 관리

각 MCP 서버는 컨텍스트 윈도우 공간을 소비합니다:

# 컨텍스트 사용량 확인
/context

# 사용하지 않는 MCP 서버 제거로 컨텍스트 절약
claude mcp remove unused-server

MCP 아키텍처 권장사항

MCP를 보안 데이터 게이트웨이로 활용

# 권장: 2-3개의 고수준 도구로 MCP 설계
- download_raw_data(filters...)      # 데이터 조회
- take_sensitive_gated_action(args...)  # 민감한 작업 (승인 필요)
- execute_code_in_environment(code...)  # 격리된 환경 실행

상태 관리

  • Stateful 환경: MCP 사용 (예: Playwright 브라우저 세션)
  • Stateless 작업: 단순 CLI 도구로 마이그레이션 권장

MCP 서버 상태 확인

# MCP 서버 상태 확인 (v2.0.47+)
claude mcp list

# 출력 예시:
# ✓ github     - healthy
# ✓ playwright - healthy  
# ✗ postgres   - connection failed

MCP vs 다른 기능 비교

상황권장 도구이유
외부 API 연동MCP표준화된 인터페이스
로컬 스크립트 실행Bash더 간단함
브라우저 자동화MCP (Playwright)상태 유지 필요
데이터베이스 쿼리MCP연결 관리 용이
파일 작업기본 도구 (Read/Write)내장 기능 활용

실전 워크플로우 예시

JIRA → 구현 → JIRA 업데이트

# 1. JIRA에서 티켓 읽기
"JIRA-123 티켓을 확인하고 구현해줘"

# Claude가 자동으로:
# - /mcp__jira__get_issue로 티켓 조회
# - 요구사항 분석
# - 코드 구현
# - /mcp__jira__update_issue로 상태 업데이트

GitHub Issue → PR 생성

# 1. GitHub 이슈 확인
"GitHub issue #45를 해결해줘"

# Claude가 자동으로:
# - /mcp__github__get_issue로 이슈 조회
# - 코드 수정
# - git commit/push
# - /mcp__github__create_pull_request로 PR 생성

MCP structuredContent 지원

Claude Code는 MCP 도구 응답의 structuredContent 필드를 지원합니다. 이를 통해 풍부한 형식의 응답을 받을 수 있습니다.

참고 자료: