콘텐츠로 이동

03-실전

필요한 통합이 있다.
├─ Anthropic Registry에 있나?
│ └─ 예 → 사용. (벤더가 보안 책임)
├─ 벤더 공식 MCP가 있나?
│ └─ 예 → 사용. URL/스코프 확인.
├─ 공식 reference 7종 안에 있나?
│ └─ 예 → 교육용. fork → hardening → 사내 배포
└─ awesome-mcp-servers / glama.ai 검색
└─ 후보 발견 → ↓ 검증 5단계

검증 5단계 (커뮤니티 서버 채택 전)

섹션 제목: “검증 5단계 (커뮤니티 서버 채택 전)”
  1. 출처 — 깃허브 owner가 누구인가? 회사 공식? 개인? 마지막 커밋 90일 이내?
  2. 권한 표면(Permission surface) — 어떤 도구가 노출되는가? 쓰기/삭제/네트워크 호출이 있나?
  3. 자격 증명 — 환경변수 목록, 토큰 스코프, 만료
  4. 전송 — stdio면 로컬 격리, HTTP면 Origin 검증·HTTPS 강제 여부
  5. 취약점 이력 — Issues/Security tab, npm/pip audit, SSRF·토큰 패스스루 점검

→ 5개 중 하나라도 실패하면 fork 후 사내 보안 리뷰.

팀 공유는 project 스코프(<repo>/.mcp.json)에 둔다 — Git에 커밋된다.

{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
},
"github": {
"transport": "http",
"url": "https://api.githubcopilot.com/mcp"
},
"notion": {
"transport": "http",
"url": "https://mcp.notion.com/mcp"
}
}
}

→ 동작하는 예제는 examples/mcp.json 참고. 첫 사용 시 Claude Code가 사용자 동의를 묻는다(보안 기본값). 동의를 초기화하려면 claude mcp reset-project-choicesmcp.md.

서버 여러 개를 붙이면 LLM의 컨텍스트가 도구 설명만으로 가득 찬다. 해결책:

  • 카탈로그 컬링(Culling): 작업별로 필요한 서버만 활성화. Claude Code는 /mcp 패널에서 끄고 켤 수 있다.
  • 역할별 분리: planner 서브에이전트는 GitHub만, executor는 Filesystem만 — part7/04 참고.
  • 메모리 서버는 항상 켜두기: 컨텍스트 절약 효과가 가장 큼.