Skip to main content

MCP Server for Open WebUI Knowledge Bases

Project description

Open WebUI Knowledge Base MCP Server

An MCP (Model Context Protocol) server that exposes Open WebUI Knowledge Bases as tools and resources, enabling AI assistants like Cursor and Claude Desktop to search and access knowledge bases.

Features

  • 🔍 Semantic Search - Search knowledge bases using semantic search
  • 📚 Knowledge Base Management - List and get information about knowledge bases
  • 👥 Multi-User Support - Each connection uses its own API token for isolation
  • 🌐 Dual Transport Modes - Supports both stdio (local) and HTTP (remote) transports
  • 🔒 Secure - Per-connection authentication, input validation, rate limiting, CORS protection

Quick Start

Prerequisites

  • Python 3.8+ or Docker
  • Open WebUI instance with API access
  • API token from Open WebUI (Settings → Account → API keys)

Installation

pip install -r requirements.txt

Or using uvx:

pip install uv  # or: brew install uv
uvx --from . python mcp_server.py

Usage

stdio Mode (Local)

export OPEN_WEBUI_API_URL="https://your-open-webui-instance.com/api/v1"
export OPEN_WEBUI_API_TOKEN="sk-your-token-here"
python mcp_server.py

HTTP Mode (Production)

Docker Compose:

# Create .env file
echo "OPEN_WEBUI_API_URL=https://your-open-webui-instance.com/api/v1" > .env

# Start server
docker-compose up -d

# View logs
docker-compose logs -f

Direct Python:

export OPEN_WEBUI_API_URL="https://your-open-webui-instance.com/api/v1"
export MCP_TRANSPORT="http"
export MCP_HTTP_PORT="8001"
python mcp_server.py

Server endpoints:

  • MCP: http://localhost:8001/mcp
  • Health: http://localhost:8001/health

Configuring Cursor to use your MCP server

Cursor: stdio Mode

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "open-webui-knowledge": {
      "command": "uvx",
      "args": ["--from", "/path/to/open-webui-mcp-server", "python", "/path/to/open-webui-mcp-server/mcp_server.py"],
      "env": {
        "OPEN_WEBUI_API_URL": "https://your-open-webui-instance.com/api/v1",
        "OPEN_WEBUI_API_TOKEN": "sk-your-token-here"
      }
    }
  }
}

Cursor: HTTP Mode

{
  "mcpServers": {
    "open-webui-knowledge": {
      "url": "http://localhost:8001/mcp",
      "headers": {
        "Authorization": "Bearer sk-your-token-here"
      }
    }
  }
}

Available Tools

  • list_knowledge_bases - List all accessible knowledge bases

    • permission (optional): "read" or "write" (default: "read")
  • search_knowledge_base - Search a knowledge base using semantic search

    • knowledge_base_id (required): The ID of the knowledge base
    • query (required): Your search query
    • k (optional): Number of results (default: 5)
  • get_knowledge_base_info - Get detailed information about a knowledge base

    • knowledge_base_id (required): The ID of the knowledge base

Environment Variables

Variable Description Default
OPEN_WEBUI_API_URL Open WebUI API base URL Required
OPEN_WEBUI_API_TOKEN Default API token (optional) None
MCP_TRANSPORT Transport mode: stdio or http stdio
MCP_HTTP_HOST HTTP server host 0.0.0.0
MCP_HTTP_PORT HTTP server port 8001
MCP_CORS_ORIGINS Comma-separated CORS origins (empty = no CORS) Empty
MCP_RATE_LIMIT_PER_IP Rate limit per IP (e.g., "1000/minute") 1000/minute
MCP_RATE_LIMIT_PER_TOKEN Rate limit per token 1000/minute
MCP_RATE_LIMIT_HEALTH Rate limit for health endpoint 10/minute

Security

  • Input validation and sanitization
  • Rate limiting (per-IP and per-token)
  • CORS protection (disabled by default)
  • Request size limits (10MB max)
  • Error message sanitization
  • Token validation

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

This project is licensed under the MIT License.


Built with ❤️ by Ronas IT

Professional development services • Open source contributors

WebsiteGitHubEmail

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

owui_mcp_server-1.0.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

owui_mcp_server-1.0.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file owui_mcp_server-1.0.0.tar.gz.

File metadata

  • Download URL: owui_mcp_server-1.0.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for owui_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9f1972aaa4a409218f7df57fb8e6fc376623520213e0c449ce0f1c20a6027c8e
MD5 4420fb223016b3af69ebe421c93a4ab7
BLAKE2b-256 0de3df9368c96ddb2ddef00027257b3e6aa761dde2a5162864d023112d6f1fc5

See more details on using hashes here.

File details

Details for the file owui_mcp_server-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for owui_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6b3ca1fd793d82a47c3c24cda09d9bf628ea7234f87cafb441d31482396c339
MD5 d502215c553ec0dddb28715087416d9d
BLAKE2b-256 5179deed5f3e6ba9091d0402bf6d0cf5aa416804b7b1fbca49960405586abeef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page