# Serveur MCP Permis Online

Connecte un assistant compatible aux fiches publiques Permis Online grâce aux outils de recherche et de lecture MCP.

Page : https://permis.online/donnees/mcp/

Corpus : 355 fiches publiques, avec leurs liens, sources, régions et dates lorsqu’elles sont documentées. Chaque fiche précise son contexte et les références qui documentent l’information.

## Utilisation

Accès public, lecture seule, sans clé. Ne contient ni compte, ni progression d’élève, ni information privée. Citer le lien de la fiche et conserver ses sources et la portée de la vérification. Les analyses et méthodes de Permis Online sont identifiées séparément des règles officielles.

## MCP

URL : https://permis.online/mcp

Transport Streamable HTTP, réponses JSON, protocole 2025-11-25, sans authentification ni session persistante. Utiliser un client compatible avec ce transport et cette version. Aucun flux SSE n’est nécessaire.

Outils :
- search : {query: "permis wallonie"}, retourne {results: [{id, title, url}]} dans content et structuredContent.
- fetch : {id: "identifiant renvoyé par search"}, retourne {id, title, text, url, metadata}. Les métadonnées incluent les sources et les dates disponibles. related contient le contexte complémentaire à lire. modified_at indique une modification de publication, distincte de verified_at. Les données publiques de marque, des offres et des professionnels sont transmises avec leur nature.

Ajouter l’URL MCP à un client compatible, effectuer initialize puis notifications/initialized, puis tools/list et tools/call.

## En-têtes et compatibilité

Envoyer Content-Type: application/json et Accept: application/json, text/event-stream. Après initialize, transmettre MCP-Protocol-Version: 2025-11-25. Pas de clé, de cookie ou d’identifiant de session. Un navigateur externe doit utiliser l’API REST ou un relais serveur : la route MCP valide les origines. La recherche MCP renvoie au plus 20 résultats ; parcourir le catalogue complet par l’API REST. Contrôler les erreurs JSON-RPC et isError même sur une réponse HTTP 200.

## Exemples exécutables

### Rechercher puis lire une fiche avec le SDK MCP

Avec Node.js 20 ou ultérieur, installe npm install @modelcontextprotocol/sdk@1.30.0, puis enregistre ce code dans un fichier .mjs. Le SDK gère l’initialisation et les en-têtes du protocole. La lecture utilise l’identifiant réellement renvoyé par la recherche. Conserve le champ url comme citation visible dans ton interface.

```javascript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'exemple-permis-online', version: '1.0.0' }, { capabilities: {} });
const transport = new StreamableHTTPClientTransport(new URL('https://permis.online/mcp'));

function readTool(result) {
  if (result.isError) throw new Error('L’outil MCP n’a pas pu traiter la demande.');
  if (result.structuredContent) return result.structuredContent;
  const content = result.content?.find(item => item.type === 'text');
  if (!content) throw new Error('Réponse MCP sans contenu.');
  return JSON.parse(content.text);
}

try {
  await client.connect(transport);
  const available = await client.listTools();
  if (!['search', 'fetch'].every(name => available.tools.some(tool => tool.name === name))) {
    throw new Error('Les outils attendus ne sont pas disponibles.');
  }
  const search = readTool(await client.callTool({
    name: 'search', arguments: { query: 'permis provisoire' }
  }));
  if (!search.results.length) {
    console.log('Aucune fiche trouvée.');
  } else {
    const record = readTool(await client.callTool({
      name: 'fetch', arguments: { id: search.results[0].id }
    }));
    console.log(JSON.stringify(record, null, 2));
  }
} finally {
  await client.close();
}
```

## Retrouver la version actuelle d’une information

L’API et le serveur MCP donnent accès aux publications publiques de Permis Online. Les informations disponibles suivent les mises à jour du site, avec un lien vers la page d’origine et les références associées.

Pour préparer une réponse ou actualiser ton outil, consulte à nouveau les fiches utiles. Tu retrouves ainsi leur version disponible, leurs sources et leurs dates.

## Réutiliser en citant la source

Les contenus publics de Permis Online peuvent être consultés, cités et résumés pour documenter une réponse ou construire un outil, y compris commercial, avec une attribution visible et un lien vers la page utilisée : « Source : Permis Online ».

Conserve les références, la région et les réserves qui accompagnent l’information. Indique les adaptations apportées et distingue les règles officielles des analyses, offres et contenus pédagogiques de Permis Online.

Les documents et visuels de tiers restent soumis à leurs propres conditions. Pour republier intégralement un cours ou un article de Permis Online, demande une autorisation à contact@permis.online. L’accès aux données ne vaut pas partenariat ni approbation de ton service par Permis Online.

## Limites et références

120 requêtes par minute et par adresse IP, partagées entre API et MCP. En cas de réponse 429, respecter Retry-After ; 400 : corriger les paramètres ; 404 : rechercher à nouveau ; 503 : réessayer plus tard avec des tentatives bornées. Le service restitue les fiches publiées. Le champ bibliography contient les références bibliographiques citées dans les cours.

- [Fiches de référence](https://permis.online/brand-facts/)
- [Sources et références](https://permis.online/sources/)
- [Fiches en Markdown](https://permis.online/brand-facts.md)
- [Fiches en JSON](https://permis.online/.well-known/brand-facts.json)
- [Index pour les assistants](https://permis.online/llms.txt)
- [Données et intégrations](https://permis.online/donnees/)
- [API des contenus publics de Permis Online](https://permis.online/donnees/api/)
- [Serveur MCP Permis Online](https://permis.online/donnees/mcp/)
