ragflow-kb-mcp
The MCP server is distributed via a public GitHub repository (github.com/feci/ragflow-mcp-server) and can be installed directly from it using uvx. The repository hosts the source code for the ragflow-kb-mcp package.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ragflow-kb-mcpupload meeting-notes.md to the docs dataset and parse it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ragflow-mcp-server
An MCP server that exposes the RAGFlow HTTP API as tools: datasets and documents, parsing, chunks, metadata, retrieval, chat assistants and their sessions, agents, memories, the file manager with workspace commits, and search apps.
RAGFlow ships its own MCP endpoint, but it only offers ragflow_list_datasets,
ragflow_list_chats and ragflow_retrieval. This server covers every endpoint of the
published HTTP API reference: 92 tools. It was checked tool by tool against a live
RAGFlow 1.0.0-rc2 (Go API) and against that release's source code.
The Python package and the command are called ragflow-kb-mcp.
Tools
Area | Tools |
Datasets |
|
Documents |
|
Parsing |
|
Chunks |
|
Metadata |
|
Retrieval |
|
Chat assistants |
|
Chat sessions |
|
Conversation |
|
Agents |
|
Agent runs |
|
Memories |
|
Memory messages |
|
File manager |
|
Workspaces |
|
Search apps |
|
System |
|
Three tools are not in the published reference but exist in the Go API and make the rest
usable: ragflow_get_agent, ragflow_list_agent_templates (a template's DSL is the easiest
start for ragflow_create_agent) and ragflow_upload_agent_file.
Conversation tools never stream: they return the complete answer. Search-app completion only exists as a stream, so the server reads the stream and returns the final answer.
Safety
Every tool has MCP annotations. 39 are read-only. The 16 marked
destructiveHintcover the deletes plus calls that destroy data as a side effect: ingest rerun/clear, linking files to datasets, and workspace commits.Bulk deletes take explicit IDs. The API's
delete_allswitches are not exposed.ragflow_update_metadatawithoutdocument_idsormetadata_conditionwould change every document, so it asks forall_documents: true.IDs are validated before they go into a request path, so a crafted ID cannot reach a different endpoint.
RAGFLOW_DISABLED_TOOLSremoves tools you do not want to offer.
Uploading
ragflow_upload_document takes exactly one source:
text: UTF-8 content such as Markdown notes. Needs afilenamewith an extension.content_base64: file bytes. The bytes pass through the model's context, so use this only for small files.url: a PDF or a web page that RAGFlow downloads itself (see the note on names below).file_path: a file on the machine that runs this server. This is off until the operator lists allowed directories inRAGFLOW_UPLOAD_ROOTS. Paths are resolved, including symlinks, before the check.
The file extension decides which RAGFlow parser runs. Parsing starts right after the
upload unless parse is false. Set wait_seconds (up to 600) to wait until
ingestion_status is final. An existing document with the same name makes the upload fail
unless you pass replace_existing; then the new file is uploaded first and the old one is
deleted afterwards.
For url uploads RAGFlow strips every character except letters, digits, - and _ from
the name, the dot of the extension included, and adds back only .pdf or .html. So
example page is stored as examplepage.html, and any other file type from a URL (Markdown,
text, Office files) is rejected. Upload those with text or content_base64 instead. The
duplicate check compares the names RAGFlow would store.
ragflow_upload_file, ragflow_upload_attachment, ragflow_upload_agent_file and
ragflow_speech_to_text accept text, content_base64 or file_path the same way.
Related MCP server: RAGFlow MCP Server
Configuration
Variable | Required | Meaning |
| yes | e.g. |
| yes | RAGFlow API key |
| no | embedding model for new datasets, |
| no | comma-separated tool names to leave out |
| no | directories |
| no | HTTP timeout in seconds, default 120 |
Running
The server speaks MCP over stdio.
uvx --from git+https://github.com/feci/ragflow-mcp-server ragflow-kb-mcpClaude Code:
claude mcp add ragflow-kb \
-e RAGFLOW_BASE_URL=https://ragflow.example.com \
-e RAGFLOW_API_KEY=... \
-e RAGFLOW_UPLOAD_ROOTS="$HOME/Documents" \
-- uvx --from git+https://github.com/feci/ragflow-mcp-server ragflow-kb-mcpIf RAGFlow's built-in MCP endpoint is also connected, avoid duplicate tool names with
RAGFLOW_DISABLED_TOOLS=ragflow_list_datasets,ragflow_list_chats,ragflow_retrieval.
RAGFlow 1.0 notes
The published HTTP reference and RAGFlow 1.0.0-rc2 differ in many places. Everything below was checked against a live instance and the release's Go source. The tools already handle these cases.
Datasets and documents
Dataset creation needs
parse_type: 1together withparser_id(e.g.general), and rejectsdescriptionandchunk_method. The description is set with a follow-up update.include_parsing_statuson the dataset list is accepted and ignored.Parsing state is
ingestion_status(UNSTART,SCHEDULED,RUNNING,COMPLETED,FAILED,STOPPED).progressreaches 1 while the status is stillRUNNINGand before the chunks are written, so only the status says that parsing is finished.A document
nameoridfilter without a match returns error code 102 ("you don't own the document") instead of an empty list.Upload with
?type=webdownloads the URL on the RAGFlow side, so this server never fetches remote content itself. The name is cleaned to[A-Za-z0-9_-], which also removes the extension's dot; only.pdfand.htmlare added back, so other file types are refused with "this type of file has not been supported yet". Local uploads rename a duplicate toname(1).md.Ingest takes
doc_idsandrun:"1"starts,"2"cancels, any other value clears the chunks. It works on every dataset, not only on ingestion-pipeline ones.Getting a single chunk returns raw storage fields (
available_int,docnm_kwd); the chunk list returnsavailableas a boolean.
Chat assistants and sessions
A question and its answer share one message ID; deleting it removes both.
user_idon session create and list is ignored; the API key's owner is used.PUT /chats/{id}replacesllm_settingandprompt_config,PATCHmerges them. Unknown fields are dropped silently.keywords_similarity_weightis the stored weight;vector_similarity_weightis a legacy alias, and the two add up to 1.chat_idis optional on/chat/completions: without it the tenant's default model answers with no retrieval and no stored session.The session list returns the full message history unless
include_history=false.The OpenAI-compatible endpoint returns a plain OpenAI body without the
{code, data}envelope; references needextra_body.reference=true.Related questions and mind maps work with an API key, although the reference asks for a login token. A mind map runs several LLM calls and can outlast proxy timeouts.
Agents
Agent sessions are deleted with
?ids=a,bin the query. The documented JSON body is ignored, and the API still reports success without deleting anything.Every agent update rewrites the
releaseflag, so an update withoutrelease=trueunpublishes the agent.Session creation takes only a name. Values for the Begin component go into the chat call's
inputs. Withoutsession_idevery exchange is stored as a new session.OpenAI-compatible mode answers with a plain OpenAI body and reports errors as HTTP 4xx
{"error": ...}.Attachment downloads are
application/octet-streamunlessextis given.
Memories
Creation needs exactly
name,memory_type,embd_idandllm_id; the description is set with a follow-up update. Permissions also acceptall.memory_typeandembd_idcannot change once a memory has messages.Adding a message with an API key requires
user_id.The message list's
keywordsparameter is an exactsession_idfilter.page_size,top_nandlimitare capped at 100.Message content carries the vector as
q_4096_vec, which the tools drop.Message routes use
{memory_id}:{message_id}with an integer message ID. Forgetting only setsforget_at: the message stays listed and enabled.
File manager and workspaces
GET /files/{id}/parentreads the ID from thefile_idquery parameter.POST /fileswith JSON and notypecreates an empty virtual file, not a folder.link-to-datasetshas an undocumentedmode. Its default,replace, removes the files' documents from datasets that are not listed, so the tool defaults toadd. Linking runs in the background and does not parse.Deleting a folder deletes its contents. A rename cannot change the file extension.
A workspace is any file-manager folder, and its folder ID is the
workspace_id.Commits rewrite the live files.
add/modifystore new text content,deletesoft-deletes, andrenamerenames.POST /documents/uploadstores a runtime attachment for conversations. It creates no document and no file-manager entry.Agent uploads and attachments cannot be deleted through the API.
Search apps and health
Creation accepts only
nameanddescription. The configuration needs a follow-upPUT, which requires bothnameandsearch_configand merges the configuration server-side.vector_similarity_weightis stored askeywords_similarity_weight = 1 − w./system/healthzneeds no authentication, has no envelope, and answers HTTP 500 with per-component status when something is down.
Development
uv sync
uv run pytestThe live tests create objects whose names start with ragflow-kb-mcp- and delete them
again. Run them against a RAGFlow you control:
RAGFLOW_LIVE_TEST=1 RAGFLOW_BASE_URL=... RAGFLOW_API_KEY=... \
RAGFLOW_DEFAULT_EMBEDDING_MODEL=model@factory RAGFLOW_TEST_LLM_ID=model@factory \
RAGFLOW_LIVE_DATASET_ID=<a parsed dataset to read from> uv run pytest tests/test_live*.pyLicense
MIT
Available Tools
92 toolsragflow_add_chunkC
Add a hand-written chunk to a document.
Inputs: content (required), dataset_id (required), document_id (required), questions, +1 more. Returns: object
ragflow_add_memory_messageA
Save one user/agent exchange to memories; extraction runs in the background.
Inputs: user_id (required), agent_id (required), memory_ids (required), session_id (required), +2 more. Returns: object
ragflow_agent_chatB
Send a message to an agent and wait for its complete answer.
Inputs: agent_id (required), files, inputs, question, +2 more. Returns: object
ragflow_chatB
Ask a chat assistant a question and get its answer with the cited chunks.
Inputs: llm_id, chat_id, messages, question, +5 more. Returns: object
ragflow_create_agentB
Create an agent from a graph (DSL).
Inputs: dsl (required), title (required), permission, description, +1 more. Returns: object
ragflow_create_agent_sessionA
Start a named conversation with an agent; pass its id as session_id to ragflow_agent_chat.
Inputs: agent_id (required), name. Returns: object
ragflow_create_chatC
Create a chat assistant that answers from the given datasets.
Inputs: name (required), top_k, top_n, llm_id, +9 more. Returns: object
ragflow_create_chat_sessionA
Start a new session with a chat assistant; it opens with the assistant's prologue.
Inputs: chat_id (required), name. Returns: object
ragflow_create_commitADestructive
Commit changes to a workspace folder: writes file content, renames, or deletes files, and records history.
Inputs: files (required), message (required), dataset_id, workspace_id. Returns: object
ragflow_create_datasetC
Create a dataset (knowledge base) that uses a built-in chunking method.
Inputs: name (required), language, parser_id, permission, +2 more. Returns: object
ragflow_create_folderB
Create a folder (or an empty virtual file) in the file manager; a taken name gets a numbered suffix.
Inputs: name (required), type, parent_id. Returns: object
ragflow_create_memoryB
Create a memory that stores and extracts agent conversations.
Inputs: name (required), llm_id (required), description, memory_types, +1 more. Returns: object
ragflow_create_search_appA
Create a search app; pass dataset_ids so ragflow_search_app_completion can answer from them.
Inputs: name (required), top_k, use_kg, keyword, +10 more. Returns: object
ragflow_delete_agentADestructive
Permanently delete an agent and its versions.
Inputs: agent_id (required). Returns: object
ragflow_delete_agent_sessionsBDestructive
Permanently delete conversation sessions of an agent.
Inputs: agent_id (required), session_ids (required). Returns: object
ragflow_delete_chatADestructive
Permanently delete one chat assistant and its sessions.
Inputs: chat_id (required). Returns: object
ragflow_delete_chat_messageADestructive
Delete a question and its answer (they share one message ID) from a chat session; returns the remaining messages.
Inputs: chat_id (required), message_id (required), session_id (required). Returns: object
ragflow_delete_chatsADestructive
Permanently delete several chat assistants.
Inputs: chat_ids (required). Returns: object
ragflow_delete_chat_sessionsBDestructive
Permanently delete sessions of a chat assistant.
Inputs: chat_id (required), session_ids (required). Returns: object
ragflow_delete_chunksBDestructive
Permanently delete chunks from a document.
Inputs: chunk_ids (required), dataset_id (required), document_id (required). Returns: object
ragflow_delete_datasetsADestructive
Permanently delete datasets together with all their documents and chunks.
Inputs: dataset_ids (required). Returns: object
ragflow_delete_documentsADestructive
Permanently delete documents and their chunks from a dataset.
Inputs: dataset_id (required), document_ids (required). Returns: object
ragflow_delete_filesBDestructive
Permanently delete files or folders (with their contents) from the file manager.
Inputs: file_ids (required). Returns: object
ragflow_delete_memoryADestructive
Permanently delete a memory and all of its messages.
Inputs: memory_id (required). Returns: object
ragflow_delete_search_appADestructive
Permanently delete a search app (its datasets stay).
Inputs: search_id (required). Returns: object
ragflow_diff_commitsBRead-only
Compare two commits of a workspace and list which files were added, modified, deleted or renamed.
Inputs: to_commit_id (required), from_commit_id (required), dataset_id, workspace_id. Returns: object
ragflow_download_agent_attachmentARead-only
Download an agent attachment. Text comes back as text; binary content as base64 on request.
Inputs: attachment_id (required), ext, max_chars, include_base64. Returns: object
ragflow_download_documentBRead-only
Read a document's original file. Text files come back as text; binary files only as size and type.
Inputs: dataset_id (required), document_id (required), max_chars. Returns: object
ragflow_download_fileARead-only
Read a file from the file manager. Text comes back as text; binary only on request, as base64.
Inputs: file_id (required), max_chars, include_base64. Returns: object
ragflow_forget_memory_messageBDestructive
Forget a memory message: agents stop retrieving it and it is evicted first when space runs out.
Inputs: memory_id (required), message_id (required). Returns: object
ragflow_get_agentARead-only
Get one agent's settings, and its graph (DSL) on request.
Inputs: agent_id (required), include_dsl. Returns: object
ragflow_get_chatARead-only
Get one chat assistant with its full model and prompt configuration.
Inputs: chat_id (required). Returns: object
ragflow_get_chat_sessionBRead-only
Get a chat session with its messages.
Inputs: chat_id (required), session_id (required), include_references. Returns: object
ragflow_get_chunkBRead-only
Get one chunk with its text, keywords, questions and availability.
Inputs: chunk_id (required), dataset_id (required), document_id (required). Returns: object
ragflow_get_commitARead-only
Get one commit with the list of file changes it made.
Inputs: commit_id (required), dataset_id, workspace_id. Returns: object
ragflow_get_commit_file_contentBRead-only
Read a file's content as it was at one commit.
Inputs: file_id (required), commit_id (required), max_chars, dataset_id, +1 more. Returns: object
ragflow_get_commit_treeBRead-only
Get the folder tree of a workspace as it was at one commit.
Inputs: commit_id (required), dataset_id, workspace_id. Returns: object
ragflow_get_datasetBRead-only
Get one dataset, including its parser configuration.
Inputs: dataset_id (required). Returns: object
ragflow_get_file_ancestorsARead-only
List all folders above a file or folder, up to the root.
Inputs: file_id (required). Returns: object
ragflow_get_file_versionsBRead-only
List the commits that changed one file, with operation, hash and message.
Inputs: file_id (required). Returns: object
ragflow_get_memory_configBRead-only
Get a memory's full configuration, including its extraction prompts.
Inputs: memory_id (required). Returns: object
ragflow_get_memory_messageARead-only
Get one memory message with its full content (without the embedding vector).
Inputs: memory_id (required), message_id (required). Returns: object
ragflow_get_parent_folderARead-only
Get the folder that directly contains a file or folder.
Inputs: file_id (required). Returns: object
ragflow_get_search_appBRead-only
Get one search app with its full search configuration.
Inputs: search_id (required). Returns: object
ragflow_get_uncommitted_changesARead-only
Show files in a workspace that changed since its last commit (like git status).
Inputs: dataset_id, workspace_id. Returns: object
ragflow_healthARead-only
Check whether RAGFlow and its database, cache, document engine, storage and queue are healthy.
Inputs: no named parameters. Returns: object
ragflow_ingest_documentsCDestructive
Start, rerun, cancel or clear ingestion of documents; also parses datasets that use an ingestion pipeline.
Inputs: action (required), document_ids (required), apply_dataset_config. Returns: object
ragflow_link_files_to_datasetsBDestructive
Turn file-manager files into documents of datasets. Runs in the background and does not parse.
Inputs: file_ids (required), dataset_ids (required), mode. Returns: object
ragflow_list_agentsARead-only
List agents (agent canvases and ingestion pipelines) without their graphs.
Inputs: desc, page, tags, orderby, +4 more. Returns: object
ragflow_list_agent_sessionsBRead-only
List an agent's conversation sessions with their messages.
Inputs: agent_id (required), desc, page, orderby, +7 more. Returns: object
ragflow_list_agent_templatesARead-only
List the built-in agent templates; pass template_id to get one template's DSL for ragflow_create_agent.
Inputs: template_id. Returns: object
ragflow_list_chatsBRead-only
List chat assistants with their datasets and retrieval settings.
Inputs: desc, name, page, chat_id, +3 more. Returns: object
ragflow_list_chat_sessionsBRead-only
List the sessions of a chat assistant (without their messages).
Inputs: chat_id (required), desc, name, page, +3 more. Returns: object
ragflow_list_chunksCRead-only
List the parsed chunks of a document.
Inputs: dataset_id (required), document_id (required), page, keywords, +1 more. Returns: object
ragflow_list_commit_filesCRead-only
List the file changes recorded in one commit.
Inputs: commit_id (required), dataset_id, workspace_id. Returns: object
ragflow_list_commitsBRead-only
List the commit history of a workspace folder, newest first by default.
Inputs: desc, page, page_size, dataset_id, +1 more. Returns: object
ragflow_list_datasetsARead-only
List datasets (knowledge bases) with IDs, descriptions and document/chunk counts.
Inputs: desc, name, page, orderby, +4 more. Returns: object
ragflow_list_documentsBRead-only
List documents in a dataset with their parsing status and chunk counts.
Inputs: dataset_id (required), desc, name, page, +4 more. Returns: object
ragflow_list_filesARead-only
List files and folders in a file-manager folder (root when parent_id is omitted), plus the folder above it.
Inputs: desc, page, orderby, keywords, +2 more. Returns: object
ragflow_list_memoriesBRead-only
List memories (agent conversation memory stores) with their types and models.
Inputs: page, keywords, page_size, tenant_ids, +2 more. Returns: object
ragflow_list_memory_messagesBRead-only
List a memory's stored dialogue messages, the memories extracted from each, and extraction progress.
Inputs: memory_id (required), page, agent_ids, page_size, +1 more. Returns: object
ragflow_list_search_appsBRead-only
List search apps (saved search configurations that answer questions from datasets).
Inputs: desc, page, orderby, keywords, +1 more. Returns: object
ragflow_metadata_summaryBRead-only
Show which metadata keys and values the documents of a dataset use, with counts.
Inputs: dataset_id (required). Returns: object
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.
Inputs: question (required), dataset_ids (required), search_id. Returns: object
ragflow_move_filesA
Move files or folders to another folder, rename one item, or both.
Inputs: file_ids (required), new_name, dest_folder_id. Returns: object
ragflow_openai_chat_completionA
Ask a chat assistant through its OpenAI-compatible endpoint; no session is stored.
Inputs: chat_id (required), messages, question, max_tokens, +3 more. Returns: object
ragflow_parse_documentsA
Start (or restart) parsing documents into chunks; optionally wait until it finishes.
Inputs: dataset_id (required), document_ids (required), wait_seconds. Returns: object
ragflow_rate_chat_messageC
Give thumbs up or down, with optional feedback, to an assistant answer.
Inputs: chat_id (required), thumbup (required), message_id (required), session_id (required), +1 more. Returns: object
ragflow_recent_memory_messagesCRead-only
Get the most recent messages stored in memories.
Inputs: memory_ids (required), limit, agent_id, session_id. Returns: object
ragflow_rename_chat_sessionC
Rename a chat session.
Inputs: name (required), chat_id (required), session_id (required). Returns: object
ragflow_replace_chat_settingsA
Update a chat assistant with PUT semantics: llm_setting and prompt_config you pass replace the stored objects.
Inputs: chat_id (required), name, top_k, top_n, +10 more. Returns: object
ragflow_retrievalBRead-only
Search datasets and return the matching chunks with their exact text and source document.
Inputs: question (required), dataset_ids (required), page, top_k, +7 more. Returns: object
ragflow_search_app_completionARead-only
Answer a question with a search app's datasets and LLM; returns the answer and its source chunks.
Inputs: question (required), search_id (required), dataset_ids, max_references. Returns: object
ragflow_search_memory_messagesCRead-only
Search memories for messages relevant to a query.
Inputs: query (required), memory_ids (required), top_n, user_id, +4 more. Returns: object
ragflow_set_chunks_availabilityB
Switch many chunks of a document on or off for retrieval at once.
Inputs: available (required), chunk_ids (required), dataset_id (required), document_id (required). Returns: object
ragflow_set_memory_message_statusB
Enable or disable a memory message for agents.
Inputs: enabled (required), memory_id (required), message_id (required). Returns: object
ragflow_speech_to_textC
Transcribe an audio file with the tenant's speech-to-text model.
Inputs: filename, file_path, content_base64. Returns: object
ragflow_stop_parsingA
Stop parsing documents that are queued or running.
Inputs: dataset_id (required), document_ids (required). Returns: object
ragflow_text_to_speechB
Turn text into speech with the tenant's TTS model; returns the audio as base64.
Inputs: text (required). Returns: object
ragflow_update_agentA
Change an agent's title, description, permission or graph, and publish it with release=true.
Inputs: agent_id (required), dsl, title, release, +2 more. Returns: object
ragflow_update_chatB
Change some settings of a chat assistant; llm_setting and prompt_config are merged into the existing ones.
Inputs: chat_id (required), name, top_k, top_n, +10 more. Returns: object
ragflow_update_chunkB
Edit a chunk's text, keywords or questions, or switch it on or off for retrieval.
Inputs: chunk_id (required), dataset_id (required), document_id (required), content, +3 more. Returns: object
ragflow_update_datasetB
Update dataset settings. Only the fields you pass change.
Inputs: dataset_id (required), name, language, pagerank, +4 more. Returns: object
ragflow_update_documentB
Rename a document, replace its metadata, enable or disable it, or change its parser.
Inputs: dataset_id (required), document_id (required), name, enabled, +2 more. Returns: object
ragflow_update_memoryB
Update memory settings. Only the fields you pass change.
Inputs: memory_id (required), name, avatar, llm_id, +9 more. Returns: object
ragflow_update_metadataB
Set or remove metadata on many documents of a dataset at once.
Inputs: dataset_id (required), deletes, updates, document_ids, +2 more. Returns: object
ragflow_update_search_appA
Change a search app. Configuration keys you pass are merged into the saved ones.
Inputs: search_id (required), name, top_k, use_kg, +11 more. Returns: object
ragflow_upload_agent_fileB
Upload a file for an agent run; pass the returned object in ragflow_agent_chat files.
Inputs: agent_id (required), text, filename, file_path, +1 more. Returns: object
ragflow_upload_attachmentA
Store a file as a runtime attachment for chat or agent conversations; it joins no dataset.
Inputs: url, text, filename, file_path, +1 more. Returns: object
ragflow_upload_documentB
Add a document to a dataset from text, base64 bytes, a URL or an allowed local file.
Inputs: dataset_id (required), url, text, parse, +6 more. Returns: object
ragflow_upload_fileA
Upload a file into the file manager (not into a dataset); link it to datasets later if needed.
Inputs: text, filename, file_path, parent_id, +1 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
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.
Maintenance
Related MCP Connectors
Manage Chatbase agents, sources, conversations and help-desk tickets.
Ingest, manage, and retrieve documents for RAG-powered AI applications
Query and update Teable records, manage tables, and access the Teable API with AI agents.
Access Pollinations models and API capabilities through agent tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceAllows AI models to interact with SourceSync.ai's knowledge management platform to organize, ingest, retrieve, and search content in knowledge bases.25112 npm3MIT
- FlicenseBqualityDmaintenanceEnables interaction with the RAGFlow API to manage knowledge base datasets and conduct AI-driven chat sessions. Users can list datasets, create chat assistants, and retrieve or query information from specialized knowledge bases.4-
- FlicenseBqualityDmaintenanceEnables listing datasets, creating chat assistants, and chatting with them via RAGFlow API.33-
- AlicenseNot gradedqualityDmaintenanceEnables semantic retrieval and knowledge base management through the RAGFlow API, including dataset, document, chunk, chat, and graph operations.7MIT