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