OpenSearch MCP Server
Open WebUI + OpenSearch MCP (Single Repo)
This repository starts everything with one Docker Compose command:
OpenSearch:
http://localhost:9200OpenSearch Dashboards:
http://localhost:5601MCP Server:
http://localhost:3001/mcpOpen WebUI:
http://localhost:3002
Security Notes (Important)
This stack is for local development/testing.
OpenSearch security plugins are disabled in
docker-compose.yml.Do not expose these ports directly to the public internet.
Never commit a real
.envfile with secrets.
1. Setup
copy .env.example .envEdit .env and set:
WEBUI_SECRET_KEYto a long random value (required)OPENAI_API_KEY(optional)
2. Start All Services
docker compose up -d --buildCheck status:
docker compose ps3. Configure MCP Tool Server in Open WebUI
Open
http://localhost:3002and sign in as admin.Go to
Admin Panel->Settings->Tools(orTool Servers, depending on Open WebUI version).Add a new tool server with:
Type:
MCPName:
OpenSearch MCPID:
opensearch_mcpURL:
http://opensearch-mcp:3001/mcpAuth:
None
Save the server and run connection check/sync if the button is available.
Confirm tools are visible (for example
cluster_health,list_indices,search_indices).
If your environment cannot resolve Docker service names from Open WebUI, use:
http://host.docker.internal:3001/mcp
4. Attach MCP Tools to One Model (Example: GPT-4o mini)
In Open WebUI, ensure your OpenAI provider is configured with your API key.
Open
Modelsand selectgpt-4o-mini(or create a custom model entry mapped togpt-4o-mini).Enable model capabilities for tools/function calling.
In the model tool settings, allow/select only the
opensearch_mcptool server.Save the model configuration.
Start a new chat and pick
gpt-4o-mini.In chat tool controls, ensure tools are enabled and
opensearch_mcpis active.
Note: exact menu labels differ slightly by Open WebUI version, but the flow is always: Tool Server setup -> Model tool enablement -> Enable tools in chat.
5. Verify
Use the configured model (gpt-4o-mini) and send:
Use MCP tools only.
Call cluster_health and return cluster_name, status, number_of_nodes, active_primary_shards.
Do not answer from memory.Expected behavior:
The assistant performs a tool call to
cluster_health.The response includes live cluster fields from OpenSearch.
6. Stop
docker compose downTo remove volumes too:
docker compose down -vLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SuriyaKumar-HAIT/Opensearch_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server