OpenSearch MCP Server
README.md
# Open WebUI + OpenSearch MCP (Single Repo)
This repository starts everything with one Docker Compose command:
- OpenSearch: `http://localhost:9200`
- OpenSearch Dashboards: `http://localhost:5601`
- MCP Server: `http://localhost:3001/mcp`
- Open 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 `.env` file with secrets.
## 1. Setup
```powershell
copy .env.example .env
```
Edit `.env` and set:
- `WEBUI_SECRET_KEY` to a long random value (required)
- `OPENAI_API_KEY` (optional)
## 2. Start All Services
```powershell
docker compose up -d --build
```
Check status:
```powershell
docker compose ps
```
## 3. Configure MCP Tool Server in Open WebUI
1. Open `http://localhost:3002` and sign in as admin.
2. Go to `Admin Panel` -> `Settings` -> `Tools` (or `Tool Servers`, depending on Open WebUI version).
3. Add a new tool server with:
- Type: `MCP`
- Name: `OpenSearch MCP`
- ID: `opensearch_mcp`
- URL: `http://opensearch-mcp:3001/mcp`
- Auth: `None`
4. Save the server and run connection check/sync if the button is available.
5. 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)
1. In Open WebUI, ensure your OpenAI provider is configured with your API key.
2. Open `Models` and select `gpt-4o-mini` (or create a custom model entry mapped to `gpt-4o-mini`).
3. Enable model capabilities for tools/function calling.
4. In the model tool settings, allow/select only the `opensearch_mcp` tool server.
5. Save the model configuration.
6. Start a new chat and pick `gpt-4o-mini`.
7. In chat tool controls, ensure tools are enabled and `opensearch_mcp` is 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:
```text
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
```powershell
docker compose down
```
To remove volumes too:
```powershell
docker compose down -v
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues