Skip to main content
Glama
SuriyaKumar-HAIT

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
```