Skip to main content
Glama
adaofeliz
by adaofeliz
README.md
# OpenWebUI MCP Server

A Model Context Protocol (MCP) server for managing projects, notes, and knowledge bases in [OpenWebUI](https://github.com/open-webui/open-webui).

## Overview

`open-webui-mcp` provides a bridge between LLMs and your OpenWebUI workspace. It allows models to:
- List and manage projects.
- Create and update project-specific notes.
- Associate knowledge bases with projects.
- Propose and apply updates to project configurations based on chat history.
- Upload files directly to knowledge bases.

## Prerequisites

- [Bun](https://bun.sh/) (v1.0+)
- [OpenWebUI](https://github.com/open-webui/open-webui) instance
- [OpenRouter](https://openrouter.ai/) API key

## Quick Start

1. Clone and install:
   ```bash
   git clone https://github.com/your-repo/open-webui-mcp.git
   cd open-webui-mcp
   bun install
   ```

2. Configure environment variables:
   ```bash
   export OPENWEBUI_BASE_URL="http://localhost:3000"
   export OPENWEBUI_API_KEY="your-api-key"
   export OPENROUTER_API_KEY="your-openrouter-key"
   ```

3. Build and run:
   ```bash
   bun run build
   bun run start
   ```

## Project Mapping

The server uses a `projects.json` file to map project IDs to OpenWebUI folders and resources. This allows for a structured way to manage project-specific context.

### Example `projects.json`
```json
{
  "version": "1.0",
  "projects": [
    {
      "id": "project-1",
      "name": "My Project",
      "folder_id": "folder-uuid",
      "note_ids": [],
      "knowledge_base_ids": []
    }
  ]
}
```

## Safety Model (Propose/Evaluate/Apply)

To ensure safe updates to project configurations, the server implements a three-step workflow:

1. **Propose**: The model analyzes a conversation and generates a `ProposedChangeSet`.
2. **Evaluate**: An LLM (via OpenRouter) evaluates the proposal for safety and relevance, assigning a score (0-1).
3. **Apply**: If the proposal is deemed safe (score > threshold), it can be applied to the project.

## Documentation

- [Setup Guide](docs/SETUP.md)
- [Tool Reference](docs/TOOLS.md)

## Troubleshooting

- **Connection Errors**: Ensure `OPENWEBUI_BASE_URL` is accessible and the API key is correct.
- **Permission Denied**: Check if your OpenWebUI API key has sufficient permissions to manage folders, notes, and knowledge bases.
- **Evaluation Failures**: Ensure your `OPENROUTER_API_KEY` is valid and has credits.
- **Missing Projects**: Verify that `projects.json` exists in your `DATA_DIR` and is valid JSON.