Files
mcp-servers/README.md
T
2026-07-15 17:52:55 -04:00

80 lines
2.6 KiB
Markdown

# MCP Servers for Open WebUI
**Deployed:** 2026-07-15
**Status:** Live on app1 (152.53.36.131)
**Docker compose:** /root/docker/litellm/docker-compose.yml
## Fleet
| MCP | Port | Tools | Description |
|---|---|---|---|
| Super Search | :8899 | 10 | Web search, extract, news, academic, images, lookup |
| Browser | :8901 | 5 | Screenshots, JS execute, click, extract, browse |
| Filesystem | :8900 | 5 | List, read, write, search, create dir |
| Email | :8902 | 3 | Send, inbox, search |
| Git/Gitea | :8903 | 4 | List repos, search, browse, read files |
## Architecture
All MCPs run as Docker services alongside LiteLLM on app1, sharing the `litellm-net` network.
Wired into Open WebUI via `tool_server.connections` in SQLite.
## Access
### In Open WebUI
All MCPs are wired into Open WebUI at **http://ai.itpropartner.com** (or **https://admin-ai.itpropartner.com/ui**). They appear as tools available to the AI model — no separate login needed once you're in Open WebUI.
The connections are stored in SQLite at:
```
/var/lib/docker/volumes/openwebui_data/_data/webui.db → config.key = 'tool_server.connections'
```
Each connection is a JSON object in the array:
```json
{
"url": "http://host.docker.internal:8899/mcp",
"type": "mcp",
"auth_type": "none",
"info": {"name": "Super Search (MCP)", "description": "..."},
"config": {"enable": true}
}
```
### Adding a new MCP to Open WebUI
1. Build and start the MCP service in `/root/docker/litellm/docker-compose.yml` (map to `127.0.0.1:<port>` on app1)
2. Insert the connection into the SQLite DB:
```bash
ssh app1 "sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
\"UPDATE config SET value = json_insert(value, '\$[#]', json_object(
'url', 'http://host.docker.internal:PORT/mcp',
'type', 'mcp',
'auth_type', 'none',
'config', json_object('enable', true),
'info', json_object('name', 'NAME', 'description', 'DESC')
)) WHERE key = 'tool_server.connections';\""
```
3. Restart Open WebUI: `cd /root/docker/litellm && docker compose restart openwebui`
4. Verify in admin-ai UI → Workspace → Tools
### Direct MCP access (testing)
All MCPs are reachable on app1's loopback. From app1:
```bash
# List tools
curl http://127.0.0.1:8899/mcp # Super Search
curl http://127.0.0.1:8901/mcp # Browser
curl http://127.0.0.1:8900/mcp # Filesystem
curl http://127.0.0.1:8902/mcp # Email
curl http://127.0.0.1:8903/mcp # Git/Gitea
```
From Core (Hermes), MCPs are accessed via the admin-ai proxy URL `https://admin-ai.itpropartner.com/mcp` (not direct loopback).
## Recovery
```bash
cd /root/docker/litellm && docker compose up -d
```