MCP·Skill 설치와 설정 실습 예시
난이도별 시나리오로 MCP 서버와 Agent Skill을 직접 설치·설정·공유해 보는 가이드 | ← 레퍼런스 문서로 돌아가기
-
stdio 서버 등록
claude mcp add뒤에 별칭을 주고,--다음에 실제로 실행할 명령과 인자를 적는다.--는 "여기부터는 서버 실행 명령"이라는 구분자라서, 서버에 넘기는 플래그가 Claude CLI 옵션과 섞이지 않는다. 마지막 인자로 접근을 허용할 경로를 전달한다.claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ./
-
등록 확인
등록된 서버 목록과 연결 상태를 본다. 방금 추가한
filesystem이 보이고, 상세를 보고 싶으면claude mcp get filesystem으로 실행 명령·스코프·transport를 확인한다.claude mcp list claude mcp get filesystem
-
대화에서 도구 사용
Claude Code 세션을 다시 열고, 자연어로 파일 작업을 요청한다. Claude가 filesystem 서버가 노출한 도구를 골라 호출하고, 결과를 답변에 반영한다.
이 폴더의 README.md를 읽고 무슨 프로젝트인지 한 줄로 요약해줘
initialize 요청/응답으로 protocolVersion과 capabilities를 협상한다. 이어 tools/list 로 filesystem 서버가 제공하는 도구 목록과 inputSchema를 받아 둔다. 사용자가 파일 작업을 요청하면 Claude가 적절한 도구를 골라 tools/call 로 실행하고, 그 출력이 답변에 들어간다. stdio transport이므로 서버는 로컬에서 별도 프로세스로 돌고, Client와는 표준 입출력으로 JSON-RPC 메시지를 주고받는다.
claude mcp list 의 연결 상태부터 본다. 스코프를 지정하지 않으면 기본은 local 이라 현재 프로젝트의 내 환경에만 등록된다. 다른 사람과 공유할 설정이 아니라면 이 기본값으로 충분하다. 로컬 서버는 파일을 직접 다루므로, 허용 경로는 꼭 필요한 디렉터리로만 좁히는 편이 안전하다.
-
프로젝트 .mcp.json 작성
저장소 루트에
.mcp.json을 만들고mcpServers아래에 서버를 정의한다. 비밀값은 파일에 그대로 적지 말고${VAR}형태로 환경변수를 참조하게 둔다. 이 파일은project스코프로 취급돼, 저장소를 받은 팀원이라면 누구나 같은 서버를 쓰게 된다.{ "mcpServers": { "github": { "command": "github-mcp-server", "args": ["stdio"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" } } } } -
프로젝트 Skill 최소 작성
.claude/skills/pr-writer/SKILL.md를 만든다. YAML frontmatter의name은 64자 이하 소문자·숫자·하이픈,description에는 "무엇을 + 언제 쓰는지"를 적어 트리거가 잘 잡히게 한다. 본문에는 팀의 PR 작성 절차를 마크다운으로 담는다.--- name: pr-writer description: 팀 컨벤션에 맞춰 PR 제목·본문을 작성한다. 사용자가 PR 초안, 풀리퀘스트 설명, 머지 요청 글을 요청할 때 사용한다. --- # PR 작성 규칙 1. 제목은 `[영역] 요약` 형식으로 쓴다. 2. 본문에 변경 이유 · 테스트 방법 · 영향 범위를 항상 포함한다. 3. 관련 이슈 번호를 `Closes #123` 로 연결한다.
-
git에 커밋해 공유
두 설정을 저장소에 올린다. 동료가
git pull후 Claude Code를 열면,.mcp.json의 서버는 신뢰 확인 뒤 활성화되고.claude/skills/의 Skill은 자동으로 인식된다.git add .mcp.json .claude/skills/pr-writer/SKILL.md git commit -m "chore: share github MCP + pr-writer skill" git push
.mcp.json 은 MCP의 표준 연결 정의를, .claude/skills/ 의 SKILL.md는 절차·규칙을 담당한다. 둘은 경쟁이 아니라 보완재다 — Skill이 "어떻게 일하는지"를 주입하고, MCP 서버가 "외부 GitHub에 어떻게 연결되는지"를 맡는다. Skill 본문은 progressive disclosure로 로드된다. 평소에는 name·description(약 100토큰)만 상시 떠 있고, 트리거가 걸릴 때 본문이 들어오므로 컨텍스트 비용이 작다. 설정을 코드와 함께 버전 관리하니, 새 팀원의 환경 셋업이 git pull 한 번으로 끝난다.
.mcp.json 이나 SKILL.md에 평문으로 적어 커밋하면 안 된다. 토큰·키는 위 예시처럼 ${GITHUB_PERSONAL_ACCESS_TOKEN} 같은 환경변수 참조로 두고, 실제 값은 각자의 셸 환경이나 .env 같은 비추적 파일로 주입한다. .mcp.json 의 서버는 저장소를 받은 사람의 환경에서 그대로 실행되므로, 출처가 신뢰되는 서버만 등록해야 한다.
-
원격 HTTP 서버 등록
--transport http로 원격 서버를 추가하고 엔드포인트 URL을 준다. stdio와 달리 명령을 실행하는 게 아니라, Streamable HTTP로 원격 서버에 연결한다. 서버가 OAuth를 요구하면 첫 연결에서 인증 흐름이 시작된다.claude mcp add --transport http team-saas https://mcp.example.com/mcp
-
OAuth 인증 완료
Claude Code가 인증 페이지로 안내하면 브라우저에서 로그인·동의한다. 발급된 토큰은 클라이언트가 보관하고 이후 요청의
Authorization헤더에 자동으로 실린다. 연결 상태는 목록으로 확인한다.claude mcp list claude mcp get team-saas
-
마켓플레이스 등록과 스킬 설치
스킬을 묶은 플러그인 저장소를 마켓플레이스로 추가한 뒤, 거기서 스킬 플러그인을 설치한다. 설치된 스킬은 다른 Skill과 동일하게 트리거되어, 조직 표준 절차가 모든 구성원에게 일관되게 적용된다.
/plugin marketplace add our-org/claude-skills /plugin install reporting-suite@our-org
Authorization: Bearer 헤더에 실어 tools/call 등을 보낸다. 이 방식은 키를 설정 파일에 직접 두지 않아 자격증명 노출 위험을 줄인다. 한편 플러그인 스킬은 폴더 복사 대신 마켓플레이스 → 설치 경로로 배포돼, 버전 갱신과 회수가 쉬워진다. 원격 MCP가 외부 연결을, 플러그인 스킬이 내부 절차를 맡아 서로를 보완한다.
npx @modelcontextprotocol/inspector 로 원격 서버의 tools/resources/prompts를 먼저 점검하면 현장 디버깅을 줄일 수 있다.
Claude Docs · Claude Code 2026-06 기준 | 2026년 6월 27일 작성
← 설치·설정 레퍼런스