"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
async function main() {
const transport = new stdio_js_1.StdioClientTransport({
command: "node",
args: ["./build/index.js"],
});
const client = new index_js_1.Client({ name: "final-test", version: "1.1.0" }, { capabilities: {} });
await client.connect(transport);
console.log("🚀 Connecté au serveur MCP Allociné.\n");
try {
// 1. Tool: get_movies_now_showing
console.log("--- Test: get_movies_now_showing ---");
const nowShowing = await client.callTool({ name: "get_movies_now_showing", arguments: { max_pages: 1 } });
// @ts-ignore
const moviesList = JSON.parse(nowShowing.content[0].text);
console.log(`✅ ${moviesList.length} films récupérés à l'affiche.`);
console.log(` Exemples: ${moviesList.slice(0, 3).map((m) => m.title).join(", ")}\n`);
// 2. Tool: search_movies
console.log("--- Test: search_movies ---");
const searchAvatar = await client.callTool({ name: "search_movies", arguments: { query: "Avatar feu et cendres" } });
// @ts-ignore
const avatar = JSON.parse(searchAvatar.content[0].text)[0];
console.log(`✅ Film trouvé: ${avatar.title} (ID: ${avatar.id})\n`);
const searchWicked = await client.callTool({ name: "search_movies", arguments: { query: "Wicked partie II" } });
// @ts-ignore
const wicked = JSON.parse(searchWicked.content[0].text)[0];
console.log(`✅ Film trouvé: ${wicked.title} (ID: ${wicked.id})\n`);
// 3. Tool: get_showtimes (Default location: Saint-Denis)
console.log(`--- Test: get_showtimes pour Avatar à Saint-Denis (Défaut) ---`);
const showtimes = await client.callTool({ name: "get_showtimes", arguments: { movie_id: avatar.id } });
// @ts-ignore
const cinemas = JSON.parse(showtimes.content[0].text);
console.log(`✅ Séances trouvées dans ${cinemas.length} cinémas proches de Saint-Denis.`);
if (cinemas.length > 0) {
const c = cinemas[0];
console.log(` Exemple: ${c.cinemaName}`);
console.log(` Cartes: ${Object.entries(c.cards).filter(([_, v]) => v).map(([k]) => k).join(", ") || "Aucune détectée"}`);
const s = c.formats[0].showtimes[0];
console.log(` Séance: ${s.startTime}${s.amenities ? ` [${s.amenities.join(", ")}]` : ""}`);
}
console.log("");
// 4. Tool: search_cinemas
console.log("--- Test: search_cinemas ('Pathé Saint-Denis') ---");
const searchCin = await client.callTool({ name: "search_cinemas", arguments: { query: "Pathé Saint-Denis" } });
// @ts-ignore
const cinemasFound = JSON.parse(searchCin.content[0].text);
const patheSD = cinemasFound[0];
console.log(`✅ Cinéma trouvé: ${patheSD.name} (ID: ${patheSD.id})`);
console.log(` Cartes: ${Object.entries(patheSD.cards).filter(([_, v]) => v).map(([k]) => k).join(", ")}\n`);
// 5. Tool: get_cinema_showtimes
console.log(`--- Test: get_cinema_showtimes pour ${patheSD.name} ---`);
const program = await client.callTool({ name: "get_cinema_showtimes", arguments: { cinema_id: patheSD.id } });
// @ts-ignore
const progData = JSON.parse(program.content[0].text);
console.log(`✅ Programmation récupérée: ${progData.movies.length} films à l'affiche.`);
console.log(` Cartes sur page: ${Object.entries(progData.cards).filter(([_, v]) => v).map(([k]) => k).join(", ")}`);
const firstMovie = progData.movies[0];
console.log(` Exemple: ${firstMovie.movieTitle} - ${firstMovie.formats[0].showtimes.length} séances\n`);
// 6. Tool: get_cinemas_by_card
console.log("--- Test: get_cinemas_by_card (UGC à Paris) ---");
const ugcParis = await client.callTool({ name: "get_cinemas_by_card", arguments: { card_type: "ugc", location: "Paris" } });
// @ts-ignore
const ugcList = JSON.parse(ugcParis.content[0].text);
console.log(`✅ ${ugcList.length} cinémas UGC Illimité trouvés à Paris.`);
console.log(` Ex: ${ugcList.slice(0, 2).map((c) => c.name).join(", ")}\n`);
}
catch (error) {
console.error("❌ Erreur pendant le test:", error);
}
finally {
await client.close();
}
}
main();