← Retour au site

API et agents IA

Le site Lycée Professionnel Gourdou Leseurre propose un accès programmatique en lecture à ses pages et actualités : API REST, serveur MCP pour les assistants IA et outils WebMCP dans le navigateur. L'accès aux contenus publiés est libre, sans clé.

Gratuit, sans inscription ni clé API (free, no signup, no API key). L'API est en lecture seule : vous pouvez l'appeler directement, sans bac à sable. Vue machine de l'accueil : /?mode=agent · Markdown : /index.md (ajoutez .md à toute page) · Agent A2A : agent-card.json · Skills : agent-skills/index.json

Points d'entrée

RessourceURL
Spécification OpenAPI 3.1https://www.lyceegourdouleseurre94.fr/openapi.json
Catalogue d'API (RFC 9727)/.well-known/api-catalog
API REST (WordPress)https://www.lyceegourdouleseurre94.fr/wp-json/
Serveur MCP (Streamable HTTP)https://www.lyceegourdouleseurre94.fr/mcp
Carte du serveur MCP/.well-known/mcp.json
Métadonnées OAuth/.well-known/oauth-authorization-server
Résumé pour LLM/llms.txt

API REST

Base : https://www.lyceegourdouleseurre94.fr/wp-json. Réponses JSON, pagination via page et per_page (100 maximum), totaux dans les en-têtes X-WP-Total et X-WP-TotalPages. Le paramètre _fields réduit la réponse.

RequêteDescription
GET /wp/v2/postsActualités (filtres search, categories)
GET /wp/v2/posts/{id}Une actualité
GET /wp/v2/pagesPages (filtre slug)
GET /wp/v2/pages/{id}Une page
GET /wp/v2/categoriesCatégories d'actualités
GET /wp/v2/search?search=…Recherche dans tout le site
curl "https://www.lyceegourdouleseurre94.fr/wp-json/wp/v2/posts?per_page=5&_fields=id,date,title,link"
curl "https://www.lyceegourdouleseurre94.fr/wp-json/wp/v2/search?search=portes%20ouvertes"

Serveur MCP

Endpoint https://www.lyceegourdouleseurre94.fr/mcp, protocole Model Context Protocol, transport Streamable HTTP (POST JSON-RPC, réponses JSON). Dans Claude : Paramètres → Connecteurs → Ajouter un connecteur personnalisé → coller l'URL.

Outils, tous en lecture seule :

curl -X POST "https://www.lyceegourdouleseurre94.fr/mcp" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_content","arguments":{"query":"stage"}}}'

Authentification (OAuth 2.1)

Aucune authentification n'est requise pour les contenus publiés. Les membres de l'équipe peuvent obtenir un jeton en lecture seule, valable pour le MCP et pour l'API REST (GET sur les routes ci-dessus).

Scopes :

Authorization: Bearer <access_token>

Erreurs et nouvelles tentatives

Toutes les erreurs sont renvoyées en JSON, jamais en page HTML :

Idempotency-Key : les requêtes POST /mcp et POST /oauth/register acceptent l'en-tête Idempotency-Key (UUID v4 conseillé). Si la même clé est renvoyée avec le même corps dans les 24 h, la réponse enregistrée est rejouée (en-tête Idempotent-Replayed: true) sans refaire l'opération. Avec un corps différent, la réponse est 422 idempotency_key_reused.

curl -X POST "https://www.lyceegourdouleseurre94.fr/oauth/register" -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f1c2b9e-8d0a-4c6e-9f3b-2a7d5e1c0b84" \
  -d '{"client_name":"Mon agent","redirect_uris":["http://localhost:8765/callback"]}'

Lot, limites de débit et bac à sable

WebMCP

Les pages du site enregistrent les mêmes outils pour les agents intégrés au navigateur via document.modelContext.registerTool(), ainsi qu'un outil open_page pour naviguer. Les formulaires de recherche et de contact portent les attributs toolname et tooldescription.

Contact

Questions ou problèmes : formulaire de contact.