New

VoyageIA — Agent MCP Conseiller Voyage

Agent IA conversationnel connecté à une base de données voyages et à une API météo en temps réel, via le protocole MCP (Model Context Protocol). Déployé sur cluster k3s, secrets gérés par Vault.

Java 21MCPPostgreSQLk3sVaultOpenWeatherMapDocker
Architecture

Agent Claude

Interface conversationnelle via Claude Desktop ou API Anthropic. Détecte les besoins et délègue au serveur MCP.

Serveur MCP Java

Cœur du système. Expose les outils métier via HTTP/SSE. Tourne dans k3s, exposé sur mcp.ouertani.fr.

PostgreSQL

Base de données voyages sur Synology. Accès read-only via utilisateur dédié mcp_readonly.

API Météo

OpenWeatherMap — données météo en temps réel pour enrichir les recommandations de l'agent.

Vault

Gestion des secrets Kubernetes. Aucun mot de passe en clair dans les manifests ou le code.

Audit souverain

Chaque appel d'outil est tracé dans mcp_audit — sessions, interactions, propositions.

Outils MCP exposés
Outil Paramètres Source Droit requis
rechercher_voyage() destination, budget, personnes PostgreSQL SELECT uniquement
get_disponibilites() hotel_id, date_debut, duree PostgreSQL SELECT uniquement
get_dossier_client() client_id PostgreSQL SELECT uniquement
get_meteo() ville, date OpenWeatherMap API API Key (Vault)
Sécurité & gouvernance
Utilisateur PostgreSQL read-only

L'agent ne peut physiquement pas modifier ou supprimer de données. GRANT SELECT uniquement.

Exposition minimale

Seuls 4 outils sont exposés. Aucun outil d'écriture, de suppression ou d'administration.

Human in the Loop

Toute action sensible demande une confirmation humaine explicite avant exécution.

Secrets via Vault

Aucun credential en dur. Les secrets sont injectés dans les pods k3s depuis HashiCorp Vault.

Schema d'audit
mcp_audit.sessions Une ligne par conversation — uuid, utilisateur, canal, statut
mcp_audit.interactions Chaque question posée, réponse de l'agent, temps de réponse
mcp_audit.tool_calls Chaque outil appelé avec paramètres IN/OUT, durée, succès
mcp_audit.proposals Ce que l'agent a proposé + décision humaine (accepted / refused / pending)
Déploiement k3s
1
Build Docker

Image Java 21 containerisée — eclipse-temurin:21-jre, port 8080, transport HTTP/SSE.

2
Secrets Vault

db_password et weather_api_key injectés via Vault Agent dans le pod k3s.

3
Ingress k3s

Exposition sur mcp.ouertani.fr via Traefik — TLS automatique, reverse proxy.

4
Connexion Claude

Configuration MCP pointant vers https://mcp.ouertani.fr — aucun client local requis.

MCP Server

mcp.ouertani.fr

pgAdmin

Base VoyageIA

Vault

Secrets MCP