ragflow-knowledge-mcp-server

ragflow-knowledge-mcp-server

3.3

If you are the rightful owner of ragflow-knowledge-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

RAGFlow Knowledge MCP Server is a simple Model Context Protocol server designed to manage and query knowledge bases for RAGFlow.

ragflow-knowledge-mcp-server

A simple MCP server of knowledge base for RAGFlow.

Supported RAGFlow versions: 0.17.2 ~ 0.19.0

See also infiniflow/ragflow/blob/main/mcp/server/server.py

1. Available tools

1. Dynamic knowledge base searching tools

Enable dynamic knowledge base searching tools in config.yaml, see also Server configurations:

datasets:
  - dataset-id: 00000000000000000000000000000000
    search-tool-name: search_xxx_knowledge
    #search-tool-description: "Search knowledge about XXX(中文说明)."
    #search-tool-result: simple
    search-tool-description: "Search knowledge about XXX(中文说明). Results in JSON format, knowledge in the 'content' property."
    search-tool-result: json

2. list_knowledge_bases (default disabled)

Enable list_knowledge_bases tool in config.yaml:

list-bases-enabled: true
  • Default description: List knowledge bases.

  • Input properties:

    • page, str: The page number to list the bases for, optional, defaults to 1.
    • limit, str: The maximum number of knowledge bases to list, optional, defaults to 20.
    • timeout, int: Dynamic timeout parameter, enabled by timeout-param-enabled, optional, defaults to 60 seconds.

3. get_knowledge_base_info (default disabled)

Enable get_knowledge_base_info tool in config.yaml:

get-base-enabled: true
  • Default description: Get information of the specified knowledge base ID, results including the knowledge base name, description, and other information.

  • Input properties:

    • knowledge_base_id, str: The ID of the knowledge base to query.
    • timeout, int: Dynamic timeout parameter, enabled by timeout-param-enabled, optional, defaults to 60 seconds.

2. Install and run

2.1. Install using pip

# Uninstall the previous version
pip uninstall --yes ragflow-knowledge-mcp-server

pip install ragflow-knowledge-mcp-server --upgrade --force-reinstall --extra-index-url http://127.0.0.1:8081/repository/pypi-group/simple --trusted-host 127.0.0.1

2.2. Install from source

cd /path/to/project

pip install .

# Or install using pytools.sh
./pytools.sh reinstall

2.3. Run

export SIMP_LOGGER_LOG_FILE=/path/to/mcp.log
export SIMP_LOGGER_LOG_LEVEL=DEBUG

# Run server directly
ragflow-knowledge-mcp-server --config=/path/to/config.yaml

# Or run with python
python -m ragflow_knowledge_mcp_server --config=/path/to/config.yaml

# Or run with uv
uv run ragflow-knowledge-mcp-server --config=/path/to/config.yaml

2.4. Run with Docker or Docker Compose

  1. Docker

    • Export the EXTRA_INDEX_URL environment variable, then run to build the image, modifying the build script as needed or building manually.
    • Then refer to to run the container.
  2. Docker Compose

    • Modify the .env file.
    • Modify the config.yaml file.
    • Run to start the container, modifying the startup script as needed or running manually.

3. Server configurations

  • YAML:

Example configurations yaml, for full configuration, see :

server-name: ragflow-knowledge-base

default-base-url: http://127.0.0.1:9388/api/v1
default-api-key: ragflow-00000000000000000000000000000000

timeout: 60
timeout-param-enabled: false

# SSE
transport: sse # Defaults to stdio
sse-port: 41106

list-bases-enabled: false
get-base-enabled: false

datasets:
  - dataset-id: 00000000000000000000000000000000
    search-tool-name: search_xxx_knowledge
    search-tool-description: "Search knowledge about XXX(中文说明). Results in JSON format, knowledge in the 'content' property."

  - enabled: false
    id-param-enabled: true
    search-tool-name: search_knowledge
    search-tool-description: "Search knowledge from specified knowledge base('knowledge_base_id')."

Or configures the base URL and API key for each dataset and tools:

server-name: ragflow-knowledge-base

timeout: 60
timeout-param-enabled: false

# SSE
transport: sse # Defaults to stdio
sse-port: 41106

list-bases-enabled: false
list-bases-base-url: http://127.0.0.1:9388/api/v1
list-bases-api-key: ragflow-00000000000000000000000000000000

get-base-enabled: false

