Sur cette page
« Qu’est-ce qui passe ce soir au Comoedia ? », « où voir le nouveau Spielberg en VO près de Châtelet samedi ? » : avec le serveur MCP d’API Cinéma, vous posez la question à Claude, Cursor ou Copilot, qui répond avec les séances en direct. Aucun code à écrire : une ligne ou quelques lignes de configuration, et votre clé API.
› Qu’est-ce qui passe ce soir au Comoedia à Lyon, en VOST ?
Claude : Ce soir au Comoedia (Lyon), en version originale sous-titrée :
Wicker à 18 h 05 et 20 h 10, Les Diables à 18 h 25, Minotaure à 20 h 30. Réservation : cinema-comoedia.comComment ça marche
MCP (Model Context Protocol) est un standard pour donner des outils à un assistant IA. API Cinéma expose son API comme serveur MCP à l’adresse https://api.api-cinema.com/mcp (Streamable HTTP). L’assistant lit la liste des outils, choisit ceux dont il a besoin et les appelle avec votre clé :
| Outil | Ce qu’il fait |
|---|---|
search_cinemas |
Cinémas par ville, nom, code postal ou autour d’un point |
get_cinema |
Adresse, salles, site et billetterie d’un cinéma |
cinema_showtimes |
Le programme d’un cinéma, pour un jour ou une plage horaire |
search_movies |
Films par titre, au besoin seulement ceux à l’affiche |
movie_showtimes |
Où et quand passe un film, dans une ville ou autour d’un point |
search_showtimes |
Séances filtrées par ville, distance, film, jour et version |
Le serveur couvre environ 2 000 cinémas en France et plus de 3 000 aux États-Unis. Les horaires sont à l’heure locale de chaque cinéma. Chaque appel d’outil passe par les mêmes contrôles que l’API REST et compte pour une requête.
Ce qu’il vous faut
- Une clé API Cinéma : créez un compte gratuit, confirmez votre adresse e-mail, puis créez une clé depuis le tableau de bord. L’offre gratuite donne 150 requêtes par semaine, assez pour un usage personnel : une question coûte deux ou trois appels d’outils.
- Un client MCP qui envoie un en-tête
Authorization: Claude Code, Cursor, VS Code avec Copilot, Claude Desktop (via un petit pont, voir plus bas), ou votre propre code.
Gardez la clé dans une variable d’environnement plutôt que dans les fichiers de configuration : un fichier partagé ou commité par erreur ne l’emporte pas avec lui.
export API_CINEMA_KEY="ac_live_…" # dans ~/.zshrc ou ~/.bashrc pour la garderClaude Code
Une commande ajoute le serveur à votre configuration utilisateur, disponible dans tous vos projets :
claude mcp add --transport http --scope user api-cinema https://api.api-cinema.com/mcp \
--header "Authorization: Bearer $API_CINEMA_KEY"Pour partager le serveur avec une équipe, mettez-le plutôt dans un fichier .mcp.json à la racine du projet. Claude Code remplace ${API_CINEMA_KEY} au démarrage : le fichier ne contient aucun secret et peut être commité, chaque développeur définit la variable avec sa propre clé.
{
"mcpServers": {
"api-cinema": {
"type": "http",
"url": "https://api.api-cinema.com/mcp",
"headers": { "Authorization": "Bearer ${API_CINEMA_KEY}" }
}
}
}Lancez claude dans le projet, approuvez le serveur, puis tapez /mcp pour voir ses six outils. Ensuite, posez la question en langage courant : « qu’est-ce qui passe ce soir au Comoedia à Lyon ? ».
Cursor
Dans ~/.cursor/mcp.json (tous les projets) ou .cursor/mcp.json (un projet). Cursor remplace ${env:NOM} dans les en-têtes :
{
"mcpServers": {
"api-cinema": {
"url": "https://api.api-cinema.com/mcp",
"headers": { "Authorization": "Bearer ${env:API_CINEMA_KEY}" }
}
}
}Le serveur apparaît dans Settings › MCP, avec ses outils ; l’agent s’en sert dès qu’une question porte sur des cinémas ou des films. Cursor lit l’environnement depuis lequel il a été lancé : ouvrez-le depuis un terminal où API_CINEMA_KEY est définie, ou écrivez la clé dans le fichier s’il ne sort pas de votre machine.
VS Code avec Copilot
Dans .vscode/mcp.json, VS Code peut demander la clé une fois et la garder dans son stockage de secrets, plutôt que dans le fichier :
{
"inputs": [
{ "type": "promptString", "id": "api-cinema-key", "description": "Clé API Cinéma", "password": true }
],
"servers": {
"api-cinema": {
"type": "http",
"url": "https://api.api-cinema.com/mcp",
"headers": { "Authorization": "Bearer ${input:api-cinema-key}" }
}
}
}Attention à la clé servers au premier niveau : le format de VS Code diffère du mcpServers des autres clients. Démarrez le serveur depuis le fichier (le lien Start au-dessus), saisissez la clé, puis interrogez Copilot en mode agent.
Claude Desktop
Claude Desktop se connecte aux serveurs distants par les connecteurs personnalisés, qui s’authentifient en OAuth ; le serveur d’API Cinéma prend une clé API. Le pont mcp-remote fait le lien : Claude Desktop le lance comme un serveur local, et il transmet chaque appel avec votre en-tête. Dans Réglages › Développeur › Modifier la config :
{
"mcpServers": {
"api-cinema": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.api-cinema.com/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer ac_live_…" }
}
}
}L’en-tête est écrit sans espace après les deux-points, et la valeur vient de env, exprès : certains clients coupent les arguments sur les espaces en lançant npx. Node.js 20 ou plus récent doit être installé. Redémarrez Claude Desktop : les outils apparaissent sous l’icône des outils de la zone de saisie.
Depuis votre propre code
Toute bibliothèque cliente MCP se connecte de la même façon. En Node.js, avec le SDK officiel (npm install @modelcontextprotocol/sdk) :
import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'
const transport = new StreamableHTTPClientTransport(new URL('https://api.api-cinema.com/mcp'), {
requestInit: { headers: { Authorization: `Bearer ${process.env.API_CINEMA_KEY}` } },
})
const client = new Client({ name: 'showtimes-script', version: '1.0.0' })
await client.connect(transport)
const { tools } = await client.listTools()
console.log(tools.map(t => t.name).join(', '))
const result = await client.callTool({ name: 'search_cinemas', arguments: { city: 'Lyon', limit: 3 } })
const { data } = JSON.parse(result.content[0].text)
for (const cinema of data)
console.log(`${cinema.name} (${cinema.slug})`)
await client.close()node client.jsChaque outil renvoie en texte le JSON de la route REST correspondante, avec les mêmes champs que dans la documentation. Pour un script sans modèle, appeler l’API REST directement est plus simple ; le client MCP est la pièce à brancher dans un framework d’agents qui parle MCP. Pour construire votre propre chatbot avec des outils que vous contrôlez, voir le tutoriel chatbot.
Les questions qui marchent bien
- « Qu’est-ce qui passe ce soir au Pathé Wepler ? » →
search_cinemas, puiscinema_showtimes. - « Où voir Minotaure en VO à Lyon ce week-end ? » →
search_movies, puismovie_showtimesaveccityetversion. - « Les cinémas à moins de 5 km de 48.8584, 2.2945 avec une séance après 21 h ? » →
search_showtimesaveclat,lngetfrom. - « Quels films commencent entre 18 h et 19 h au Comoedia samedi ? » →
cinema_showtimesavecfrometto.
Précisez la ville ou le pays : un nom comme « Paris » existe en France et au Texas. Les outils renvoient 20 résultats par défaut, assez pour une réponse et léger pour le contexte du modèle ; demandez-en plus (« toute la semaine ») et l’assistant augmente limit.
Combien de requêtes ça coûte ?
Une par appel d’outil : deux ou trois pour une question courante (trouver le cinéma ou le film, puis ses séances). Les 150 requêtes par semaine de l’offre gratuite couvrent une cinquantaine de questions ; pour une équipe ou un usage quotidien, Starter (12 € par mois) en donne 10 000 par semaine. Le tableau de bord affiche chaque appel, MCP ou REST, sur le même graphique de consommation.
Protéger la clé
- La clé reste dans la configuration de votre client, sur votre machine. Elle n’est jamais dans le prompt et le modèle ne la voit pas : le client ajoute l’en-tête à chaque appel.
- Hors des fichiers partagés.
.mcp.json,.cursor/mcp.jsonet.vscode/mcp.jsonsont souvent commités : référencez-y une variable d’environnement ou une saisie, jamais la clé elle-même. - Une clé par usage. Une clé pour votre assistant, une autre pour votre appli en production : vous pouvez révoquer l’une depuis le tableau de bord sans couper l’autre.
- Lecture seule. Les outils ne font que lire des données publiques de séances ; aucun n’écrit ni ne supprime quoi que ce soit, un assistant peut donc les appeler sans demander à chaque fois.
Pour aller plus loin
- Via l’API de Claude ou d’OpenAI. Les deux API savent appeler un serveur MCP distant à votre place : l’API Messages de Claude avec son connecteur MCP (
mcp_servers, la clé dansauthorization_token), l’API Responses d’OpenAI avec un outilmcp(server_url, la clé dansauthorization). Votre serveur envoie une requête, le fournisseur fait les appels d’outils. - Automatisations sans code. Le nœud MCP Client Tool de n8n prend la même adresse, avec la clé comme identifiant d’en-tête : un agent IA qui publie « ce soir au cinéma » dans un canal chaque soir.
- Le registre. Le serveur est référencé dans le registre MCP officiel sous le nom
com.api-cinema/showtimes: les clients qui parcourent le registre le trouvent par son nom.
Tous les paramètres des outils sont dans la documentation ; les tutoriels Python et Next.js appellent les mêmes routes en REST.