Claude·Cursor·VS Code 같은 AI 코딩 에이전트에 MCP 서버를 붙이면 에이전트가 파일을 읽고, 명령을 실행하고, 외부 API 를 부릅니다. 편한 만큼 에이전트에게 준 권한이 곧 공격 표면이 됩니다. 붙인 도구가 무엇을 할 수 있는지, 어디서 왔는지, 언제 바뀌었는지 — 세 가지를 점검하세요.
MCP 설정은 어디 있나
에이전트마다 위치가 다릅니다. 대표적인 곳입니다.
| 에이전트 | 설정 파일 |
|---|---|
| Claude 데스크톱 | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Code | %USERPROFILE%\.claude.json, 프로젝트의 .mcp.json |
| Cursor | %USERPROFILE%\.cursor\mcp.json, 프로젝트의 .cursor\mcp.json |
| VS Code | 사용자 mcp.json·settings.json, 프로젝트의 .vscode\mcp.json·.vscode\settings.json |
주목할 것은 프로젝트 폴더 안의 설정입니다. 남의 저장소를 git clone 하면 그 안의 MCP 설정도 같이 따라옵니다.
① 무엇을 할 수 있나 — 권한
- 셸·명령 실행 도구 — 가장 강한 권한입니다. 에이전트가 프롬프트 주입(웹페이지·이슈·문서 안에 숨긴 지시)에 속으면 그대로 명령이 실행됩니다.
- 파일 시스템 도구 — 허용 경로를
C:\전체나 사용자 폴더 전체로 두지 말고 작업 중인 프로젝트 폴더로 좁히세요. - 브라우저·네트워크 도구 — 로그인된 브라우저를 다루는 도구는 쿠키·세션에 닿습니다.
원칙은 최소 권한입니다. 지금 작업에 필요 없는 서버는 끄거나 지우세요.
② 어디서 왔나 — 출처
npx some-package·uvx some-package처럼 실행할 때마다 최신판을 내려받는 설정은, 그 패키지가 바뀌면 다음 실행부터 바뀐 코드가 돕니다. 가능하면 버전을 고정하세요([email protected]).- 이름이 유명 서버와 비슷하지만 철자가 다른 패키지(타이포스쿼팅)를 조심하세요.
- 공식 저장소·만든 사람이 분명한 서버만 씁니다.
③ 비밀값이 평문으로 들어 있지 않은가
설정 파일의 env 에 API 키·토큰을 그대로 적어 두는 경우가 많습니다. 이 파일은 백업·동기화·실수로 커밋되는 경로로 새어 나갑니다. 토큰은 권한을 최소로 만들고(읽기 전용, 특정 저장소만), 정기적으로 바꾸세요.
④ 받은 저장소의 설정을 믿지 않는다
프로젝트 설정에 들어 있는 MCP 서버를 자동으로 모두 허용하는 옵션(예: Claude Code 의 enableAllProjectMcpServers)을 켜 두면, 남의 저장소를 여는 순간 그 저장소가 정한 서버가 실행됩니다. 이 옵션은 끄고, 프로젝트 서버는 하나씩 확인한 뒤 허용하세요. 훅(hooks) 설정도 같습니다. 훅은 에이전트 동작마다 명령을 실행합니다.
⑤ 내부망에 열린 MCP 서버
HTTP 로 띄운 MCP 서버를 0.0.0.0 에 열어 두면 같은 Wi-Fi 의 다른 기기도 그 도구를 쓸 수 있습니다. 로컬에서만 쓴다면 127.0.0.1 에만 열고, 방화벽 인바운드 허용 규칙이 생기지 않았는지 확인하세요.
점검 목록
- 지금 안 쓰는 MCP 서버 제거
- 파일 도구 허용 경로 프로젝트 폴더로 한정
- 패키지 버전 고정
- 설정 속 토큰 최소 권한
- 프로젝트 MCP 자동 허용 꺼짐
- HTTP MCP 서버 127.0.0.1 에만
울타리 NEO 는 Claude·Cursor·VS Code·Zed·Codex 등의 MCP 설정을 읽어 셸·파일·네트워크 권한, 평문 토큰, 프로젝트 자동 허용, 내부망에 열린 서버를 보여 주고, 서버가 새로 붙거나 바뀌면 알려 줍니다. 설정 파일 속 토큰 값은 수집하지 않습니다.