datasets:
  - dataset-id: 00000000000000000000000000000000
    base-url: http://127.0.0.1:9388/api/v1
    api-key: ragflow-00000000000000000000000000000000
    # Other properties...
  • Available environment variables:
YamlEnvironment variable nameDefault valueDescription
RAGFLOW_KNOWLEDGE_MCP_SERVER_CONFIGconfig.yamlThe config file path, also available in CLI option --config=/path/to/config.yaml.
default-base-urlDEFAULT_RAGFLOW_KNOWLEDGE_BASE_URL-The default base URL for the knowledge base.
default-api-keyDEFAULT_RAGFLOW_KNOWLEDGE_API_KEY-The default API key for the knowledge base.
server-nameRAGFLOW_KNOWLEDGE_MCP_SERVER_NAMERAGFlow Knowledge BaseThe name of the MCP server.
transportRAGFLOW_KNOWLEDGE_MCP_SERVER_TRANSPORTstdioThe transport type. Can be stdio or sse.
sse-transport-endpointRAGFLOW_KNOWLEDGE_MCP_SERVER_SSE_TRANSPORT_ENDPOINT/messages/The SSE transport endpoint.
sse-bind-hostRAGFLOW_KNOWLEDGE_MCP_SERVER_SSE_BIND_HOST0.0.0.0The host to bind the SSE transport.
sse-portRAGFLOW_KNOWLEDGE_MCP_SERVER_SSE_PORT41106The port for the SSE transport.
sse-debug-enabledRAGFLOW_KNOWLEDGE_MCP_SERVER_SSE_DEBUG_ENABLEDFalseWhether to enable debug mode for SSE.
timeoutRAGFLOW_KNOWLEDGE_MCP_SERVER_TIMEOUT60The timeout for the server.
timeout-param-enabledRAGFLOW_KNOWLEDGE_MCP_SERVER_TIMEOUT_PARAM_ENABLEDFalseWhether to enable the timeout parameter.
timeout-param-descriptionRAGFLOW_KNOWLEDGE_MCP_SERVER_TIMEOUT_PARAM_DESCRIPTIONThe total timeout for one calling, in seconds, optional, defaults to {self.timeout} seconds.The description of the timeout parameter.
  • Available environment variables of simp-logger:
Variable nameDefault valueDescription
SIMP_LOGGER_LOG_FILE_ENABLEDTrueWhether to enable logging to file.
SIMP_LOGGER_LOG_CONSOLE_ENABLEDTrueWhether to enable logging to console.
SIMP_LOGGER_LOG_LEVELINFOThe log level.
SIMP_LOGGER_LOG_FILE~/logs/simp-logger.logThe log file path.
SIMP_LOGGER_LOG_PATTERN%(asctime)s %(levelname)s [%(threadName)s]: %(message)sThe log pattern.
SIMP_LOGGER_LOG_MAX_BYTES10485760 (10MB)The maximum size of the log file.
SIMP_LOGGER_LOG_BACKUP_COUNT5The number of backup files to keep.
SIMP_LOGGER_LOG_ROTATION_TYPEsizeThe type of log rotation. Can be size or time.
SIMP_LOGGER_LOG_ROTATION_WHENmidnightThe time of day to rotate the log file.
SIMP_LOGGER_LOG_ROTATION_INTERVAL1The interval for log rotation.
SIMP_LOGGER_LOG_CLEANUP_DISABLEDFalseWhether to disable logger cleanup.

4. MCP configurations

4.1. SSE

Example endpoint: http://127.0.0.1:41106/sse

4.2. stdio

Simple command line:

uv run ragflow-knowledge-mcp-server --config=/path/to/config.yaml

JSON:

{
  "ragflow-knowledge-base": {
    "type": "stdio",
    "command": "uv",
    "args": [
      "run",
      "ragflow-knowledge-mcp-server",
      "--config=/path/to/config.yaml"
    ],
    "env": {
      "SIMP_LOGGER_LOG_CONSOLE_ENABLED": false,
      "SIMP_LOGGER_LOG_FILE": "/path/to/mcp.log",
      "SIMP_LOGGER_LOG_LEVEL": "DEBUG"
    }
  }
}

YAML:

ragflow-knowledge-base:
  type: stdio
  command: uv
  args:
    - run
    - ragflow-knowledge-mcp-server
    - "--config=/path/to/config.yaml"
  env:
    SIMP_LOGGER_LOG_CONSOLE_ENABLED: false
    SIMP_LOGGER_LOG_FILE: /path/to/mcp.log
    SIMP_LOGGER_LOG_LEVEL: DEBUG