opensearch-mcp-server-py

opensearch-mcp-server-py es un servidor de Protocolo de Contexto de Modelo (MCP) para OpenSearch que permite a los asistentes de IA interactuar con clústeres de OpenSearch. Proporciona una interfaz estandarizada para que los modelos de IA realicen operaciones como buscar índices, recuperar mapeos y gestionar shards a través de protocolos stdio y de transmisión (SSE/HTTP transmisible).

Documentación

OpenSearch logo

Servidor MCP de OpenSearch

opensearch-mcp-server-py es un servidor de Protocolo de Contexto de Modelo (MCP) para OpenSearch que permite a los asistentes de IA interactuar con clústeres de OpenSearch. Proporciona una interfaz estandarizada para que los modelos de IA realicen operaciones como buscar índices, recuperar mapeos y gestionar shards a través de protocolos stdio y streaming (SSE/HTTP transmisible).

Características clave:

  • Integración perfecta con asistentes de IA y LLMs a través del protocolo MCP
  • Soporte para transportes de servidor stdio y streaming (SSE y HTTP transmisible)
  • Herramientas integradas para operaciones comunes de OpenSearch
  • Parámetros de conexión dinámicos por llamada para apuntar a diferentes clústeres sin reconfigurar el servidor
  • Integración fácil con Claude Desktop y LangChain
  • Autenticación segura mediante autenticación básica, roles de IAM, autenticación basada en encabezados y mTLS de OpenSearch

Para una configuración detallada, incluido el despliegue en Kubernetes y la configuración de mTLS, consulte la Guía de usuario.

Instalación de opensearch-mcp-server-py

Opensearch-mcp-server-py se puede instalar desde PyPI mediante pip:

pip install opensearch-mcp-server-py

Configuración sin variables

El servidor se puede iniciar sin ninguna variable de entorno. Los agentes proporcionan los detalles de conexión dinámicamente en cada llamada a una herramienta:

{
  "mcpServers": {
    "opensearch": {
      "command": "uvx",
      "args": ["opensearch-mcp-server-py"]
    }
  }
}

Con esta configuración, los agentes pasan opensearch_url y los parámetros de autenticación directamente al llamar a cualquier herramienta. Esto es útil cuando los agentes descubren endpoints desde una base de conocimiento, un runbook o un SOP, o cuando un solo agente necesita trabajar con múltiples clústeres en una sesión. Consulte Parámetros de conexión dinámicos para más detalles.

Herramientas disponibles

De forma predeterminada, solo están habilitadas las herramientas principales para proporcionar funcionalidad esencial de OpenSearch:

Herramientas principales (habilitadas por defecto)

Las herramientas principales se agrupan bajo la categoría core_tools y se pueden deshabilitar de una vez usando OPENSEARCH_DISABLED_CATEGORIES=core_tools. Evite crear categorías personalizadas con este nombre, ya que sobrescribirían la categoría integrada.

  • ListIndexTool: Lista todos los índices en OpenSearch con información completa, incluidos docs.count, docs.deleted, store.size, etc. Si se proporciona un parámetro de índice, devuelve información detallada sobre ese índice específico.
  • IndexMappingTool: Recupera la información de mapeo y configuración de un índice en OpenSearch.
  • SearchIndexTool: Busca en un índice usando una consulta escrita en lenguaje específico de dominio (DSL) de consultas en OpenSearch.
  • GetShardsTool: Obtiene información sobre los shards en OpenSearch.
  • ClusterHealthTool: Devuelve información básica sobre la salud del clúster.
  • CountTool: Devuelve el número de documentos que coinciden con una consulta.
  • ExplainTool: Devuelve información sobre por qué un documento específico coincide (o no coincide) con una consulta.
  • MsearchTool: Permite ejecutar varias operaciones de búsqueda en una sola solicitud.
  • [GenericOpenSearchApiTool]: Una herramienta flexible que puede llamar a cualquier endpoint de la API de OpenSearch con rutas, métodos, parámetros de consulta y cuerpos de solicitud personalizados. Reduce la proliferación de herramientas al proporcionar una interfaz única para todas las API de OpenSearch.

Herramientas adicionales (deshabilitadas por defecto)

