View a markdown version of this page

OpenSearch serveur MCP - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

OpenSearch serveur MCP

OpenSearch Le serveur MCP (opensearch-mcp-server-py) est une implémentation open source du protocole Model Context pour OpenSearch. Il se présente OpenSearch APIs sous forme d'outils que les assistants d'IA et les frameworks d'agents peuvent appeler directement. Vous pouvez donc poser des questions telles que « Quels index existent dans mon cluster ? » ou « Montrez-moi les requêtes les plus lentes de la dernière heure » et l'agent gère les appels d'API en votre nom.

Le serveur fonctionne à la fois avec les domaines OpenSearch de service gérés et avec les collections OpenSearch sans serveur. Vous pouvez le connecter au codage IDEs (Kiro, Claude Code, Cursor), aux assistants d'IA de bureau (Claude Desktop) et aux frameworks d'agents (Strands Agents, LangGraph).

Conditions préalables

  • Python 3.10 ou version ultérieure.

  • uv(recommandé) oupip.

  • Un point de OpenSearch terminaison accessible : un domaine de OpenSearch service, une collection OpenSearch sans serveur ou un cluster autogéré OpenSearch .

  • Informations d'identification avec autorisation d'appeler le OpenSearch APIs nom que vous souhaitez exposer. Pour les politiques IAM relatives aux domaines OpenSearch de service, consultezPolitiques basées sur l’identité. Pour les politiques d'accès aux données OpenSearch sans serveur, voirContrôle d'accès aux données pour Amazon OpenSearch Serverless.

Installation

Exécutez le serveur avec uvx (aucune installation requise) ou installez-le localement :

# Run directly with uvx (recommended – no install step) uvx opensearch-mcp-server-py # Or install with pip pip install opensearch-mcp-server-py

La plupart des utilisateurs configurent leur assistant IDE ou AI pour démarrer le serveur automatiquement. Voir Configuration dans un IDE de codage et Utilisation avec des frameworks d'agents pour des exemples.

Authentification

Configurez l'authentification via des variables d'environnement (mode cluster unique) ou par cluster dans un fichier de configuration YAML (mode multi-clusters). Le serveur applique les méthodes d'authentification dans l'ordre de priorité suivant : aucune authentification, basée sur l'en-tête, rôle IAM, authentification de base, clés d'accès. AWS

Rôle IAM (SigV4) : recommandé pour les domaines de service OpenSearch
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_IAM_ARN="arn:aws:iam::123456789012:role/YourOpenSearchRole" export AWS_REGION="us-east-1"

Le rôle doit être autorisé à appeler les appels utilisés OpenSearch APIs par le serveur. Consultez Exemples de stratégies supplémentaires des exemples de politiques.

AWS informations d'identification ou profil
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile"
OpenSearch Collections sans serveur

Réglez de AWS_OPENSEARCH_SERVERLESS=true telle sorte que le serveur signe les demandes avec le nom du aoss service au lieu dees. Assurez-vous que le principal est autorisé à accéder aux données par le biais d'une politique d'accès aux données relative à la collection (voirContrôle d'accès aux données pour Amazon OpenSearch Serverless).

export OPENSEARCH_URL="https://collection-id.us-east-1.aoss.amazonaws.com" export AWS_OPENSEARCH_SERVERLESS="true" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile"
Authentification basique
export OPENSEARCH_URL="https://your-domain-endpoint" export OPENSEARCH_USERNAME="username" export OPENSEARCH_PASSWORD="password"
Important

N'intégrez pas de mots de passe dans les fichiers de configuration qui peuvent être enregistrés dans le contrôle de source. Utilisez le gestionnaire secret ou l'environnement shell de votre système d'exploitation pour fournir des informations d'identification.

Considérations sur la sécurité

Le serveur MCP fonctionne avec les informations d'identification que vous fournissez. Tout ce que ces informations d'identification sont autorisées à faire, l'assistant AI peut potentiellement le déclencher en votre nom. Suivez les pratiques suivantes :

  • Utilisez des informations d'identification dotées du moindre privilège. Créez un rôle ou un OpenSearch utilisateur IAM dédié adapté aux index et aux actions dont l'agent a besoin. Évitez de réutiliser les informations d'identification de l'administrateur.

  • Développement et production séparés. Dirigez le serveur vers des clusters non liés à la production à des fins d'exploration. Utilisez le mode multimode avec des noms de cluster explicites lorsque l'accès à la production est requis.

  • Outils de filtrage Désactivez les catégories d'outils dont votre flux de travail n'a pas besoin. OPENSEARCH_DISABLED_CATEGORIES=core_toolsParamétré pour désactiver l'ensemble par défaut ou OPENSEARCH_ENABLED_CATEGORIES pour n'activer que des catégories spécifiques.

  • Protégez les informations d'identification. Préférez les AWS profils et les rôles IAM aux clés d'accès statiques. Ne publiez jamais de secrets dans les fichiers de configuration dans le contrôle de source.

  • Passez en revue les résultats de l'outil. Les réponses de l'outil MCP sont renvoyées au modèle de langage sous forme de contexte. Évitez d'exécuter le serveur sur des index contenant des données sensibles que vous ne voulez pas exposer à votre fournisseur d'IA.

Résolution des problèmes

L'assistant ne voit aucun OpenSearch outil

Vérifiez que votre fichier de configuration est un JSON valide et redémarrez complètement le client. La plupart des clients ne chargent les serveurs MCP qu'au démarrage.

Les appels d'outils retournent 403 Forbidden

Vos informations d'identification ne sont pas autorisées à accéder à l'API que l'outil appelle. Pour les domaines de OpenSearch service, consultez la politique d'accès au domaine et les politiques IAM associées à votre rôle. Pour OpenSearch Serverless, consultez la politique d'accès aux données de la collection.

Erreurs de non-concordance des signatures avec Serverless OpenSearch

Assurez-vous qu'AWS_OPENSEARCH_SERVERLESS=trueil est réglé (ou qu'il est is_serverless: true en mode multiple). Dans le cas contraire, le serveur signe avec le nom du es service au lieu deaoss.

L'outil dont vous avez besoin n'est pas disponible

Vérifiez s'il appartient à une catégorie autre que celle par défaut et activez-le avec OPENSEARCH_ENABLED_CATEGORIES ou enabled_categories dans votre configuration YAML.

Pour obtenir de l'aide supplémentaire, ouvrez un problème dans le opensearch-mcp-server-py référentiel.

Ressources supplémentaires