Post

Claude Code와 MCP로 개발 환경 확장하기

Model Context Protocol을 활용해서 AI 개발 도구를 더 강력하게 만드는 방법

Claude Code란?

Claude Code는 Anthropic에서 만든 CLI 기반 AI 개발 도구임. 터미널에서 Claude와 대화하면서 코드를 작성하고, 파일을 읽고, Git 작업까지 할 수 있음.

기존 AI 코딩 도구들과 다른 점은 MCP(Model Context Protocol)를 지원한다는 것.


MCP가 뭔데?

MCP는 Anthropic에서 만든 AI와 외부 도구를 연결하는 표준 프로토콜임.

쉽게 말하면:

  • AI가 파일 시스템, 데이터베이스, API 등과 직접 소통할 수 있게 해주는 규격
  • 플러그인 시스템처럼 필요한 기능을 모듈 형태로 추가 가능
  • 한 번 만든 MCP 서버는 Claude Code뿐만 아니라 다른 MCP 호환 도구에서도 재사용 가능

MCP의 핵심 개념

MCP Server: 특정 기능을 제공하는 서비스 MCP Client: MCP 서버를 사용하는 애플리케이션 (Claude Code 같은) Tools: AI가 호출할 수 있는 함수들 Resources: AI가 접근할 수 있는 데이터나 컨텍스트


왜 좋은가?

1. 확장성

기본적으로 Claude Code는 파일 읽기/쓰기, Bash 실행 등의 기능을 제공함. 하지만 MCP를 사용하면 다음과 같은 것들이 가능해짐:

  • Slack MCP: Claude가 직접 Slack 메시지 보내기
  • GitHub MCP: 이슈 생성, PR 리뷰, 코드 검색
  • Postgres MCP: 데이터베이스 쿼리 실행 및 스키마 확인
  • AWS MCP: S3, DynamoDB 등 AWS 리소스 관리

2. 재사용성

한 번 만든 MCP 서버는 어디서든 사용 가능함. 예를 들어, 회사에서 사용하는 내부 API를 MCP로 만들면:

  • Claude Code에서 사용 가능
  • Claude Desktop에서 사용 가능
  • 다른 팀원들도 동일한 MCP 서버 재사용 가능

3. 표준화

각 AI 도구마다 다른 플러그인 시스템을 배울 필요가 없음. MCP는 표준 프로토콜이라 한 번 배우면 끝.


실제 사용 예시

GitHub MCP 연결하기

  1. MCP 서버 설치
    1
    
    npm install -g @modelcontextprotocol/server-github
    
  2. Claude Code 설정 파일 수정

    ~/.config/claude-code/config.json에 다음 추가:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_TOKEN": "your-github-token"
          }
        }
      }
    }
    
  3. Claude Code에서 사용
    1
    
    claude code
    

    이제 Claude에게 “최근 이슈 3개 보여줘” 라고 하면 GitHub API를 직접 호출해서 결과를 보여줌.

실제로 할 수 있는 것들

  • “PR #123에 리뷰 코멘트 남겨줘”
  • “main 브랜치의 최근 커밋 10개 분석해줘”
  • “이 레포지토리에서 TODO 주석 찾아서 이슈로 만들어줘”

모두 Claude가 MCP를 통해 자동으로 처리함.


직접 MCP 서버 만들기

회사 내부 도구나 자주 사용하는 API를 MCP로 만들 수도 있음.

간단한 예시: 날씨 API MCP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
  name: "weather-server",
  version: "1.0.0",
});

server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "get_weather",
    description: "특정 도시의 현재 날씨를 가져옵니다",
    inputSchema: {
      type: "object",
      properties: {
        city: { type: "string", description: "도시 이름" }
      },
      required: ["city"]
    }
  }]
}));

server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "get_weather") {
    const city = request.params.arguments.city;
    // 실제로는 날씨 API 호출
    const weather = await fetchWeather(city);
    return {
      content: [{
        type: "text",
        text: `${city}의 현재 날씨: ${weather}`
      }]
    };
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

이제 Claude에게 “서울 날씨 알려줘” 라고 하면 자동으로 이 MCP 서버를 호출함.


주의할 점

1. 보안

MCP 서버는 강력한 권한을 가질 수 있음. 특히 API 토큰이나 데이터베이스 접근 권한을 다룰 때는 주의해야 함.

  • 환경 변수로 민감한 정보 관리
  • 필요한 최소 권한만 부여
  • 공개 저장소에 토큰 업로드 금지

2. 성능

MCP 서버가 느리면 Claude의 응답도 느려짐. 특히 데이터베이스 쿼리나 외부 API 호출 시 타임아웃 설정 필수.

3. 호환성

MCP는 비교적 새로운 프로토콜이라 아직 변경 가능성이 있음. 공식 문서를 자주 확인하는 게 좋음.


결론

Claude Code + MCP 조합은 AI 개발 도구의 새로운 가능성을 보여줌.

기존에는:

  • AI에게 “이 파일 읽고 수정해줘” 정도만 가능

지금은:

  • AI에게 “Slack에 배포 완료 메시지 보내고, Jira 티켓 닫고, S3에 빌드 결과 업로드해줘” 가능

MCP는 표준 프로토콜이라 한 번 만들어두면 계속 재사용 가능함. 회사 내부 도구나 자주 사용하는 워크플로우를 MCP로 만들어두면 생산성이 크게 향상됨.

앞으로 더 많은 MCP 서버들이 나올 것으로 예상되며, AI 개발 도구 생태계의 핵심이 될 가능성이 높음.

한번 써보시길 바랍니다! 😀

This post is licensed under CC BY 4.0 by the author.