项目简介

Knowledge Base MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型(LLM)客户端提供便捷的知识库访问能力。它允许用户通过语义搜索,快速检索存储在本地知识库中的相关信息,从而增强 LLM 应用的上下文理解和知识获取能力。

主要功能点

  • 知识库管理: 支持用户自定义知识库目录,并自动索引目录下的文本文件(如 '.txt', '.md')。
  • 语义搜索: 利用 Hugging Face Inference API 和 FAISS 向量数据库,实现高效的知识库语义搜索。
  • 工具集成: 提供 'list_knowledge_bases' 和 'retrieve_knowledge' 两个工具,方便 LLM 客户端列出知识库和检索知识。
  • 自动索引更新: 服务器启动时或知识库文件发生变更时,自动更新 FAISS 索引,确保检索结果的准确性。
  • 灵活配置: 支持通过环境变量配置知识库根目录、FAISS 索引路径、Hugging Face 模型名称等。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/jeanibarz/knowledge-base-mcp-server
    cd knowledge-base-mcp-server
  2. 安装依赖:

    npm install
  3. 配置环境变量:

    • 必须设置 'HUGGINGFACE_API_KEY' 环境变量,用于 Hugging Face Inference API 的认证。请访问 Hugging Face 获取免费 API 密钥。
    • 必须设置 'KNOWLEDGE_BASES_ROOT_DIR' 环境变量,指定知识库根目录。默认值为 '$HOME/knowledge_bases'。
    • 可选设置 'FAISS_INDEX_PATH' 环境变量,指定 FAISS 索引存储路径。默认值为 '$HOME/knowledge_bases/.faiss'。
    • 可选设置 'HUGGINGFACE_MODEL_NAME' 环境变量,指定 Hugging Face 模型名称。默认值为 'sentence-transformers/all-MiniLM-L6-v2'。
    • 您可以通过修改 '.bashrc' 或 '.zshrc' 文件,或者在 MCP 客户端的服务器配置中设置这些环境变量。
  4. 构建服务器:

    npm run build
  5. 配置 MCP 服务器 (在 MCP 客户端中):

    在 MCP 客户端的服务器配置文件(通常是 JSON 格式)中,添加以下配置信息。请根据您的实际路径进行修改。

    {
      "knowledge-base-mcp": {  // 服务器名称,可以自定义
        "command": "node",       // 启动服务器的命令,这里使用 Node.js
        "args": [              // 命令参数
          "/path/to/knowledge-base-mcp-server/build/index.js" // 服务器入口文件路径,请替换为实际路径
        ],
        "disabled": false,      // 是否禁用该服务器,false 表示启用
        "autoApprove": [],    // 自动批准的工具列表,目前为空
        "env": {                // 环境变量
          "KNOWLEDGE_BASES_ROOT_DIR": "/path/to/knowledge_bases", // 知识库根目录路径,请替换为实际路径
          "HUGGINGFACE_API_KEY": "YOUR_HUGGINGFACE_API_KEY"   // 您的 Hugging Face API 密钥,请替换为实际密钥
        },
        "description": "Retrieves similar chunks from the knowledge base based on a query." // 服务器描述
      }
    }

    请注意:

    • 将 '/path/to/knowledge-base-mcp-server' 替换为克隆仓库后 'knowledge-base-mcp-server' 目录的绝对路径。
    • 将 '/path/to/knowledge_bases' 替换为您希望存放知识库文件的根目录的绝对路径。
    • 将 'YOUR_HUGGINGFACE_API_KEY' 替换为您在 Hugging Face 网站上申请的 API 密钥。
  6. 创建知识库目录:

    • 在您设置的 'KNOWLEDGE_BASES_ROOT_DIR' 目录下,创建子目录作为不同的知识库(例如 'company', 'it_support', 'onboarding')。
    • 将包含知识库内容的文本文件('.txt', '.md' 等)放入这些子目录中。

基本使用方法

  1. 启动 MCP 客户端并连接到 Knowledge Base MCP Server。
  2. 在 MCP 客户端中,您可以使用以下工具与服务器交互:
    • 'list_knowledge_bases': 列出所有可用的知识库名称。
    • 'retrieve_knowledge': 根据查询语句从知识库中检索相关内容。您可以指定 'knowledge_base_name' 参数来限定检索范围,或省略该参数以检索所有知识库。还可以通过 'threshold' 参数调整相似度阈值。

例如,您可以使用 'retrieve_knowledge' 工具,并输入以下参数来检索关于 "如何申请休假" 的知识:

{
  "tool_call": {
    "name": "retrieve_knowledge",
    "arguments": {
      "query": "如何申请休假",
      "knowledge_base_name": "company" // 可选,指定在 "company" 知识库中检索
    }
  }
}

服务器将返回包含相关文档片段的 Markdown 格式文本,其中包含内容、来源文件信息以及相似度得分。

信息

分类

AI与计算