Las siguientes herramientas están disponibles pero deshabilitadas por defecto. Para habilitarlas, consulte la sección Filtro de herramientas en la Guía de usuario.

  • GetClusterStateTool: Obtiene el estado actual del clúster, incluida la información de nodos, configuraciones de índices y más.
  • GetSegmentsTool: Obtiene información sobre los segmentos de Lucene en los índices, incluido el uso de memoria, recuentos de documentos y tamaños de segmentos.
  • CatNodesTool: Obtiene información sobre los nodos en el clúster de OpenSearch, incluidas métricas del sistema como uso de CPU, memoria, espacio en disco y roles de nodo.
  • GetNodesTool: Obtiene información detallada sobre los nodos en el clúster de OpenSearch, incluida información estática como detalles del sistema host, información de JVM, tipo de procesador, configuraciones de nodo, grupos de subprocesos, complementos instalados y más.
  • GetIndexInfoTool: Obtiene información detallada sobre un índice, incluidos mapeos, configuraciones y alias. Admite comodines en los nombres de índices.
  • GetIndexStatsTool: Obtiene estadísticas sobre un índice, incluido el recuento de documentos, tamaño de almacenamiento, métricas de rendimiento de indexación y búsqueda.
  • GetQueryInsightsTool: Obtiene información de consultas del endpoint /_insights/top_queries, mostrando información sobre patrones de consulta y rendimiento.
  • GetNodesHotThreadsTool: Obtiene información sobre hilos activos en los nodos del clúster desde el endpoint /_nodes/hot_threads.
  • GetAllocationTool: Obtiene información sobre la asignación de shards entre los nodos del clúster desde el endpoint /_cat/allocation.
  • GetLongRunningTasksTool: Obtiene información sobre tareas de larga duración en el clúster, ordenadas por tiempo de ejecución en orden descendente.

Herramientas de memoria agéntica (deshabilitadas por defecto)

Las siguientes herramientas exponen la API de memoria agéntica de OpenSearch, un sistema de memoria del lado del servidor integrado en el propio OpenSearch. El clúster de OpenSearch gestiona contenedores de memoria, sesiones e inferencia (extracción de hechos de conversaciones basada en LLM). Estas herramientas requieren OpenSearch 3.3.0 o posterior.

Cuándo usarlas: Desea que OpenSearch gestione todo el ciclo de vida de la memoria, incluida la inferencia basada en LLM para extraer hechos de conversaciones sin procesar, tipos de memoria estructurados (sesiones, trabajo, largo plazo, historial) y espacios de nombres gestionados por el servidor. Ideal para pipelines agénticos de producción donde la gestión de memoria debe centralizarse y no depender del cliente MCP.

Configuración: Debe crear un contenedor de memoria en OpenSearch antes de usar estas herramientas (operación administrativa única que requiere conector LLM y configuración del modelo de incrustación). Consulte Herramientas de memoria agéntica en la Guía de memoria del agente.

Habilítelas con OPENSEARCH_ENABLED_CATEGORIES=agentic_memory. Cuando memory_container_id está configurado mediante la sección de configuración agentic_memory o la variable de entorno OPENSEARCH_MEMORY_CONTAINER_ID, se rellena automáticamente en todas las llamadas a herramientas.

Herramientas de observabilidad (deshabilitadas por defecto)

Las herramientas de observabilidad se agrupan bajo la categoría observability y se pueden habilitar usando OPENSEARCH_ENABLED_CATEGORIES=observability o agregando enabled_categories: [observability] al archivo de configuración. Alternativamente, habilite la categoría analytics para obtener tanto herramientas de observabilidad como de habilidades a la vez.

  • PPLQueryTool: Ejecuta una consulta PPL (lenguaje de procesamiento canalizado) contra OpenSearch. PPL proporciona una sintaxis basada en tuberías para consultar datos (source=<index> | <command> | <command>), con soporte para filtrado, agregación, ordenamiento, deduplicación y selección de campos. Admite formatos de salida jdbc, csv y raw.

Herramientas del banco de trabajo de relevancia de búsqueda (deshabilitadas por defecto)

