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