Aller au contenu principal

Passerelle MCP

La passerelle MCP de STOA est une passerelle API MCP-native dédiée, permettant aux agents IA comme Claude, GPT et les applications LLM personnalisées de consommer les API d'entreprise de manière sécurisée via le Model Context Protocol.

Vue d'ensemble​

La passerelle MCP fait le pont entre les agents IA et votre écosystème d'API. Elle gère l'authentification, la limitation de débit, la validation des abonnements et l'isolation multi-tenant — tout en parlant le protocole MCP natif.

Implémentation actuelle​

La passerelle MCP est construite avec Python et FastAPI pour un développement rapide et flexible.

AspectDétails
LangagePython 3.12+
FrameworkFastAPI (async)
Moteur de politiquesOPA (Open Policy Agent)
ProtocoleMCP 2024-11-05
Feuille de route

Une implémentation haute performance en Rust + Tokio + Hyper est prévue pour le T4 2026, apportant :

  • Accélération au niveau noyau via eBPF
  • Latence additionnelle inférieure à la milliseconde
  • Empreinte mémoire significativement réduite

Consultez notre Feuille de route pour plus de détails.

Fonctionnalités clés​

🔐 Sécurité entreprise​

  • Intégration Keycloak OIDC avec multi-realm par tenant
  • Validation de jetons JWT avec mappage d'audience
  • Gestion des clés API avec rotation automatique

🏢 Isolation multi-tenant​

  • Namespace Kubernetes par tenant (tenant-{name})
  • Politiques réseau empêchant la communication inter-tenant
  • Limitation de débit et quotas par tenant

📊 Observabilité complète​

  • Métriques Prometheus sur le port 9090
  • Traçage des requêtes avec identifiants de corrélation
  • Analytique d'utilisation par abonnement

⚡ Prêt pour la production​

  • Traitement asynchrone des requêtes avec FastAPI
  • Pipeline de métrologie basé sur Kafka/Redpanda
  • Pooling de connexions et regroupement de requêtes
  • Application des politiques basée sur OPA

Support du protocole MCP​

STOA implémente la spécification MCP complète (version 2024-11-05) avec des extensions entreprise.

Méthodes supportées​

MéthodeDescription
tools/listDécouvrir les outils disponibles
tools/callInvoquer un outil
resources/listLister les ressources disponibles
resources/readLire le contenu d'une ressource
prompts/listLister les prompts disponibles
prompts/getObtenir un modèle de prompt

Options de transport​

  • HTTP/SSE : Server-Sent Events pour les réponses en streaming
  • WebSocket : Communication bidirectionnelle (prévu)

Flux d'authentification​

Visibilité des outils multi-tenant​

Chaque tenant ne voit que les outils auxquels il est autorisé à accéder :

TenantOutils visibles
Parzival (High Five)stoa_*, highfive:*
Sorrento (IOI)stoa_*, ioi:*
Halliday (Admin)Tous les outils (inter-tenant)

Configuration​

Variables d'environnement​

# Serveur
MCP_GATEWAY_HOST=0.0.0.0
MCP_GATEWAY_PORT=3001

# Control Plane
CONTROL_PLANE_URL=http://control-plane:8080

# Keycloak
KEYCLOAK_URL=https://auth.<YOUR_DOMAIN>
KEYCLOAK_REALM=stoa

# OPA (pour les politiques)
OPA_URL=http://opa:8181

Déploiement Kubernetes​

apiVersion: apps/v1
kind: Deployment
metadata:
name: mcp-gateway
namespace: stoa-system
spec:
replicas: 3
template:
spec:
containers:
- name: mcp-gateway
image: stoaplatform/mcp-gateway:latest
ports:
- containerPort: 3001
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi

Intégration avec Claude.ai​

La passerelle MCP de STOA s'intègre directement avec Claude.ai via le connecteur MCP :

  1. Configurer le serveur MCP dans les paramètres de Claude.ai
  2. S'authentifier avec votre clé API STOA
  3. Découvrir les outils automatiquement via tools/list
  4. Invoquer les outils à travers une conversation naturelle

Exemple d'invocation d'outil​

{
"method": "tools/call",
"params": {
"name": "stoa_catalog",
"arguments": {
"action": "list",
"status": "active"
}
}
}

Métriques et monitoring​

Métriques Prometheus​

MétriqueTypeDescription
mcp_requests_totalCounterTotal des requêtes MCP
mcp_request_duration_secondsHistogramLatence des requêtes
mcp_tool_invocations_totalCounterInvocations d'outils par nom
mcp_errors_totalCounterErreurs par type

Tableau de bord Grafana​

Tableaux de bord pré-configurés disponibles pour :

  • Débit et latence des requêtes
  • Patterns d'invocation des outils
  • Taux d'erreur par tenant
  • Événements de limitation de débit

Étapes suivantes​