Information
# mcp-server-opensearch: An OpenSearch MCP Server
[](https://smithery.ai/server/@ibrooksSDX/mcp-server-opensearch)
> The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) 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](https://opensearch.org/), a distributed search and analytics engine.
# Under Contruction


## Current Blocker - Async Client from OpenSearch isn't installing
[Open Search Async Client Docs](https://github.com/opensearch-project/opensearch-py/blob/main/guides/async.m)
\`\`\`shell
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](https://smithery.ai/server/@ibrooksSDX/mcp-server-opensearch):
\`\`\`bash
npx -y @smithery/cli install @ibrooksSDX/mcp-server-opensearch --client claude
\`\`\`
### Using uv (recommended)
When using [\`uv\`](https://docs.astral.sh/uv/) no specific installation is needed to directly run *mcp-server-opensearch*.
\`\`\`shell
uv run mcp-server-opensearch \
--opensearch-url "http://localhost:9200" \
--index-name "my_index" \
\`\`\`
or
\`\`\`shell
uv run fastmcp run demo.py:main
\`\`\`
## Testing - Local Open Search Client

\`\`\`shell
uv run python src/mcp-server-opensearch/test_opensearch.py
\`\`\`
## Testing - MCP Server Connection to Open Search Client


\`\`\`shell
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\`:
\`\`\`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
\`\`\`shell
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