Las herramientas del banco de trabajo de relevancia de búsqueda se agrupan bajo la categoría search_relevance y se pueden habilitar de una vez usando OPENSEARCH_ENABLED_CATEGORIES=search_relevance o agregando enabled_categories: [search_relevance] o agregando explícitamente herramientas individuales a su archivo de configuración. Consulte la sección Filtro de herramientas en la Guía de usuario para obtener información adicional sobre cómo filtrar herramientas.

  • CreateSearchConfigurationTool: Crea una configuración de búsqueda que consiste en un nombre, un cuerpo de consulta (una consulta en lenguaje específico de dominio de consultas de OpenSearch) y el índice de destino.
  • GetSearchConfigurationTool: Recupera una configuración de búsqueda por ID.
  • DeleteSearchConfigurationTool: Elimina una configuración de búsqueda por ID.
  • CreateQuerySetTool: Crea un conjunto de consultas que consiste en un nombre, una descripción y una lista de consultas.
  • SampleQuerySetTool: Muestrea un conjunto de consultas basado en datos de UBI con diferentes técnicas de muestreo estadístico.
  • GetQuerySetTool: Recupera un conjunto de consultas por ID.
  • DeleteQuerySetTool: Elimina un conjunto de consultas por ID.
  • CreateJudgmentListTool: Crea una lista de juicios con juicios provenientes de un proceso externo.
  • CreateLLMJudgmentListTool: Crea una lista de juicios usando un LLM.
  • CreateUBIJudgmentListTool: Crea una lista de juicios basada en comentarios implícitos (datos de información de comportamiento del usuario).
  • GetJudgmentListTool: Recupera una lista de juicios por ID.
  • DeleteJudgmentListTool: Elimina una lista de juicios por ID.
  • CreateExperimentTool: Crea un experimento de relevancia de búsqueda. Admite PAIRWISE_COMPARISON (compara 2 configuraciones de búsqueda), POINTWISE_EVALUATION (evalúa 1 configuración contra listas de juicios) e HYBRID_OPTIMIZER (optimiza 1 configuración usando listas de juicios).
  • GetExperimentTool: Recupera un experimento por ID.
  • DeleteExperimentTool: Elimina un experimento por ID.
  • SearchQuerySetsTool: Busca conjuntos de consultas usando el DSL de consultas de OpenSearch. Usa match_all por defecto si no se proporciona un cuerpo de consulta.
  • SearchSearchConfigurationsTool: Busca configuraciones de búsqueda usando el DSL de consultas de OpenSearch. Usa match_all por defecto si no se proporciona un cuerpo de consulta.
  • SearchJudgmentsTool: Busca juicios usando el DSL de consultas de OpenSearch. Usa match_all por defecto si no se proporciona un cuerpo de consulta.
  • SearchExperimentsTool: Busca experimentos usando el DSL de consultas de OpenSearch. Usa match_all por defecto si no se proporciona un cuerpo de consulta.

Herramientas de habilidades (deshabilitadas por defecto)

Las herramientas de habilidades se agrupan bajo la categoría skills y se pueden habilitar de una vez usando OPENSEARCH_ENABLED_CATEGORIES=skills o agregando enabled_categories: [skills] al archivo de configuración. Alternativamente, habilite la categoría analytics para obtener tanto herramientas de habilidades como de observabilidad a la vez. Consulte la sección Filtro de herramientas en la Guía de usuario para obtener información adicional sobre cómo filtrar herramientas.

  • DataDistributionTool: Analiza patrones de distribución de datos y frecuencias de valores de campos dentro de índices de OpenSearch. Admite tanto análisis de un solo conjunto de datos como análisis comparativo entre dos períodos de tiempo para identificar cambios en la distribución.
  • LogPatternAnalysisTool: Detecta patrones y secuencias de registros anómalos mediante análisis comparativo entre rangos de tiempo de referencia y selección. Admite análisis de secuencias de registros con correlación de trazas, análisis de diferencias de patrones de registros y análisis de información de registros para detección de errores.
  • MetricChangeAnalysisTool: Compara distribuciones percentiles (P50, P90) de todos los campos numéricos entre un rango de tiempo de referencia y uno de selección, y luego devuelve los campos principales clasificados por puntuación de cambio. Útil para identificar qué métricas numéricas cambiaron más durante una ventana de anomalía.

Herramientas de memoria (opt-in)

Las herramientas de memoria le dan al propio agente MCP una memoria persistente entre sesiones, respaldada por OpenSearch. El agente decide qué guardar como declaraciones de texto plano; OpenSearch las almacena y las indexa semánticamente. Habilítelas con MEMORY_TOOLS_ENABLED=true. Consulte la Guía de memoria del agente para obtener instrucciones completas de configuración.

Cuándo usarlas: Desea una capa de memoria ligera y controlada por el agente que funcione con cualquier IDE compatible con MCP (Kiro, Claude Code, Cursor). El agente controla qué se recuerda: no necesita conectores LLM ni modelos de incrustación que configurar en el lado de OpenSearch. Requiere Amazon OpenSearch Service (dominio administrado 2.19+ o Serverless) para el enriquecimiento semántico automático. Consulte la Guía de memoria del agente para obtener instrucciones completas de configuración.

  • SaveMemoryTool: Guarda hechos, decisiones y preferencias en almacenamiento persistente con enriquecimiento semántico automático.
  • SearchMemoryTool: Busca memorias usando lenguaje natural con clasificación sensible a la actualidad.
  • DeleteMemoryTool: Elimina memorias desactualizadas o incorrectas por ID de documento.

Parámetros de las herramientas

Todas las herramientas aceptan los siguientes parámetros de conexión opcionales que anulan la configuración de variables de entorno del servidor en cada llamada. Cuando se omiten todos, el servidor usa sus variables de entorno configuradas o la configuración del clúster como de costumbre. Cuando se proporciona opensearch_url, las credenciales deben provenir de esa misma llamada: el servidor no usará sus propias credenciales contra una URL elegida por el llamador, a menos que el operador establezca OPENSEARCH_ALLOW_AMBIENT_AWS_FALLBACK=true para compartir sus credenciales de AWS.

ParámetroTipoDescripción
opensearch_urlstringURL del endpoint de OpenSearch. Anula OPENSEARCH_URL.
opensearch_usernamestringNombre de usuario para autenticación básica. Anula OPENSEARCH_USERNAME.
opensearch_passwordstringContraseña para autenticación básica. Anula OPENSEARCH_PASSWORD.
opensearch_no_authbooleanConectar sin autenticación. Anula OPENSEARCH_NO_AUTH.
aws_regionstringRegión de AWS. Anula AWS_REGION.
aws_iam_arnstringARN del rol IAM. Anula AWS_IAM_ARN.
aws_profilestringNombre del perfil de AWS. Anula AWS_PROFILE.
aws_opensearch_serverlessbooleanUsar OpenSearch Serverless. Anula AWS_OPENSEARCH_SERVERLESS.
opensearch_ssl_verifybooleanEstablecer como true para requerir verificación de certificado SSL. Un valor false se ignora, ya que solo OPENSEARCH_SSL_VERIFY puede deshabilitarlo.
opensearch_timeoutintegerTiempo de espera de conexión en segundos. Anula OPENSEARCH_TIMEOUT.

Esto permite a los agentes apuntar dinámicamente a diferentes clústeres por llamada de herramienta sin reconfigurar el servidor (solo modo único). Las credenciales deben provenir de la misma llamada que la URL, a menos que OPENSEARCH_ALLOW_AMBIENT_AWS_FALLBACK=true permita al servidor firmar URLs proporcionadas por el llamador con sus propias credenciales de AWS. OPENSEARCH_SSRF_GUARD=true restringe las URLs proporcionadas por el llamador a direcciones HTTPS públicas. Consulte Parámetros de conexión dinámicos en la Guía del usuario para obtener detalles y ejemplos.

Además de los parámetros de conexión comunes anteriores, cada herramienta acepta sus propios parámetros específicos:

Nota: El parámetro opensearch_url que se enumera en las herramientas individuales a continuación es parte de los parámetros de conexión comunes descritos anteriormente. Todos los parámetros de conexión comunes (opensearch_username, opensearch_password, aws_region, etc.) están disponibles en todas las herramientas, pero no se repiten en la lista de parámetros de cada herramienta por brevedad.

  • ListIndexTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (opcional): El nombre del índice del que obtener información detallada. Si se proporciona, devuelve información detallada sobre este índice específico en lugar de listar todos los índices.
  • IndexMappingTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice del que recuperar las asignaciones
  • SearchIndexTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice en el que buscar
    • query_dsl (obligatorio): La consulta de búsqueda en formato OpenSearch Query DSL
    • format (opcional): El formato de la respuesta de SearchIndexTool. Las opciones son csv y json
    • size (opcional): El tamaño de la respuesta de SearchIndexTool. El valor predeterminado es 10, el máximo es 100 (configurable). Para cambiar el límite máximo, establezca max_size_limit mediante argumentos de CLI o archivo de configuración. Consulte Personalización de herramientas para obtener detalles.
  • GetShardsTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice del que obtener información de fragmentos
  • ClusterHealthTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (opcional): Limitar el informe de salud a un índice específico
  • CountTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (opcional): El nombre del índice en el que contar documentos
    • body (opcional): Consulta en formato JSON para filtrar documentos
  • ExplainTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice del que recuperar el documento
    • id (obligatorio): El ID del documento a explicar
    • body (obligatorio): Consulta en formato JSON para explicar contra el documento
  • MsearchTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (opcional): Índice predeterminado en el que buscar
    • body (obligatorio): Cuerpo de solicitud de búsqueda múltiple en formato NDJSON
  • GetClusterStateTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • metric (opcional): Limitar la información devuelta a las métricas especificadas. Las opciones incluyen: _all, blocks, metadata, nodes, routing_table, routing_nodes, master_node, version
    • index (opcional): Limitar la información devuelta a los índices especificados
  • GetSegmentsTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (opcional): Limitar la información devuelta a los índices especificados. Si no se proporciona, devuelve segmentos para todos los índices
  • CatNodesTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • metrics (opcional): Una lista separada por comas de métricas para mostrar. Las métricas disponibles incluyen: id, name, ip, port, role, master, heap.percent, ram.percent, cpu, load_1m, load_5m, load_15m, disk.total, disk.used, disk.avail, disk.used_percent
  • GetNodesTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • node_id (opcional): Una lista separada por comas de IDs o nombres de nodos para limitar la información devuelta. Admite filtros de nodos como _local, _master, master:true, data:false, etc. El valor predeterminado es _all.
    • metric (opcional): Una lista separada por comas de grupos de métricas para incluir en la respuesta. Las opciones incluyen: settings, os, process, jvm, thread_pool, transport, http, plugins, ingest, aggregations, indices. El valor predeterminado son todas las métricas.
  • GetIndexInfoTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice del que obtener información detallada. Se admiten comodines.
  • GetIndexStatsTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • index (obligatorio): El nombre del índice del que obtener estadísticas. Se admiten comodines.
    • metric (opcional): Limitar la información devuelta a las métricas especificadas. Las opciones incluyen: _all, completion, docs, fielddata, flush, get, indexing, merge, query_cache, refresh, request_cache, search, segments, store, warmer, bulk
  • GetQueryInsightsTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
  • GetNodesHotThreadsTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
  • GetAllocationTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
  • GetLongRunningTasksTool

    • opensearch_url (opcional): La URL del clúster de OpenSearch a la que conectarse
    • limit (opcional): El número máximo de tareas a devolver. El valor predeterminado es 10.
  • CreateAgenticMemorySessionTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria donde se creará la sesión. Se establece automáticamente cuando se configura mediante la configuración agentic_memory o la variable de entorno OPENSEARCH_MEMORY_CONTAINER_ID. (Parámetro de ruta)
    • session_id (opcional): Un ID de sesión personalizado. Si no se proporciona, se genera un ID aleatorio. (Parámetro de cuerpo)
    • summary (opcional): Un resumen o descripción de la sesión. (Parámetro de cuerpo)
    • metadata (opcional): Metadatos adicionales para la sesión proporcionados como pares clave-valor. (Parámetro de cuerpo)
    • namespace (opcional): Información de espacio de nombres para organizar la sesión. (Parámetro de cuerpo)
  • AddAgenticMemoriesTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria al que agregar la memoria. Se establece automáticamente cuando se configura. (Parámetro de ruta)
    • messages (condicional): Una lista de mensajes. Obligatorio cuando payload_type es conversational. (Parámetro de cuerpo)
    • structured_data (condicional): Contenido de datos estructurados. Obligatorio cuando payload_type es data. (Parámetro de cuerpo)
    • binary_data (opcional): Contenido de datos binarios codificado como una cadena Base64 para cargas útiles binarias. (Parámetro de cuerpo)
    • payload_type (obligatorio): El tipo de carga útil. Los valores válidos son conversational o data. Consulte Tipos de carga útil. (Parámetro de cuerpo)
    • namespace (opcional): El contexto de espacio de nombres para organizar memorias (por ejemplo, user_id, session_id o agent_id). Si session_id no se especifica en el campo de espacio de nombres y disable_session: false (el valor predeterminado es true), se crea una nueva sesión con un nuevo ID de sesión. (Parámetro de cuerpo)
    • metadata (opcional): Metadatos adicionales para la memoria (por ejemplo, status, branch o campos personalizados). (Parámetro de cuerpo)
    • tags (opcional): Etiquetas para categorizar memorias. (Parámetro de cuerpo)
    • infer (opcional): Si se debe usar un LLM para extraer información clave (predeterminado: false). Cuando true, el LLM extrae información clave del texto original y la almacena como memoria. Consulte Modo de inferencia. (Parámetro de cuerpo)
  • GetAgenticMemoryTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria del que recuperar la memoria. Se establece automáticamente cuando se configura. (Parámetro de ruta)
    • type (obligatorio): El tipo de memoria. Los valores válidos son sessions, working, long-term y history. (Parámetro de ruta)
    • id (obligatorio): El ID de la memoria a recuperar. (Parámetro de ruta)
  • SearchAgenticMemoryTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria. Se establece automáticamente cuando se configura. (Parámetro de ruta)
    • type (obligatorio): El tipo de memoria. Los valores válidos son sessions, working, long-term y history. (Parámetro de ruta)
    • query (obligatorio): La consulta de búsqueda usando query DSL de OpenSearch. (Parámetro de cuerpo)
    • sort (opcional): Especificación de ordenación para los resultados de búsqueda. (Parámetro de cuerpo)
  • UpdateAgenticMemoryTool

  • memory_container_id (auto-rellenado): El ID del contenedor de memoria. Se establece automáticamente al configurarse. (Parámetro de ruta)

    • type (obligatorio): El tipo de memoria (sessions, working o long-term). (Parámetro de ruta)
    • id (obligatorio): El ID de la memoria a actualizar. (Parámetro de ruta)
    • Campos de solicitud de memoria de sesión:
      • summary (opcional): El resumen de la sesión. (Parámetro del cuerpo)
      • metadata (opcional): Metadatos adicionales para la memoria (por ejemplo, status, branch o campos personalizados). (Parámetro del cuerpo)
      • agents (opcional): Información adicional sobre los agentes. (Parámetro del cuerpo)
      • additional_info (opcional): Metadatos adicionales para asociar con la sesión. (Parámetro del cuerpo)
    • Campos de solicitud de memoria de trabajo
      • messages (opcional): Mensajes de conversación actualizados (para tipo de conversación). (Parámetro del cuerpo)
      • structured_data (opcional): Contenido de datos estructurados actualizado (para cargas útiles de memoria de datos). (Parámetro del cuerpo)
      • binary_data (opcional): Contenido de datos binarios actualizado (para cargas útiles de memoria de datos). (Parámetro del cuerpo)
      • tags (opcional): Etiquetas actualizadas para categorización. (Parámetro del cuerpo)
      • metadata (opcional): Metadatos adicionales para la memoria (por ejemplo, status, branch o campos personalizados). (Parámetro del cuerpo)
    • Campos de solicitud de memoria a largo plazo
      • memory (opcional): El contenido de memoria actualizado. (Parámetro del cuerpo)
      • tags (opcional): Etiquetas actualizadas para categorización. (Parámetro del cuerpo)
  • DeleteAgenticMemoryByIDTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria del cual eliminar la memoria. Se establece automáticamente al configurarse. (Parámetro de ruta)
    • type (obligatorio): El tipo de memoria a eliminar. Los valores válidos son sessions, working, long-term y history. (Parámetro de ruta)
    • id (obligatorio): El ID de la memoria específica a eliminar. (Parámetro de ruta)
  • DeleteAgenticMemoryByQueryTool

    • memory_container_id (auto-rellenado): El ID del contenedor de memoria del cual eliminar la memoria. Se establece automáticamente al configurarse. (Parámetro de ruta)
    • type (obligatorio): El tipo de memoria a eliminar. Los valores válidos son sessions, working, long-term y history. (Parámetro de ruta)
    • query (obligatorio): La consulta DSL de OpenSearch para coincidir con las memorias a eliminar. (Parámetro del cuerpo)
  • DataDistributionTool

    • index (obligatorio): Nombre del índice de OpenSearch de destino.
    • selectionTimeRangeStart (obligatorio): Hora de inicio para el período objetivo del análisis.
    • selectionTimeRangeEnd (obligatorio): Hora de finalización para el período objetivo del análisis.
    • timeField (obligatorio): Campo de fecha/hora para el filtrado.
    • baselineTimeRangeStart (opcional): Hora de inicio para el período de referencia.
    • baselineTimeRangeEnd (opcional): Hora de finalización para el período de referencia.
    • size (opcional): Número máximo de documentos a analizar. El valor predeterminado es 1000.
  • LogPatternAnalysisTool

    • index (obligatorio): Nombre del índice de OpenSearch de destino que contiene datos de registros.
    • logFieldName (obligatorio): Campo que contiene los mensajes de registro sin procesar a analizar.
    • selectionTimeRangeStart (obligatorio): Hora de inicio para el período objetivo del análisis.
    • selectionTimeRangeEnd (obligatorio): Hora de finalización para el período objetivo del análisis.
    • timeField (obligatorio): Campo de fecha/hora para el filtrado basado en tiempo.
    • traceFieldName (opcional): Campo para el ID de rastreo/correlación.
    • baseTimeRangeStart (opcional): Hora de inicio para el período de comparación de referencia.
    • baseTimeRangeEnd (opcional): Hora de finalización para el período de comparación de referencia.
  • MetricChangeAnalysisTool

    • index (obligatorio): Nombre del índice de OpenSearch de destino.
    • selectionTimeRangeStart (obligatorio): Inicio del período de selección (anomalía).
    • selectionTimeRangeEnd (obligatorio): Fin del período de selección (anomalía).
    • baselineTimeRangeStart (obligatorio): Inicio del período de referencia.
    • baselineTimeRangeEnd (obligatorio): Fin del período de referencia (debe ser igual o anterior a selectionTimeRangeStart).
    • timeField (obligatorio): Campo de fecha/hora para el filtrado.
    • topN (opcional): Número de campos principales a devolver, clasificados por puntuación de cambio. El valor predeterminado es 10.
    • size (opcional): Número máximo de documentos a analizar. El valor predeterminado es 1000.

