mcp-server-opensearch logo

mcp-server-opensearch

by ibrooksSDX

This repository provides an example of how to create an MCP server for OpenSearch, a distributed search and analytics engine. It acts as a semantic memory layer on top of the OpenSearch database, enabling seamless integration between LLM applications and OpenSearch.

View on GitHub

Last updated: N/A

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

image1

image2

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]

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

Using uv (recommended)

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

image4

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

Testing - MCP Server Connection to Open Search Client

image1

image1

image2

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