Skip to main content
Glama
lnpapin

Health Canada Summary Reports MCP Server

by lnpapin
README.md
# Health Canada Summary Reports — serveur MCP

Serveur [MCP](https://modelcontextprotocol.io/) qui expose l'API publique « Rapports sommaires » de Santé Canada
(Résumés des motifs de décision / SBD, Décisions réglementaires / RDS, Résumés d'examen d'innocuité / SSR)
sous forme d'outils utilisables par un agent compatible MCP — notamment un agent **Microsoft Copilot Studio**.

Outil compagnon de [health-canada-summary-reports-explorer](https://github.com/lnpapin/health-canada-summary-reports-explorer)
(la version web), même API source, aucune donnée n'est stockée ni envoyée ailleurs qu'à `health-products.canada.ca`.

## Outils exposés

- **`searchHealthCanadaReports`** — recherche par nom de produit, fabricant, ingrédient, domaine thérapeutique
  ou numéro de contrôle. Retourne une courte liste d'ID correspondants.
- **`getHealthCanadaReport`** — récupère le texte complet d'un rapport par son ID exact (formaté en Markdown).

Les deux outils acceptent `reportType` (`sbd` | `rds` | `ssr`) et `lang` (`fr` | `en`, défaut `fr`).

## Démarrage local

Prérequis : Node.js 18+.

```bash
npm install
npm run build
npm start
```

Le serveur écoute sur `http://localhost:3000/mcp`.

## Connecter le serveur à Copilot Studio

Copilot Studio doit joindre le serveur via une URL **HTTPS publique**. Pour du développement/test, le plus simple
est d'utiliser [Dev Tunnels](https://learn.microsoft.com/azure/developer/dev-tunnels/overview) (outil officiel Microsoft) :

```bash
devtunnel host -p 3000 --allow-anonymous
```

Copiez l'URL générée (format `https://xxxxx-3000.devtunnels.ms` — le port est un suffixe dans le nom d'hôte, pas
`:3000`) et ajoutez `/mcp` à la fin.

Ensuite, dans Copilot Studio :

1. Ouvrez votre agent → onglet **Outils** (Tools) → **Ajouter un outil** (Add a tool).
2. Sélectionnez **Model Context Protocol**.
3. Renseignez :
   - **Nom du serveur** : `Rapports sommaires Santé Canada`
   - **Description** : `Recherche et consultation des rapports de décision réglementaire et d'innocuité de Santé Canada (médicaments et instruments médicaux).`
   - **URL du serveur** : `https://xxxxx-3000.devtunnels.ms/mcp`
   - **Authentification** : `Aucune` (l'API source est publique, sans clé)
4. Cliquez sur **Créer**, puis testez dans l'onglet **Aperçu** avec une question comme
   « Pourquoi Santé Canada a-t-il approuvé Abilify ? » ou « Y a-t-il eu un examen de sécurité sur le tofacitinib ? ».

## Déploiement en production

Un tunnel de développement n'est pas destiné à rester ouvert en continu. Pour un usage permanent, hébergez ce
serveur Node.js sur une plateforme classique (Azure Container Apps, Azure App Service, Render, Fly.io, etc.) et
utilisez son URL HTTPS stable à la place de l'URL devtunnel dans Copilot Studio. Le serveur ne nécessite aucune
base de données ni variable d'environnement (à l'exception optionnelle de `PORT`).

## Structure

```
src/
├── index.ts   # serveur MCP (transport Streamable HTTP sur /mcp)
├── api.ts     # client de l'API Santé Canada + cache en mémoire des listes
└── format.ts  # conversion des champs HTML de l'API en Markdown lisible
```