MCP·Skill 설치와 설정 실습 예시

난이도별 시나리오로 MCP 서버와 Agent Skill을 직접 설치·설정·공유해 보는 가이드  |  ← 레퍼런스 문서로 돌아가기

대상 버전/범위Claude Docs · Claude Code 2026-06 기준 (MCP 스펙 2025-11-25 / 프로토콜 2025-06-18)
이 파일의 목적레퍼런스에 정리된 설치 명령과 설정 키를, 따라 하면 그대로 재현되는 실습 시나리오로 보여줍니다
레퍼런스 문서install_Manual.html — 각 시나리오에서 링크로 연결됩니다
작성일2026년 6월 27일
● 초급 Getting Started CLI 한 줄로 첫 MCP 서버를 붙이고, 대화에서 도구가 동작하는지 확인하는 단계
G-1 초급 filesystem MCP 서버를 Claude Code에 추가
MCP를 처음 써 보는 개발자가, Claude Code가 특정 프로젝트 폴더의 파일을 직접 읽고 쓸 수 있게 만들고 싶다. 별도 서버 코드를 작성하지 않고, Anthropic이 제공하는 표준 filesystem 서버를 stdio 방식으로 붙여 본다. 작업 디렉터리는 현재 프로젝트 루트라고 가정한다.
단계별 실행
  1. stdio 서버 등록

    claude mcp add 뒤에 별칭을 주고, -- 다음에 실제로 실행할 명령과 인자를 적는다. -- 는 "여기부터는 서버 실행 명령"이라는 구분자라서, 서버에 넘기는 플래그가 Claude CLI 옵션과 섞이지 않는다. 마지막 인자로 접근을 허용할 경로를 전달한다.

    claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ./
  2. 등록 확인

    등록된 서버 목록과 연결 상태를 본다. 방금 추가한 filesystem 이 보이고, 상세를 보고 싶으면 claude mcp get filesystem 으로 실행 명령·스코프·transport를 확인한다.

    claude mcp list
    claude mcp get filesystem
  3. 대화에서 도구 사용

    Claude Code 세션을 다시 열고, 자연어로 파일 작업을 요청한다. Claude가 filesystem 서버가 노출한 도구를 골라 호출하고, 결과를 답변에 반영한다.

    이 폴더의 README.md를 읽고 무슨 프로젝트인지 한 줄로 요약해줘
