Contents
see ListMCP (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 필드를 지원합니다. 이를 통해 풍부한 형식의 응답을 받을 수 있습니다.
참고 자료: