Skip to main content
Glama
ibrooksSDX

MCP Server for OpenSearch

by ibrooksSDX

mcp-server-opensearch: An OpenSearch MCP Server

The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you’re building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need.

This repository is an example of how to create a MCP server for OpenSearch, a distributed search and analytics engine.

Under Contruction

image1 image2

Current Blocker - Async Client from OpenSearch isn't installing

Open Search Async Client Docs

pip install opensearch-py[async]
zsh: no matches found: opensearch-py[async]

Related MCP server: @git-fabric/aiana

Overview

A basic Model Context Protocol server for keeping and retrieving memories in the OpenSearch engine. It acts as a semantic memory layer on top of the OpenSearch database.

Components

Tools

  1. search-openSearch

    • Store a memory in the OpenSearch database

    • Input:

      • query (json): prepared json query message

    • Returns: Confirmation message

Installation

Installing via Smithery

To install mcp-server-opensearch for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ibrooksSDX/mcp-server-opensearch --client claude

When using uv no specific installation is needed to directly run mcp-server-opensearch.

uv run mcp-server-opensearch \
  --opensearch-url "http://localhost:9200" \
  --index-name "my_index" \

or

uv run fastmcp run demo.py:main

Testing - Local Open Search Client

image4

uv run python src/mcp-server-opensearch/test_opensearch.py

Testing - MCP Server Connection to Open Search Client

image1 image2

cd src/mcp-server-opensearch
uv run fastmcp dev demo.py

Usage with Claude Desktop

To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your claude_desktop_config.json:

{
  "opensearch": {
    "command": "uvx",
    "args": [
      "mcp-server-opensearch",
      "--opensearch-url",
      "http://localhost:9200",
      "--opensearch-api-key",
      "your_api_key",
      "--index-name",
      "your_index_name"
    ]
  }, "Demo": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp",
        "--with",
        "opensearch-py",
        "fastmcp",
        "run",
        "/Users/ibrooks/Documents/GitHub/mcp-server-opensearch/src/mcp-server-opensearch/demo.py"
      ]
    }
}

Or use the FastMCP UI to install the server to Claude

uv run fastmcp install demo.py

Environment Variables

The configuration of the server can be also done using environment variables:

  • OPENSEARCH_HOST: URL of the OpenSearch server, e.g. http://localhost

  • OPENSEARCH_HOSTPORT: Port of the host of the OpenSearch server 9200

  • INDEX_NAME: Name of the index to use

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides semantic memory capabilities using Qdrant vector database with configurable embedding providers, allowing storage and retrieval of information using vector similarity.
    2
    Apache 2.0
  • F
    license
    A
    quality
    Not graded
    maintenance
    A composable semantic memory layer that provides cross-project recall and session context using Qdrant and OpenAI embeddings. It enables users to securely store, search, and manage persistent memories with built-in secret scrubbing for privacy.
    11
    -
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables LLMs to store, search, and manage memories with hybrid semantic and keyword search using ChromaDB and Neo4j for persistent memory and knowledge graph capabilities.
    -