ragflow-kb-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RAGFLOW_API_KEY | Yes | RAGFlow API key. | |
| RAGFLOW_TIMEOUT | No | HTTP timeout in seconds, default 120. | 120 |
| RAGFLOW_BASE_URL | Yes | RAGFlow base URL, e.g. https://ragflow.example.com (/api/v1 is added if missing). | |
| RAGFLOW_UPLOAD_ROOTS | No | Directories that file_path uploads may read from, separated by ':' (';' on Windows). | |
| RAGFLOW_DISABLED_TOOLS | No | Comma-separated tool names to leave out, e.g. the delete tools. | |
| RAGFLOW_DEFAULT_EMBEDDING_MODEL | No | Embedding model for new datasets, in the form model_name@factory. |
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 |
|---|---|
| ragflow_list_datasetsA | List datasets (knowledge bases) with IDs, descriptions and document/chunk counts. |
| ragflow_get_datasetB | Get one dataset, including its parser configuration. |
| ragflow_create_datasetC | Create a dataset (knowledge base) that uses a built-in chunking method. |
| ragflow_update_datasetB | Update dataset settings. Only the fields you pass change. |
| ragflow_delete_datasetsA | Permanently delete datasets together with all their documents and chunks. |
| ragflow_list_documentsB | List documents in a dataset with their parsing status and chunk counts. |
| ragflow_upload_documentB | Add a document to a dataset from text, base64 bytes, a URL or an allowed local file. |
| ragflow_update_documentB | Rename a document, replace its metadata, enable or disable it, or change its parser. |
| ragflow_download_documentB | Read a document's original file. Text files come back as text; binary files only as size and type. |
| ragflow_delete_documentsA | Permanently delete documents and their chunks from a dataset. |
| ragflow_parse_documentsA | Start (or restart) parsing documents into chunks; optionally wait until it finishes. |
| ragflow_stop_parsingA | Stop parsing documents that are queued or running. |
| ragflow_ingest_documentsC | Start, rerun, cancel or clear ingestion of documents; also parses datasets that use an ingestion pipeline. |
| ragflow_list_chunksC | List the parsed chunks of a document. |
| ragflow_get_chunkB | Get one chunk with its text, keywords, questions and availability. |
| ragflow_set_chunks_availabilityB | Switch many chunks of a document on or off for retrieval at once. |
| ragflow_add_chunkC | Add a hand-written chunk to a document. |
| ragflow_update_chunkB | Edit a chunk's text, keywords or questions, or switch it on or off for retrieval. |
| ragflow_delete_chunksB | Permanently delete chunks from a document. |
| ragflow_metadata_summaryB | Show which metadata keys and values the documents of a dataset use, with counts. |
| ragflow_update_metadataB | Set or remove metadata on many documents of a dataset at once. |
| ragflow_retrievalB | Search datasets and return the matching chunks with their exact text and source document. |
| ragflow_list_chatsB | List chat assistants with their datasets and retrieval settings. |
| ragflow_get_chatA | Get one chat assistant with its full model and prompt configuration. |
| ragflow_create_chatC | Create a chat assistant that answers from the given datasets. |
| ragflow_update_chatB | Change some settings of a chat assistant; llm_setting and prompt_config are merged into the existing ones. |
| ragflow_replace_chat_settingsA | Update a chat assistant with PUT semantics: llm_setting and prompt_config you pass replace the stored objects. |
| ragflow_delete_chatA | Permanently delete one chat assistant and its sessions. |
| ragflow_delete_chatsA | Permanently delete several chat assistants. |
| ragflow_list_chat_sessionsB | List the sessions of a chat assistant (without their messages). |
| ragflow_get_chat_sessionB | Get a chat session with its messages. |
| ragflow_create_chat_sessionA | Start a new session with a chat assistant; it opens with the assistant's prologue. |
| ragflow_rename_chat_sessionC | Rename a chat session. |
| ragflow_delete_chat_sessionsB | Permanently delete sessions of a chat assistant. |
| ragflow_delete_chat_messageA | Delete a question and its answer (they share one message ID) from a chat session; returns the remaining messages. |
| ragflow_rate_chat_messageC | Give thumbs up or down, with optional feedback, to an assistant answer. |
| ragflow_chatB | Ask a chat assistant a question and get its answer with the cited chunks. |
| ragflow_openai_chat_completionA | Ask a chat assistant through its OpenAI-compatible endpoint; no session is stored. |
| ragflow_related_questionsC | Generate related questions that help search for a topic. |
| ragflow_mind_mapA | Build a mind map (a tree of name/children nodes) of a topic from datasets; runs several LLM calls and can take minutes. |
| ragflow_text_to_speechB | Turn text into speech with the tenant's TTS model; returns the audio as base64. |
| ragflow_speech_to_textC | Transcribe an audio file with the tenant's speech-to-text model. |
| ragflow_list_agentsA | List agents (agent canvases and ingestion pipelines) without their graphs. |
| ragflow_get_agentA | Get one agent's settings, and its graph (DSL) on request. |
| ragflow_list_agent_templatesA | List the built-in agent templates; pass template_id to get one template's DSL for ragflow_create_agent. |
| ragflow_create_agentB | Create an agent from a graph (DSL). |
| ragflow_update_agentA | Change an agent's title, description, permission or graph, and publish it with release=true. |
| ragflow_delete_agentA | Permanently delete an agent and its versions. |
| ragflow_create_agent_sessionA | Start a named conversation with an agent; pass its id as session_id to ragflow_agent_chat. |
| ragflow_list_agent_sessionsB | List an agent's conversation sessions with their messages. |
| ragflow_delete_agent_sessionsB | Permanently delete conversation sessions of an agent. |
| ragflow_agent_chatB | Send a message to an agent and wait for its complete answer. |
| ragflow_upload_agent_fileB | Upload a file for an agent run; pass the returned object in ragflow_agent_chat files. |
| ragflow_download_agent_attachmentA | Download an agent attachment. Text comes back as text; binary content as base64 on request. |
| ragflow_list_memoriesB | List memories (agent conversation memory stores) with their types and models. |
| ragflow_get_memory_configB | Get a memory's full configuration, including its extraction prompts. |
| ragflow_create_memoryB | Create a memory that stores and extracts agent conversations. |
| ragflow_update_memoryB | Update memory settings. Only the fields you pass change. |
| ragflow_delete_memoryA | Permanently delete a memory and all of its messages. |
| ragflow_list_memory_messagesB | List a memory's stored dialogue messages, the memories extracted from each, and extraction progress. |
| ragflow_add_memory_messageA | Save one user/agent exchange to memories; extraction runs in the background. |
| ragflow_search_memory_messagesC | Search memories for messages relevant to a query. |
| ragflow_recent_memory_messagesC | Get the most recent messages stored in memories. |
| ragflow_get_memory_messageA | Get one memory message with its full content (without the embedding vector). |
| ragflow_set_memory_message_statusB | Enable or disable a memory message for agents. |
| ragflow_forget_memory_messageB | Forget a memory message: agents stop retrieving it and it is evicted first when space runs out. |
| ragflow_list_filesA | List files and folders in a file-manager folder (root when parent_id is omitted), plus the folder above it. |
| ragflow_upload_fileA | Upload a file into the file manager (not into a dataset); link it to datasets later if needed. |
| ragflow_create_folderB | Create a folder (or an empty virtual file) in the file manager; a taken name gets a numbered suffix. |
| ragflow_get_parent_folderA | Get the folder that directly contains a file or folder. |
| ragflow_get_file_ancestorsA | List all folders above a file or folder, up to the root. |
| ragflow_download_fileA | Read a file from the file manager. Text comes back as text; binary only on request, as base64. |
| ragflow_move_filesA | Move files or folders to another folder, rename one item, or both. |
| ragflow_delete_filesB | Permanently delete files or folders (with their contents) from the file manager. |
| ragflow_link_files_to_datasetsB | Turn file-manager files into documents of datasets. Runs in the background and does not parse. |
| ragflow_upload_attachmentA | Store a file as a runtime attachment for chat or agent conversations; it joins no dataset. |
| ragflow_create_commitA | Commit changes to a workspace folder: writes file content, renames, or deletes files, and records history. |
| ragflow_list_commitsB | List the commit history of a workspace folder, newest first by default. |
| ragflow_get_commitA | Get one commit with the list of file changes it made. |
| ragflow_list_commit_filesC | List the file changes recorded in one commit. |
| ragflow_diff_commitsB | Compare two commits of a workspace and list which files were added, modified, deleted or renamed. |
| ragflow_get_uncommitted_changesA | Show files in a workspace that changed since its last commit (like git status). |
| ragflow_get_commit_treeB | Get the folder tree of a workspace as it was at one commit. |
| ragflow_get_commit_file_contentB | Read a file's content as it was at one commit. |
| ragflow_get_file_versionsB | List the commits that changed one file, with operation, hash and message. |
| ragflow_list_search_appsB | List search apps (saved search configurations that answer questions from datasets). |
| ragflow_get_search_appB | Get one search app with its full search configuration. |
| ragflow_create_search_appA | Create a search app; pass dataset_ids so ragflow_search_app_completion can answer from them. |
| ragflow_update_search_appA | Change a search app. Configuration keys you pass are merged into the saved ones. |
| ragflow_delete_search_appA | Permanently delete a search app (its datasets stay). |
| ragflow_search_app_completionA | Answer a question with a search app's datasets and LLM; returns the answer and its source chunks. |
| ragflow_healthA | Check whether RAGFlow and its database, cache, document engine, storage and queue are healthy. |
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 92 tools
The set contains many closely related operations whose boundaries are subtle: ragflow_chat, ragflow_openai_chat_completion, ragflow_search_app_completion, and ragflow_agent_chat all answer questions but differ by backend/session semantics. There are also near-overlaps between upload_file/upload_document/upload_attachment/upload_agent_file, update_chat/replace_chat_settings, delete_chat/delete_chats, and file-manager vs dataset document tools. Descriptions help, but with 92 tools an agent is likely to misselect.
Almost all tools use the ragflow_ prefix with a verb_noun pattern (list_datasets, create_chat, delete_documents, update_memory), which is predictable. Minor inconsistencies exist in singular/plural variants (delete_chat vs delete_chats, create_chat_session vs delete_chat_sessions) and in the exceptional replace_chat_settings verb.
With 92 tools, the surface is far beyond a manageable MCP server scope and creates selection overload. Even though the underlying RAGFlow product is broad, this tool count is an extreme mismatch for practical agent use.
Coverage is extensive across datasets, documents, chunks, chat assistants, agents, memories, search apps, files, commits, metadata, retrieval, and health checks. Most lifecycle operations are present, with only minor gaps such as no obvious single-document metadata get tool separate from list/download.