Claude Code 활용

Context7 MCP 사용법, Claude Code에 붙인 MCP 정리

AI 로컬 LLM 2026. 9. 22. 13:43

Claude Code에 MCP 서버를 이것저것 붙여 봤는데 1년 넘게 남은 건 회사 노트북에서 둘이고, 맥미니 쪽은 내가 붙인 게 아니라 플러그인과 계정 커넥터가 데려온 여섯이다. 붙였다가 뗀 것도 있다. 남은 것과 뗀 것, 그리고 각각에 붙은 사용 규칙을 적는다.

회사 노트북 첫 번째, Context7

회사 노트북의 첫 번째는 Context7이다. 라이브러리와 프레임워크의 최신 문서를 모델에게 넣어 주는 MCP다. 모델의 학습 시점 뒤에 바뀐 API를 옛 방식으로 짜는 문제를 줄인다.

규칙은 전역 CLAUDE.md에 이렇게 있다.

"문서가 필요한 작업(코드 생성, 설정, 버전별 차이, 마이그레이션, 예제 확인)에서는 요청 없이도 Context7을 먼저 쓴다. 저장소 안의 문서가 더 직접적이면 그걸 우선하고 Context7로 보강한다. 쓸 수 없거나 문서가 없으면 그 사실을 짧게 밝히고 진행한다."

마지막 문장이 중요하다. 조회가 실패했을 때 조용히 기억으로 짜는 걸 막는다. 하나 더 붙은 규칙은 코드 분석 에이전트가 "이 라이브러리는 이렇게 동작한다"는 외부 사실을 주장하면 적용 전에 Context7이나 웹으로 한 번 확인한다는 것이다. 에이전트의 주장도 문서로 검증한다.

두 번째, CodeGraph

두 번째는 CodeGraph다. tree-sitter로 코드를 파싱해 심볼, 호출 관계, 파일을 그래프로 만들어 두는 MCP다. 규칙의 핵심은 grep과 역할을 나눈 것이다. 정의 위치, 호출자, 변경 영향, 시그니처 같은 구조 질문은 그래프 도구로, 문자열 내용이나 주석이나 로그 메시지 같은 리터럴 검색만 grep으로. "X가 어떻게 동작해?" 같은 질문은 서브에이전트나 grep과 읽기의 반복 없이 컨텍스트 도구 한 번과 탐색 도구 두세 번으로 답하라고 적었다.

함정도 적어 뒀다.

  • 그래프는 파일 저장 뒤 0.5초쯤 지나 갱신되므로 수정 직후 같은 턴에서 다시 조회하지 말 것,
  • 그래프 결과는 파싱 기반이니 grep으로 재검증하지 말 것,
  • 인덱스가 없다고 나오면 만들지 먼저 물어볼 것.

이 규칙이 없을 때는 Claude가 그래프를 쓰고 나서 못 미더워 grep을 또 돌렸다. 두 배로 느렸다.

뗀 것, 브라우저 자동화 MCP

뗀 것은 브라우저 자동화 MCP다. 세션이 바뀌면 브라우저 연결이 죽어서 매번 다시 띄워야 했고, 메모리에 "대화 사이에 세션이 죽는다, 재시작 필요"라는 파일이 남았다. 결국 브라우저는 스크립트로 직접 움직이는 쪽이 안정적이었다.

지금 뭐가 붙어 있는지 확인하는 법

붙였다는 기억과 실제로 붙어 있는 것은 자주 어긋난다. 확인은 명령 하나다.

claude mcp list

맥미니에서 지금 돌리면 이렇게 나온다.

Checking MCP server health…

claude.ai Claude Docs: https://api.anthropic.com/v1/pages/mcp - ✔ Connected
claude.ai Cloudflare Developer Platform: https://bindings.mcp.cloudflare.com/mcp - ! Needs authentication
claude.ai Google Drive: https://drivemcp.googleapis.com/mcp/v1 - ✔ Connected
plugin:bkit:bkit-pdca: node .../servers/bkit-pdca-server/index.js - ✔ Connected
plugin:bkit:bkit-analysis: node .../servers/bkit-analysis-server/index.js - ✔ Connected
plugin:discord:discord: bun run --cwd .../discord/0.0.4 --silent start - ✔ Connected

이 출력에서 볼 것이 셋이다.

  • 출처가 세 가지로 갈린다. claude.ai로 시작하는 것은 계정에 연결한 커넥터, plugin:으로 시작하는 것은 플러그인을 깔 때 딸려온 것, 접두어가 없는 것이 내가 직접 붙인 것이다. 여섯 개 중 내가 손으로 붙인 건 하나도 없다 — 플러그인과 커넥터가 데려온 것들이다
  • ! Needs authentication은 고장이 아니다. 붙어는 있는데 로그인이 안 된 상태라는 뜻이다. 이 상태에서 모델은 그 도구를 부를 수 있다고 생각하고 부르다가 실패한다. 안 쓸 거면 지우는 게 낫다
  • 목록에 없으면 모델도 못 쓴다. "MCP를 붙였는데 안 쓴다"는 말의 절반은 실은 안 붙어 있는 경우다

붙이는 쪽도 명령이다. claude mcp add <이름> <실행 명령> 형태이고, --scope이 폴더에서만 쓸지, 이 계정 전체에서 쓸지를 정한다. 프로젝트 하나에서만 쓸 도구를 계정 전체에 붙여 두면 다른 작업에서도 도구 목록에 떠서 모델이 괜히 후보로 고려한다.

맥미니 쪽은 성격이 다르다

하나는 디스코드다. Claude Code를 디스코드 봇으로 쓰는 플러그인이 MCP 도구로 답장, 반응, 첨부 다운로드를 제공한다. 이 글도 그 경로로 지시받아 쓰고 있다.

다른 하나는 크롬 확장이다. 오늘 서치콘솔을 점검하는 데 썼는데, 화면 캡처는 페이지가 계속 로딩 중이라 전부 시간 초과였고 자바스크립트로 본문 텍스트를 읽는 방법만 됐다. 되는 방법을 찾으면 그것도 메모리로 남긴다. 붙어 있다는 것과 쓸 수 있다는 것도 다르다.

도구보다 규칙

정리하면 MCP는 붙이는 것보다 규칙이 일이다. 언제 쓰고, 언제 안 쓰고, 실패하면 어떻게 말하라는 세 줄이 CLAUDE.md에 없으면 도구는 있어도 안 쓰이거나 두 번 쓰인다.

※ 회사 노트북과 맥미니의 CLAUDE.md, 자동 메모리, 2026년 9월 16일 작업 기록을 근거로 썼다.

맥미니로 만드는 AI 홈서버 — 직접 돌려보고 씁니다