githubEdit

Chapter 3. 바이브코딩으로 공공 MCP 자동 생성하고 에이전트 연결하기

바이브코딩(Vibe Coding)으로 서울시 공공데이터 API를 MCP(Model Context Protocol) 서버로 자동 생성하고, AI 에이전트와 연결하는 프로젝트입니다.

프로젝트 개요

이 프로젝트는 서울시 공공데이터 API를 MCP 서버로 변환하여 Claude와 같은 AI 에이전트가 실시간으로 서울시 공공데이터를 조회할 수 있도록 합니다.

공공데이터 API 예시

서울시에서 제공하는 다양한 공공데이터 중 이 프로젝트에서 다루는 서울시 공공데이터 예시입니다:

  • 문화 정보

    • 공공도서관 정보

    • 문화행사 정보

    • 문화시설 정보

    • 전시·공연 시설 현황

  • 도시 인프라

    • 공중화장실 위치정보

    • 주차장 운영정보

    • 공공자전거

    • 버스정류소 위치정보

    • 지하철 역사 정보

프로젝트 구조

기술 스택

핵심 기술

  • FastMCP 기반 서버 구조

  • Pydantic 설정 관리

  • 비동기 테스트 지원

  • Ruff 린팅 및 포매팅

  • Pyright 타입 체킹

  • GitHub 공개 패턴 준수

  • Apache 2.0 라이선스 적용

  • Changelog 자동 관리

패턴 준수

AWS Labs MCP 패턴을 따릅니다:

  • 패키지명: data-seoul-mcp.<domain>-mcp-server

  • 모듈명: data_seoul_mcp.<domain>_mcp_server

  • 스크립트명: data-seoul-mcp.<domain>-mcp-server

예시:

  • Input: CulturalEvents

  • Package: data-seoul-mcp.culturalevents-mcp-server

  • Module: data_seoul_mcp.culturalevents_mcp_server

빠른 시작 가이드

사전 요구사항

  • Python 3.11+

  • uv (Python 패키지 관리자)

  • Node.js 18+ (MCP Inspector용)

1. MCP 서버 생성

Cookiecutter 템플릿으로 새로운 MCP 서버 생성:

프롬프트 입력 예시:

2. 의존성 설치

생성된 디렉토리로 이동하여 의존성 설치:

3. 테스트 실행

테스트 실행

MCP Inspector로 테스트

4. Claude Desktop 연동

claude_desktop_config.json에 MCP 서버 추가:

API 구현 가이드

서울공공데이터 API 연동

server.py에서 서울시 API 연동 구현:

환경 변수 설정

.env 파일 생성:

템플릿 기능

주요 기능

  • FastMCP 기반 서버 구조

  • Pydantic 설정 관리

  • 비동기 테스트 지원

  • Ruff 린팅 및 포매팅

  • Pyright 타입 체킹

  • GitHub 공개 패턴 준수

  • Apache 2.0 라이선스 적용

  • Changelog 자동 관리

패턴 준수

AWS Labs MCP 패턴을 따릅니다:

  • 패키지명: data-seoul-mcp.<domain>-mcp-server

  • 모듈명: data_seoul_mcp.<domain>_mcp_server

  • 스크립트명: data-seoul-mcp.<domain>-mcp-server

예시:

  • Input: CulturalEvents

  • Package: data-seoul-mcp.culturalevents-mcp-server

  • Module: data_seoul_mcp.culturalevents_mcp_server

사용 예시

Claude Desktop에서 사용

학습로드맵

1. 준비 단계

  • API 키 발급

  • 인프라 환경 설정

  • 도구(Tool) 이해

2. 구현 단계

  • Cookiecutter로 템플릿 생성

  • API 명세서와 구현

  • MCP 도구 구현

  • 기능 확장하기

3. 테스트 단계

  • 단위 테스트 작성

  • MCP Inspector 테스트

  • Claude Desktop 연동 테스트

4. 배포 단계

  • 문서화

  • GitHub 리포지토리

  • Smithery 배포 (선택사항)

참고 자료

공식 문서

관련 오픈소스 템플릿

라이선스

Apache-2.0

기여 가이드

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

문의

프로젝트 관련 문의사항은 Issue를 통해 남겨주세요.

Last updated