index.html•9.39 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AMC MCP Server - Test Interface</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.container {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border-radius: 20px;
padding: 30px;
box-shadow: 0 8px 32px rgba(31, 38, 135, 0.37);
border: 1px solid rgba(255, 255, 255, 0.18);
}
h1 {
text-align: center;
margin-bottom: 30px;
font-size: 2.5em;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.tools-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 20px;
margin-top: 30px;
}
.tool-card {
background: rgba(255, 255, 255, 0.1);
border-radius: 15px;
padding: 20px;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: transform 0.3s ease;
}
.tool-card:hover {
transform: translateY(-5px);
}
.tool-title {
font-size: 1.3em;
font-weight: bold;
margin-bottom: 10px;
color: #FFD700;
}
.tool-description {
margin-bottom: 15px;
line-height: 1.5;
}
.example {
background: rgba(0, 0, 0, 0.2);
border-radius: 8px;
padding: 10px;
font-family: 'Courier New', monospace;
font-size: 0.9em;
overflow-x: auto;
}
.status {
text-align: center;
padding: 20px;
background: rgba(0, 255, 0, 0.1);
border-radius: 10px;
margin-bottom: 20px;
}
.info-box {
background: rgba(255, 255, 255, 0.1);
border-radius: 10px;
padding: 20px;
margin: 20px 0;
border-left: 4px solid #FFD700;
}
.workflow {
background: rgba(255, 255, 255, 0.05);
border-radius: 10px;
padding: 20px;
margin: 20px 0;
}
.workflow-step {
display: flex;
align-items: center;
margin: 10px 0;
padding: 10px;
background: rgba(255, 255, 255, 0.1);
border-radius: 8px;
}
.step-number {
background: #FFD700;
color: #333;
width: 30px;
height: 30px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
margin-right: 15px;
}
</style>
</head>
<body>
<div class="container">
<h1>🎬 AMC MCP Server</h1>
<div class="status">
<h3>✅ Server Status: Running</h3>
<p>The AMC MCP Server is successfully deployed and ready to handle movie booking requests!</p>
</div>
<div class="info-box">
<h3>📡 About This Server</h3>
<p>This is a Model Context Protocol (MCP) server that enables AI assistants to help users book AMC movie tickets through conversational interactions. The server provides 6 core tools for the complete movie booking experience.</p>
</div>
<div class="workflow">
<h3>🎯 Example Booking Workflow</h3>
<div class="workflow-step">
<div class="step-number">1</div>
<div>User: "Find an action movie near me tonight"</div>
</div>
<div class="workflow-step">
<div class="step-number">2</div>
<div>Server calls: get_now_showing + get_recommendations</div>
</div>
<div class="workflow-step">
<div class="step-number">3</div>
<div>User: "Book two seats for Dune: Part Two at 8 PM"</div>
</div>
<div class="workflow-step">
<div class="step-number">4</div>
<div>Server calls: get_showtimes → get_seat_map → book_seats</div>
</div>
<div class="workflow-step">
<div class="step-number">5</div>
<div>User: "Pay with my card"</div>
</div>
<div class="workflow-step">
<div class="step-number">6</div>
<div>Server calls: process_payment → Returns confirmation</div>
</div>
</div>
<h2>🛠️ Available MCP Tools</h2>
<div class="tools-grid">
<div class="tool-card">
<div class="tool-title">get_now_showing</div>
<div class="tool-description">
Get a list of movies currently showing in a specific location
</div>
<div class="example">
Input: {"location": "Boston, MA"}<br>
Output: List of current movies with details
</div>
</div>
<div class="tool-card">
<div class="tool-title">get_recommendations</div>
<div class="tool-description">
Get personalized movie recommendations based on genre, mood, or preferences
</div>
<div class="example">
Input: {"genre": "action", "mood": "exciting"}<br>
Output: Curated movie recommendations
</div>
</div>
<div class="tool-card">
<div class="tool-title">get_showtimes</div>
<div class="tool-description">
Find available showtimes for a specific movie on a given date
</div>
<div class="example">
Input: {"movie_id": "mv001", "date": "2025-10-28"}<br>
Output: Theater locations and showtimes
</div>
</div>
<div class="tool-card">
<div class="tool-title">get_seat_map</div>
<div class="tool-description">
View the seat layout and availability for a specific showtime
</div>
<div class="example">
Input: {"showtime_id": "st001"}<br>
Output: Interactive seat map with pricing
</div>
</div>
<div class="tool-card">
<div class="tool-title">book_seats</div>
<div class="tool-description">
Reserve selected seats for a user with real-time availability checking
</div>
<div class="example">
Input: {"showtime_id": "st001", "seats": ["A5", "A6"]}<br>
Output: Booking confirmation with total price
</div>
</div>
<div class="tool-card">
<div class="tool-title">process_payment</div>
<div class="tool-description">
Handle payment processing and generate confirmation receipts
</div>
<div class="example">
Input: {"booking_id": "uuid", "amount": 37.00}<br>
Output: Payment confirmation with receipt
</div>
</div>
</div>
<div class="info-box">
<h3>🐳 Docker Deployment</h3>
<p>This server is containerized and can be deployed using Docker Compose. The current setup includes the main MCP server and a simple web interface for monitoring.</p>
<div class="example">
docker-compose up --build
</div>
</div>
<div class="info-box">
<h3>🔗 Integration</h3>
<p>To use this server with an MCP-compatible AI assistant (like Claude Desktop), configure your client to connect to this server's stdio interface. The server communicates using the Model Context Protocol standard.</p>
</div>
</div>
<script>
// Add some basic interactivity
document.addEventListener('DOMContentLoaded', function() {
const cards = document.querySelectorAll('.tool-card');
cards.forEach(card => {
card.addEventListener('click', function() {
this.style.transform = 'scale(1.02)';
setTimeout(() => {
this.style.transform = '';
}, 200);
});
});
// Simulate server health check
setInterval(() => {
const status = document.querySelector('.status h3');
status.style.opacity = '0.5';
setTimeout(() => {
status.style.opacity = '1';
}, 500);
}, 30000); // Every 30 seconds
});
</script>
</body>
</html>