Claude Code(Host)는 등록된 서버마다 1:1로 MCP Client를 띄우고, 연결 직후 initialize 요청/응답으로 protocolVersion과 capabilities를 협상한다. 이어 tools/list 로 filesystem 서버가 제공하는 도구 목록과 inputSchema를 받아 둔다. 사용자가 파일 작업을 요청하면 Claude가 적절한 도구를 골라 tools/call 로 실행하고, 그 출력이 답변에 들어간다. stdio transport이므로 서버는 로컬에서 별도 프로세스로 돌고, Client와는 표준 입출력으로 JSON-RPC 메시지를 주고받는다.
도구가 동작하지 않으면 먼저 claude mcp list 의 연결 상태부터 본다. 스코프를 지정하지 않으면 기본은 local 이라 현재 프로젝트의 내 환경에만 등록된다. 다른 사람과 공유할 설정이 아니라면 이 기본값으로 충분하다. 로컬 서버는 파일을 직접 다루므로, 허용 경로는 꼭 필요한 디렉터리로만 좁히는 편이 안전하다.
● 중급 Daily Workflow 팀 저장소에 설정을 커밋해 MCP 서버와 Skill을 동료 전체가 공유하는 워크플로우
D-1 중급 팀과 공유하는 .mcp.json + 프로젝트 Skill
같은 저장소에서 일하는 팀원 모두가 동일한 GitHub MCP 서버와, 팀 내부 PR 작성 규칙을 담은 Skill을 쓰게 하고 싶다. 각자 CLI로 따로 설정하는 대신, 프로젝트 루트에 설정 파일을 두고 git에 커밋해 한 번에 배포한다. Node.js와 Claude Code가 깔린 환경을 전제한다.
단계별 실행
  1. 프로젝트 .mcp.json 작성

    저장소 루트에 .mcp.json 을 만들고 mcpServers 아래에 서버를 정의한다. 비밀값은 파일에 그대로 적지 말고 ${VAR} 형태로 환경변수를 참조하게 둔다. 이 파일은 project 스코프로 취급돼, 저장소를 받은 팀원이라면 누구나 같은 서버를 쓰게 된다.

    {
      "mcpServers": {
        "github": {
          "command": "github-mcp-server",
          "args": ["stdio"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
          }
        }
      }
    }
  2. 프로젝트 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` 로 연결한다.
  3. 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 의 서버는 저장소를 받은 사람의 환경에서 그대로 실행되므로, 출처가 신뢰되는 서버만 등록해야 한다.
● 고급 Power User OAuth 인증 원격 MCP 연결과 마켓플레이스 플러그인으로 스킬을 조직에 배포하는 단계
P-1 고급 원격 MCP(OAuth) 연결 + 플러그인 스킬 배포
팀이 운영하는 원격 SaaS의 MCP 엔드포인트를 Claude Code에 붙이되, API 키 하드코딩 대신 OAuth로 안전하게 인증하고 싶다. 동시에 내부에서 만든 여러 Skill을 마켓플레이스 플러그인 형태로 묶어 조직 전체에 배포한다. 원격 서버는 Streamable HTTP transport를 지원하고 OAuth를 요구한다고 전제한다.
단계별 실행
  1. 원격 HTTP 서버 등록

    --transport http 로 원격 서버를 추가하고 엔드포인트 URL을 준다. stdio와 달리 명령을 실행하는 게 아니라, Streamable HTTP로 원격 서버에 연결한다. 서버가 OAuth를 요구하면 첫 연결에서 인증 흐름이 시작된다.

    claude mcp add --transport http team-saas https://mcp.example.com/mcp
  2. OAuth 인증 완료

    Claude Code가 인증 페이지로 안내하면 브라우저에서 로그인·동의한다. 발급된 토큰은 클라이언트가 보관하고 이후 요청의 Authorization 헤더에 자동으로 실린다. 연결 상태는 목록으로 확인한다.

    claude mcp list
    claude mcp get team-saas
  3. 마켓플레이스 등록과 스킬 설치

    스킬을 묶은 플러그인 저장소를 마켓플레이스로 추가한 뒤, 거기서 스킬 플러그인을 설치한다. 설치된 스킬은 다른 Skill과 동일하게 트리거되어, 조직 표준 절차가 모든 구성원에게 일관되게 적용된다.

    /plugin marketplace add our-org/claude-skills
    /plugin install reporting-suite@our-org
OAuth 인증 흐름은 대략 다음 순서로 진행된다: ① 첫 연결 에서 클라이언트가 인증이 필요함을 감지 → ② 인가 요청 으로 브라우저에서 인증 서버 로그인·동의 화면을 연다 → ③ 콜백 으로 인가 코드를 받아 → ④ 토큰 교환 으로 액세스 토큰을 발급받는다 → ⑤ 이후 호출 마다 토큰을 Authorization: Bearer 헤더에 실어 tools/call 등을 보낸다. 이 방식은 키를 설정 파일에 직접 두지 않아 자격증명 노출 위험을 줄인다. 한편 플러그인 스킬은 폴더 복사 대신 마켓플레이스 → 설치 경로로 배포돼, 버전 갱신과 회수가 쉬워진다. 원격 MCP가 외부 연결을, 플러그인 스킬이 내부 절차를 맡아 서로를 보완한다.
불필요한 도구는 컨텍스트 비용을 키운다. 원격 서버가 많은 도구를 노출한다면, 실제로 쓰는 도구만 남기고 비활성화해 매 요청에 실리는 inputSchema 부담을 줄인다. 토큰 만료로 호출이 실패하면 재인증으로 토큰을 갱신한다. 배포 전에는 npx @modelcontextprotocol/inspector 로 원격 서버의 tools/resources/prompts를 먼저 점검하면 현장 디버깅을 줄일 수 있다.

Claude Docs · Claude Code 2026-06 기준 | 2026년 6월 27일 작성
← 설치·설정 레퍼런스