Skip to main content
Glama

Elasticsearch Semantic Search MCP Server

Servidor MCP: herramienta de búsqueda semántica de Elasticsearch

Repositorio de demostración para: https://j.blaszyk.me/tech-blog/mcp-server-elasticsearch-semantic-search/

Tabla de contenido


Descripción general

Este repositorio proporciona una implementación en Python de un servidor MCP para búsqueda semántica a través de publicaciones del blog de Search Labs indexadas en Elasticsearch .

Se supone que ha rastreado las publicaciones del blog y las ha almacenado en el índice search-labs-posts usando Elastic Open Crawler .


Ejecución del servidor MCP

Agregue ES_URL y ES_AP_KEY al archivo .env (consulte aquí para generar una clave API con permisos mínimos)

Inicie el servidor en MCP Inspector :

make dev

Una vez en ejecución, acceda al Inspector MCP en: http://localhost:5173


Integración con Claude Desktop

Para agregar el servidor MCP a Claude Desktop :

make install-claude-config

Esto actualiza claude_desktop_config.json en tu directorio personal. En el siguiente reinicio, la aplicación Claude detectará el servidor y cargará la herramienta declarada.


Publicaciones del blog de Crawling Search Labs

1. Verificar la configuración del rastreador

Para comprobar si Elastic Open Crawler funciona, ejecute:

docker run --rm \ --entrypoint /bin/bash \ -v "$(pwd)/crawler-config:/app/config" \ --network host \ docker.elastic.co/integrations/crawler:latest \ -c "bin/crawler crawl config/test-crawler.yml"

Esto debería imprimir el contenido rastreado de una sola página .


2. Configurar Elasticsearch

Configurar la URL y la clave API de Elasticsearch .

Genere una clave API con permisos mínimos de rastreador :

POST /_security/api_key { "name": "crawler-search-labs", "role_descriptors": { "crawler-search-labs-role": { "cluster": ["monitor"], "indices": [ { "names": ["search-labs-posts"], "privileges": ["all"] } ] } }, "metadata": { "application": "crawler" } }

Copie el valor encoded de la respuesta y configúrelo como API_KEY .


3. Actualizar la asignación de índices para la búsqueda semántica

Asegúrate de que el índice search-labs-posts exista. Si no, créalo:

PUT search-labs-posts

Actualice el mapeo para habilitar la búsqueda semántica :

PUT search-labs-posts/_mappings { "properties": { "body": { "type": "text", "copy_to": "semantic_body" }, "semantic_body": { "type": "semantic_text", "inference_id": ".elser-2-elasticsearch" } } }

El campo body se indexa como texto semántico utilizando el modelo ELSER de Elasticsearch .


4. Empieza a gatear

Ejecute el rastreador para completar el índice:

docker run --rm \ --entrypoint /bin/bash \ -v "$(pwd)/crawler-config:/app/config" \ --network host \ docker.elastic.co/integrations/crawler:latest \ -c "bin/crawler crawl config/elastic-search-labs-crawler.yml"

[!TIP] Si usa un clúster Elasticsearch nuevo , espere a que se inicie el modelo ELSER antes de indexar.


5. Verificar documentos indexados

Compruebe si los documentos fueron indexados:

GET search-labs-posts/_count

Esto devolverá el recuento total de documentos en el índice. También puede verificarlo en Kibana .


¡Listo! Ya puedes realizar búsquedas semánticas en las publicaciones del blog de Search Labs.

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Un servidor MCP de Python que permite la búsqueda semántica a través de publicaciones del blog de Search Labs indexadas en Elasticsearch, lo que permite a Claude recuperar de forma inteligente información relevante del contenido del blog.

  1. Tabla de contenido
    1. Descripción general
      1. Ejecución del servidor MCP
        1. Integración con Claude Desktop
          1. Publicaciones del blog de Crawling Search Labs
            1. Verificar la configuración del rastreador
            2. Configurar Elasticsearch
            3. Actualizar la asignación de índices para la búsqueda semántica
            4. Empieza a gatear
            5. Verificar documentos indexados

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            An MCP server that enables users to fetch Python documentation using the Brave Search API through natural language queries.
            Last updated -
            1
            JavaScript
            Apache 2.0
            • Apple
          • A
            security
            A
            license
            A
            quality
            An MCP server that enables Claude to perform web searches using Perplexity's API with intelligent model selection based on query intent and support for domain and recency filtering.
            Last updated -
            6
            JavaScript
            MIT License
            • Apple
          • A
            security
            A
            license
            A
            quality
            Provides an MCP protocol interface for interacting with Elasticsearch 7.x databases, supporting comprehensive search functionality including aggregations, highlighting, and sorting.
            Last updated -
            3
            1
            Python
            Apache 2.0
          • -
            security
            F
            license
            -
            quality
            An MCP server that integrates with Claude to provide smart documentation search capabilities across multiple AI/ML libraries, allowing users to retrieve and process technical information through natural language queries.
            Last updated -
            Python

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/jedrazb/elastic-semantic-search-mcp-server'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server