Skip to main content
Glama
ho-ju
by ho-ju

AMC MCP 서버 🎬

AMC 시어터를 위한 포괄적인 영화 예매 경험을 제공하는 Model Context Protocol(MCP) 서버입니다. 이 서버는 대화형 AI 어시스턴트가 간단한 API 인터페이스를 통해 영화 검색, 상영 시간 확인, 좌석 예매, 결제 처리까지 할 수 있도록 지원합니다.

주요 기능 ✨

  • 영화 검색: 현재 상영 중인 영화를 확인하고 맞춤형 추천을 받아보세요

  • 상영 시간 조회: 지역, 날짜, 영화별 상영 시간을 확인하세요

  • 좌석 선택: 좌석 배치도를 확인하고 원하는 좌석을 선택하세요

  • 예매 관리: 실시간 좌석 확인과 함께 예매를 진행하세요

  • 결제 처리: 모의 결제를 처리하고 예매 확인서를 받아보세요

  • 멀티 지역 지원: 여러 AMC 시어터 지점을 검색할 수 있습니다

Related MCP server: Travel Amadeus MCP Server

빠른 시작 🚀

사전 요구 사항

  • Python 3.8 이상

  • Docker(컨테이너 배포 시 선택 사항)

설치 방법

옵션 1: 로컬 설치

  1. 저장소를 클론합니다:

git clone <repository-url>
cd amc-mcp
  1. 의존성을 설치합니다:

pip install -r requirements.txt
  1. 패키지를 설치합니다:

pip install -e .
  1. 서버를 실행합니다:

python -m amc_mcp.fastmcp_server

옵션 2: Docker 배포

  1. Docker Compose로 빌드 및 실행:

docker-compose up --build
  1. 또는 수동으로 빌드 및 실행:

docker build -t amc-mcp .
docker run -it amc-mcp

MCP 도구 참조 🛠️

1. get_now_showing

특정 지역에서 현재 상영 중인 영화 목록을 반환합니다.

입력:

{
  "location": "Boston, MA"
}

출력:

{
  "location": "Boston, MA",
  "movies": [
    {
      "movie_id": "mv001",
      "title": "Dune: Part Two",
      "rating": "PG-13",
      "duration": 166,
      "genre": "Sci-Fi/Action",
      "description": "Paul Atreides unites with Chani..."
    }
  ]
}

2. get_recommendations

분위기, 장르, 선호도에 따라 영화를 추천합니다.

입력:

{
  "genre": "action",
  "mood": "exciting"
}

출력:

{
  "criteria": {"genre": "action", "mood": "exciting"},
  "recommendations": [...]
}

3. get_showtimes

특정 영화와 지역의 상영 시간을 조회합니다.

입력:

{
  "movie_id": "mv001",
  "date": "2025-10-28",
  "location": "Boston, MA"
}

출력:

{
  "movie": {"id": "mv001", "title": "Dune: Part Two"},
  "date": "2025-10-28",
  "location": "Boston, MA",
  "showtimes": [
    {
      "showtime_id": "st001",
      "theater_name": "AMC Boston Common 19",
      "theater_address": "175 Tremont Street",
      "time": "14:00",
      "format": "IMAX",
      "price": 18.50
    }
  ]
}

4. get_seat_map

특정 상영 회차의 좌석 배치도와 예약 현황을 표시합니다.

입력:

{
  "showtime_id": "st001"
}

출력:

{
  "showtime_id": "st001",
  "movie": "Dune: Part Two",
  "theater": "AMC Boston Common 19",
  "date": "2025-10-28",
  "time": "14:00",
  "seat_map": [
    {
      "seat_number": "A5",
      "row": "A",
      "column": 5,
      "is_available": true,
      "price_tier": "Standard",
      "price": 18.50
    }
  ]
}

5. book_seats

선택한 좌석을 예매합니다.

입력:

{
  "showtime_id": "st001",
  "seats": ["A5", "A6"],
  "user_id": "user123"
}

출력:

{
  "booking_id": "booking-uuid",
  "status": "pending",
  "movie": "Dune: Part Two",
  "theater": "AMC Boston Common 19",
  "date": "2025-10-28",
  "time": "14:00",
  "seats": ["A5", "A6"],
  "total_price": 37.00
}

6. process_payment

모의 결제 거래를 처리합니다.

입력:

{
  "booking_id": "booking-uuid",
  "payment_method": "card",
  "amount": 37.00
}

출력:

{
  "payment_id": "payment-uuid",
  "payment_status": "success",
  "booking_id": "booking-uuid",
  "receipt_url": "https://amc.com/receipts/payment-uuid",
  "confirmation": {
    "movie": "Dune: Part Two",
    "theater": "AMC Boston Common 19",
    "date": "2025-10-28",
    "time": "14:00",
    "seats": ["A5", "A6"],
    "total_paid": 37.00
  }
}

대화 흐름 예시 💬

일반적인 영화 예매 대화는 다음과 같이 진행됩니다:

  1. 사용자: "오늘 밤 근처에서 액션 영화 찾아줘."

    • 서버 호출: get_now_showing + get_recommendations

    • 반환: 상영 시간이 포함된 액션 영화 목록

  2. 사용자: "오후 8시 '듄: 파트 2' 두 자리 예매할게."

    • 서버 호출: get_showtimesget_seat_mapbook_seats

    • 반환: 좌석 선택 및 예매 확인

  3. 사용자: "카드로 결제할게."

    • 서버 호출: process_payment

    • 반환: 디지털 영수증이 포함된 결제 확인

아키텍처 🏗️

