使用说明

项目简介

Knowledge Base MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 客户端提供本地知识库的访问能力。它允许用户将本地文本文件组织成知识库,并通过语义搜索工具,使 LLM 能够检索和利用这些知识库中的信息。

主要功能点

  • 知识库管理: 支持用户在本地文件系统中创建和管理多个知识库,每个知识库为一个目录,包含文本文件(如 '.txt', '.md')。
  • 语义搜索: 利用 Hugging Face 的模型和 FAISS 索引技术,对知识库内容进行高效的语义搜索。
  • 工具集成: 通过 MCP 协议提供 'list_knowledge_bases' 和 'retrieve_knowledge' 两个工具,方便 LLM 客户端查询可用知识库和检索相关信息。
  • 自动索引更新: 服务器启动时或知识库文件发生变化时,自动更新 FAISS 索引,确保搜索结果的准确性。
  • 标准化接口: 遵循 MCP 协议标准,通过 JSON-RPC 与客户端通信,提供稳定可靠的上下文服务。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/MCP-Mirror/jeanibarz_knowledge-base-mcp-server
    cd jeanibarz_knowledge-base-mcp-server
  2. 安装依赖: 确保已安装 Node.js (>= 16.0) 和 npm。

    npm install
  3. 配置环境变量: 需要设置以下环境变量:

    • 'HUGGINGFACE_API_KEY': Hugging Face Inference API 的 API 密钥。访问 https://huggingface.co/ 注册并获取。
    • 'KNOWLEDGE_BASES_ROOT_DIR': 知识库根目录,用于存放知识库子目录。默认值为 '$HOME/knowledge_bases'。
    • 'FAISS_INDEX_PATH' (可选): FAISS 索引文件路径。默认值为 '$HOME/knowledge_bases/.faiss'。
    • 'HUGGINGFACE_MODEL_NAME' (可选): 用于生成 embeddings 的 Hugging Face 模型名称。默认值为 'sentence-transformers/all-MiniLM-L6-v2'。

    可以在 '.bashrc' 或 '.zshrc' 文件中设置,或者直接在 MCP 客户端的服务器配置中设置 'env' 字段。

  4. 构建服务器:

    npm run build
  5. 创建知识库目录: 在 'KNOWLEDGE_BASES_ROOT_DIR' 指定的目录下创建知识库子目录,例如 'company', 'it_support', 'onboarding'。将包含知识库内容的文本文件('.txt', '.md' 等)放入这些子目录中。

服务器配置

在 MCP 客户端的服务器配置中,添加以下 JSON 配置以连接到 Knowledge Base MCP Server:

{
  "serverName": "knowledge-base-server",
  "command": "node",
  "args": [
    "/path/to/jeanibarz_knowledge-base-mcp-server/build/index.js"
  ],
  "disabled": false,
  "autoApprove": [],
  "env": {
    "KNOWLEDGE_BASES_ROOT_DIR": "/path/to/knowledge_bases",
    "HUGGINGFACE_API_KEY": "YOUR_HUGGINGFACE_API_KEY"
  },
  "description": "检索知识库中与查询相关的文本片段。"
}
  • serverName: 服务器名称,客户端用以识别和调用。可以自定义,例如 "knowledge-base-server"。
  • command: 启动服务器的命令,这里使用 'node' 运行 JavaScript 文件。
  • args: 传递给 'command' 的参数,指向服务器入口文件 'build/index.js' 的绝对路径。请替换 '/path/to/jeanibarz_knowledge-base-mcp-server' 为实际仓库路径。
  • env: 环境变量配置,包含:
    • 'KNOWLEDGE_BASES_ROOT_DIR': 知识库根目录的绝对路径。请替换 '/path/to/knowledge_bases' 为实际知识库根目录路径。
    • 'HUGGINGFACE_API_KEY': Hugging Face API 密钥,请替换 'YOUR_HUGGINGFACE_API_KEY' 为您的实际密钥。
  • description: 服务器描述,用于在客户端界面显示,可以自定义描述信息。

基本使用方法

成功配置并启动服务器后,在 MCP 客户端中可以使用以下工具:

  1. 'list_knowledge_bases': 列出所有可用的知识库名称。无需任何参数。
  2. 'retrieve_knowledge': 从知识库中检索与查询相关的文本片段。需要 'query' 参数(查询文本),可选参数包括 'knowledge_base_name'(指定知识库名称)和 'threshold'(相似度阈值)。

例如,在 MCP 客户端中,可以这样调用 'retrieve_knowledge' 工具:

{
  "tool_calls": [
    {
      "id": "search-knowledge",
      "type": "function",
      "function": {
        "name": "retrieve_knowledge",
        "arguments": {
          "query": "什么是MCP协议?",
          "knowledge_base_name": "公司文档"
        }
      }
    }
  ]
}

服务器将返回 Markdown 格式的语义搜索结果,包含相关文本片段和来源信息。

信息

分类

数据库与文件