import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
const transport = new StdioClientTransport({
command: "node",
args: ["./build/index.js"],
});
const client = new Client(
{ name: "test-client-avatar", version: "1.0.0" },
{ capabilities: {} }
);
await client.connect(transport);
console.log("✅ Connecté au serveur.");
try {
// 1. Recherche
console.log("\n🔍 Recherche de 'Avatar feu et cendres'...");
const searchResult = await client.callTool({
name: "search_movies",
arguments: { query: "Avatar feu et cendres" },
});
// @ts-ignore
const movies = JSON.parse(searchResult.content[0].text);
const movie = movies.find((m: any) => m.title.toLowerCase().includes("avatar"));
if (!movie) {
console.error("❌ Film non trouvé !");
console.log("Résultats bruts:", movies);
return;
}
console.log(`✅ Film trouvé: ${movie.title} (ID: ${movie.id})`);
// 2. Séances à Paris
console.log(`\n🎟️ Récupération des séances à Paris...`);
const showtimesResult = await client.callTool({
name: "get_showtimes",
arguments: {
movie_id: movie.id,
location: "Paris",
},
});
// @ts-ignore
const showtimesData = showtimesResult.content[0].text;
if (showtimesData.startsWith("No showtimes")) {
console.log("❌ Aucune séance trouvée aujourd'hui à Paris.");
return;
}
const cinemas = JSON.parse(showtimesData);
// 3. Filtrer pour Pathé Alésia
console.log(`\n🏢 Recherche du cinéma 'Pathé Alésia' parmi ${cinemas.length} résultats...`);
const otherCinema = cinemas.find((c: any) =>
c.cinemaName.toLowerCase().includes("pathé alésia")
);
if (otherCinema) {
console.log(`✅ Cinéma sélectionné : ${otherCinema.cinemaName}`);
console.log(`📍 Adresse: ${otherCinema.cinemaAddress}`);
console.log("🕒 Séances:");
otherCinema.formats.forEach((fmt: any) => {
console.log(` - Format: ${fmt.type}`);
fmt.showtimes.forEach((s: any) => {
const amenities = s.amenities ? ` [${s.amenities.join(", ")}]` : "";
console.log(` 🕒 ${s.startTime}${amenities} ${s.bookingUrl ? `(👉 ${s.bookingUrl})` : "(pas de lien)"}`);
});
});
} else {
console.warn("⚠️ Aucun autre cinéma trouvé.");
}
} catch (error) {
console.error("❌ Erreur:", error);
} finally {
await client.close();
}
}
main().catch(console.error);