amc-mcp/
├── src/
│   └── amc_mcp/
│       ├── __init__.py
│       └── server.py          # Main MCP server implementation
├── data/
│   ├── movies.json           # Movie catalog
│   ├── theaters.json         # Theater locations
│   ├── showtimes.json        # Showtime schedules
│   └── seats.json           # Seat maps by showtime
├── config/
│   └── nginx.conf           # Web server configuration
├── Dockerfile               # Container configuration
├── docker-compose.yml       # Multi-service orchestration
├── requirements.txt         # Python dependencies
├── pyproject.toml          # Package configuration
└── README.md               # This file

데이터 모델 📊

영화(Movie)

{
  "movie_id": str,
  "title": str,
  "rating": str,         # PG, PG-13, R, etc.
  "duration": int,       # Minutes
  "genre": str,
  "description": str,
  "poster_url": str
}

극장(Theater)

{
  "theater_id": str,
  "name": str,
  "address": str,
  "city": str,
  "state": str,
  "zip_code": str
}

상영 회차(Showtime)

{
  "showtime_id": str,
  "movie_id": str,
  "theater_id": str,
  "date": str,           # YYYY-MM-DD
  "time": str,           # HH:MM
  "format": str,         # Standard, IMAX, 3D, Dolby
  "price": float
}

개발 가이드 👨💻

새 영화 추가하기

data/movies.json을 편집하여 새 영화를 추가합니다:

{
  "movie_id": "mv011",
  "title": "New Movie Title",
  "rating": "PG-13",
  "duration": 120,
  "genre": "Action",
  "description": "Description of the movie...",
  "poster_url": "https://example.com/poster.jpg"
}

새 극장 추가하기

data/theaters.json을 편집합니다:

{
  "theater_id": "th011",
  "name": "AMC New Location 15",
  "address": "123 Main Street",
  "city": "New City",
  "state": "NY",
  "zip_code": "12345"
}

상영 회차 추가하기

data/showtimes.jsondata/seats.json을 편집하여 새 상영 회차와 해당 좌석 배치도를 추가합니다.

테스트

수동 테스트

MCP 인스펙터 또는 MCP 호환 클라이언트를 사용하여 개별 도구를 테스트할 수 있습니다.

Claude Desktop으로 테스트

  1. Claude Desktop을 MCP 서버에 연결하도록 구성합니다

  2. 자연어로 예매 흐름을 테스트합니다

  3. 예시: "오늘 밤 보스턴에서 공상과학 영화 찾아줘"

구성 ⚙️

환경 변수

  • PYTHONPATH: 모듈 해석을 위해 /app/src로 설정

  • PYTHONUNBUFFERED: 실시간 로깅을 위해 1로 설정

  • MCP_LOG_LEVEL: 로그 레벨 설정(DEBUG, INFO, WARNING, ERROR)

Docker 구성

서버는 다음과 같은 경량 Python 3.11 컨테이너에서 실행됩니다:

  • 보안을 위한 비루트 사용자

  • 상태 확인을 위한 헬스 체크

  • 데이터 영속성을 위한 볼륨 마운트

  • 네트워크 격리

보안 고려 사항 🔒

본 서버는 데모용 모의 구현입니다. 프로덕션 환경에서는 다음을 고려하세요:

  1. 결제 처리: 실제 결제 게이트웨이(Stripe, PayPal 등) 연동

  2. 인증: 사용자 인증 및 권한 부여 추가

  3. 데이터 검증: 포괄적인 입력 검증 구현

  4. 속도 제한: API 속도 제한 추가

  5. 암호화: HTTPS 사용 및 민감 데이터 암호화

  6. 데이터베이스: JSON 파일을 실제 데이터베이스로 대체

  7. 로깅: 구조화된 로깅 및 모니터링 구현

향후 개선 사항 🔮

  • 실제 AMC API 연동: 실제 AMC 시어터 API 연결

  • 사용자 계정: 사용자 프로필 및 예매 내역 영속화

  • 단체 예매: 여러 사용자가 함께 예매할 수 있는 기능

  • 로열티 프로그램: AMC Stubs 통합

  • 모바일 티켓: 모바일 입장용 QR 코드 생성

  • 좌석 추천: AI 기반 최적 좌석 추천

  • 가격 알림: 할인 및 프로모션 알림

  • 소셜 기능: 친구와 영화 계획 공유

  • 접근성: ADA(미국 장애인법) 준수 좌석 선택

  • 다국어: 국제 언어 지원

기여하기 🤝

  1. 저장소를 포크합니다

  2. 기능 브랜치를 생성합니다: git checkout -b feature/new-feature

  3. 변경 사항을 적용하고 테스트를 추가합니다

  4. 변경 사항을 커밋합니다: git commit -am 'Add new feature'

  5. 브랜치에 푸시합니다: git push origin feature/new-feature

  6. 풀 리퀘스트를 제출합니다

라이선스 📄

이 프로젝트는 MIT 라이선스 하에 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

지원 💬

질문, 이슈 또는 기능 요청이 있으시면:

  • GitHub 저장소에 이슈를 생성하세요

  • 문서에서 일반적인 해결 방법을 확인하세요

  • 대화 흐름 예시를 검토하세요


즐거운 영화 예매 되세요! 🍿🎬

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides a comprehensive movie booking experience for AMC Theatres, enabling users to discover movies, find showtimes, select seats, and process payments through conversational AI. Supports multi-location theater search with real-time seat availability and booking management.
    6
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Discover and book businesses via AI agents.

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ho-ju/amc-mcp-hoju'

If you have feedback or need assistance with the MCP directory API, please join our Discord server