Open WebUI Knowledge MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RAG_TOP_K | No | Maximum number of chunks returned, from 1 to 100. | 8 |
| OPENWEBUI_URL | No | Base URL of the Open WebUI instance; path prefix is supported. | http://localhost:3000 |
| OPENWEBUI_API_KEY | Yes | Bearer token for Open WebUI API access (required). | |
| OPENWEBUI_TIMEOUT | No | Timeout for each HTTP operation, in seconds. | 120 |
| RAG_MAX_FILE_CHARS | No | Maximum extracted text characters per file in results. | 50000 |
| OPENWEBUI_MAX_PAGES | No | Pagination limit; exceeding this limit returns an error. | 1000 |
| RAG_MAX_CHUNK_CHARS | No | Maximum characters per chunk in results. | 7000 |
| RAG_MAX_INPUT_CHARS | No | Maximum input text/query length in characters. | 1000000 |
| OPENWEBUI_VERIFY_TLS | No | Whether to verify TLS certificates. Strictly 'true' or 'false'. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rag_healthA | Check authenticated Open WebUI Knowledge API; does not verify Qdrant or models. |
| knowledge_listA | List all accessible Open WebUI knowledge bases, without documents or vectors. |
| knowledge_createB | Create an Open WebUI knowledge base; returns its knowledge_id. |
| knowledge_getC | Get a knowledge base and brief file metadata; file_id identifies each document. |
| knowledge_addC | Upload text, wait for processing, then attach to the given knowledge base. A failed write may be partial: inspect stage and file_id before retrying. |
| knowledge_updateA | Replace shared file text and reindex this base. Other bases sharing this file may change. Writes are not atomic. Inspect stage/file_id on failure before retrying. |
| knowledge_deleteB | Detach a file from this base. Retain the shared file; do not delete the whole base. |
| knowledge_get_fileA | Get extracted file text with total_chars and explicit truncated flag. |
| knowledge_searchA | Retrieve fragments in Open WebUI rank order. No answer generation. Omitted knowledge_ids searches all accessible bases; [] searches none. Scores/distances are raw upstream values, not normalized relevance. |
| rag_list_knowledgeB | Alias of knowledge_list. |
| rag_searchD | Alias of knowledge_search. |
| rag_get_fileD | Alias of knowledge_get_file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Several tools are exact aliases (rag_get_file/knowledge_get_file, rag_list_knowledge/knowledge_list, rag_search/knowledge_search), so an agent must arbitrarily choose between duplicate entry points. The remaining tools are mostly distinct, but the duplicated surface creates real selection ambiguity.
The knowledge_* tools follow a mostly consistent snake_case verb_noun pattern, but rag_* aliases introduce a second prefix convention. Names like knowledge_get and knowledge_get_file are also close enough to be mildly confusing.
Twelve tools is within a reasonable range, but three are exact aliases padding the count. The effective surface is about nine unique operations, which is well-scoped for this domain.
File operations are well covered with add, get, update, delete, and search, and knowledge bases support list, create, and get. However, knowledge bases lack update and delete operations, leaving an obvious lifecycle gap.