Más herramientas próximamente. Haga clic aquí

Guía de usuario

Para instrucciones de uso detalladas, opciones de configuración y ejemplos, consulte la Guía de usuario.

Memoria del agente

El servidor MCP de OpenSearch incluye dos sistemas de memoria distintos. Ambos utilizan OpenSearch como backend de almacenamiento, pero difieren en quién controla el ciclo de vida de la memoria y qué infraestructura requieren.

Cómo elegir el enfoque adecuado

Herramientas de memoria (MEMORY_TOOLS_ENABLED)Herramientas de memoria agéntica (categoría agentic_memory)
Quién almacena las memoriasEl agente MCP decide qué guardar como declaraciones de texto planoOpenSearch procesa conversaciones sin procesar y extrae hechos mediante inferencia LLM
Complejidad de configuraciónBaja: el índice se crea automáticamente en el primer usoAlta: requiere crear un contenedor de memoria con conector LLM y modelo de incrustación
Versión de OpenSearchAmazon OpenSearch Service 2.19+ o ServerlessOpenSearch 3.3.0+
Búsqueda semánticaSí, mediante el enriquecimiento semántico automático de AWSSí, mediante el modelo de incrustación configurado
Estructura de memoriaPlana: cada memoria es una declaración de texto planoEstructurada: tipos de sesión, trabajo, largo plazo e historial
Inferencia LLMNo: el agente escribe exactamente lo que quiere recordarOpcional (infer: true): OpenSearch utiliza un LLM para extraer hechos de las conversaciones
Ideal paraAgentes IDE (Kiro, Claude Code, Cursor) que necesitan configuración rápida y continuidad entre sesionesPipelines agénticos de producción donde la gestión de memoria debe centralizarse y ser propiedad del servidor

Use las herramientas de memoria cuando desee una capa de memoria ligera controlada por el agente que funcione de inmediato con cualquier IDE compatible con MCP. El agente controla lo que se recuerda. Consulte la Guía de memoria del agente para la configuración.

Use las herramientas de memoria agéntica cuando desee que OpenSearch posea todo el ciclo de vida de la memoria, incluida la extracción de hechos basada en LLM de conversaciones sin procesar, tipos de memoria estructurados y espacios de nombres gestionados por el servidor. Consulte la Guía de memoria del agente para la configuración.

Contribuciones

¿Interesado en contribuir? Consulte nuestros:

Código de conducta

Este proyecto ha adoptado el Código de conducta de código abierto de Amazon. Para obtener más información, consulte las Preguntas frecuentes sobre el código de conducta o contacte a opensource-codeofconduct@amazon.com con cualquier pregunta o comentario adicional.

Licencia

Este proyecto está licenciado bajo la Licencia Apache v2.0.

Derechos de autor

Copyright 2020-2021 Amazon.com, Inc. o sus afiliados. Todos los derechos reservados.