Skip to main content
Glama

AMC MCP Server

by hi5d

AMC MCP Server šŸŽ¬

An Model Context Protocol (MCP) server that provides a comprehensive movie booking experience for AMC Theatres. This server enables conversational AI assistants to help users discover movies, find showtimes, book seats, and process payments through a simple API interface.

Features ✨

  • Movie Discovery: Browse currently showing movies and get personalized recommendations

  • Showtime Lookup: Find available showtimes by location, date, and movie

  • Seat Selection: View interactive seat maps and check availability

  • Booking Management: Reserve seats with real-time availability checking

  • Payment Processing: Handle mock payment transactions with confirmation receipts

  • Multi-location Support: Search across multiple AMC theater locations

Quick Start šŸš€

Prerequisites

  • Python 3.8+

  • Docker (optional, for containerized deployment)

Installation

Option 1: Local Installation

  1. Clone the repository:

git clone <repository-url> cd amc-mcp
  1. Install dependencies:

pip install -r requirements.txt
  1. Install the package:

pip install -e .
  1. Run the server:

python -m amc_mcp.fastmcp_server

Option 2: Docker Deployment

  1. Build and run with Docker Compose:

docker-compose up --build
  1. Or build and run manually:

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

MCP Tools Reference šŸ› ļø

1. get_now_showing

Returns a list of movies currently showing in a given location.

Input:

{ "location": "Boston, MA" }

Output:

{ "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

Suggests movies based on mood, genre, or preferences.

Input:

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

Output:

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

3. get_showtimes

Fetches available showtimes for a specific movie and location.

Input:

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

Output:

{ "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

Displays available and reserved seats for a specific showtime.

Input:

{ "showtime_id": "st001" }

Output:

{ "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

Reserves selected seats for the user.

Input:

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

Output:

{ "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

Handles simulated payment transaction.

Input:

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

Output:

{ "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 } }

Example Conversation Flow šŸ’¬

Here's how a typical movie booking conversation would work:

  1. User: "Find an action movie near me tonight."

    • Server calls: get_now_showing + get_recommendations

    • Returns: List of action movies with showtimes

  2. User: "Book two seats for Dune: Part Two at 8 PM."

    • Server calls: get_showtimes → get_seat_map → book_seats

    • Returns: Seat selection and booking confirmation

  3. User: "Pay with my card."

    • Server calls: process_payment

    • Returns: Payment confirmation with digital receipt

Architecture šŸ—ļø

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

Data Models šŸ“Š

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 }

Development šŸ‘Øā€šŸ’»

Adding New Movies

Edit data/movies.json to add new movies:

{ "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" }

Adding New Theaters

Edit data/theaters.json:

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

Adding Showtimes

Edit data/showtimes.json and data/seats.json to add new showtimes and corresponding seat maps.

Testing

Manual Testing

You can test individual tools using the MCP inspector or by connecting to any MCP-compatible client.

Testing with Claude Desktop

  1. Configure Claude Desktop to connect to your MCP server

  2. Use natural language to test the booking flow

  3. Example: "Find me a sci-fi movie showing tonight in Boston"

Configuration āš™ļø

Environment Variables

  • PYTHONPATH: Set to /app/src for proper module resolution

  • PYTHONUNBUFFERED: Set to 1 for real-time logging

  • MCP_LOG_LEVEL: Set logging level (DEBUG, INFO, WARNING, ERROR)

Docker Configuration

The server runs in a lightweight Python 3.11 container with:

  • Non-root user for security

  • Health checks for monitoring

  • Volume mounts for data persistence

  • Network isolation

Security Considerations šŸ”’

This is a mock implementation for demonstration purposes. In production:

  1. Payment Processing: Integrate with real payment gateways (Stripe, PayPal)

  2. Authentication: Add user authentication and authorization

  3. Data Validation: Implement comprehensive input validation

  4. Rate Limiting: Add API rate limiting

  5. Encryption: Use HTTPS and encrypt sensitive data

  6. Database: Replace JSON files with a real database

  7. Logging: Implement structured logging and monitoring

Future Enhancements šŸ”®

  • Real AMC API Integration: Connect to actual AMC Theatres API

  • User Accounts: Persistent user profiles and booking history

  • Group Bookings: Support for multiple users booking together

  • Loyalty Programs: AMC Stubs integration

  • Mobile Tickets: Generate QR codes for mobile entry

  • Seat Recommendations: AI-powered optimal seat suggestions

  • Price Alerts: Notify users of discounts and promotions

  • Social Features: Share movie plans with friends

  • Accessibility: ADA-compliant seat selection

  • Multi-language: International language support

Contributing šŸ¤

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/new-feature

  3. Make your changes and add tests

  4. Commit your changes: git commit -am 'Add new feature'

  5. Push to the branch: git push origin feature/new-feature

  6. Submit a pull request

License šŸ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Support šŸ’¬

For questions, issues, or feature requests:

  • Create an issue in the GitHub repository

  • Check the documentation for common solutions

  • Review the example conversation flows


Happy movie booking! šŸæšŸŽ¬

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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.

  1. Features ✨
    1. Quick Start šŸš€
      1. Prerequisites
      2. Installation
    2. MCP Tools Reference šŸ› ļø
      1. 1. get_now_showing
      2. 2. get_recommendations
      3. 3. get_showtimes
      4. 4. get_seat_map
      5. 5. book_seats
      6. 6. process_payment
    3. Example Conversation Flow šŸ’¬
      1. Architecture šŸ—ļø
        1. Data Models šŸ“Š
          1. Movie
          2. Theater
          3. Showtime
        2. Development šŸ‘Øā€šŸ’»
          1. Adding New Movies
          2. Adding New Theaters
          3. Adding Showtimes
          4. Testing
        3. Configuration āš™ļø
          1. Environment Variables
          2. Docker Configuration
        4. Security Considerations šŸ”’
          1. Future Enhancements šŸ”®
            1. Contributing šŸ¤
              1. License šŸ“„
                1. Support šŸ’¬

                  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/hi5d/amc-mcp'

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