M

MCP知识库服务器

@jeanibarz/knowledge-base-mcp-server
3 Stars 1.7k 次浏览 jeanibarz 更新于 2026-08-23

提供了使用语义搜索功能从不同知识库中列出和检索内容的工具。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

知识库 MCP 服务器

此MCP服务器提供了从不同知识库中列出和检索内容的工具。

设置说明

这些说明假设您的系统上已安装了Node.js和npm。

先决条件

  • Node.js(版本16或更高)
  • npm(Node包管理器)
  1. 克隆仓库:

    git clone <repository_url>
    cd knowledge-base-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置环境变量:

    • 服务器需要设置 HUGGINGFACE_API_KEY 环境变量。这是用于生成知识库内容嵌入的 Hugging Face 推理 API 的 API 密钥。你可以从 Hugging Face 网站(https://huggingface.co/)获取免费的 API 密钥。
    • 服务器需要设置 KNOWLEDGE_BASES_ROOT_DIR 环境变量。该变量指定了知识库子目录所在的位置。如果不设置此变量,它将默认为 $HOME/knowledge_bases,其中 $HOME 是当前用户的主目录。
    • 服务器支持通过 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 设置中:

    • 编辑位于 /home/jean/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json 文件。
    • mcpServers 对象中添加以下配置:
    "knowledge-base-mcp": {
      "command": "node",
      "args": [
        "/path/to/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": "根据查询从知识库中检索相似的块。"
    },
    
    • /path/to/knowledge-base-mcp-server 替换为实际的服务器目录路径。
    • /path/to/knowledge_bases 替换为实际的知识库目录路径。
  6. 创建知识库目录:

    • KNOWLEDGE_BASES_ROOT_DIR 内为每个知识库创建子目录(例如,companyit_supportonboarding)。
    • 将包含知识库内容的文本文件(例如,.txt.md)放置在这些子目录中。
  • 服务器递归读取指定知识库子目录内的所有文本文件(例如 .txt.md)。
  • 服务器跳过隐藏文件和目录(那些以 . 开头的文件或目录)。
  • 对于每个文件,服务器计算其 SHA256 哈希值,并将其存储在一个与文件同名但在隐藏的 .index 子目录中的文件里。这个哈希值用于确定自上次索引以来该文件是否已被修改。
  • 文件内容使用来自 langchain/text_splitterMarkdownTextSplitter 进行分块。
  • 每个块的内容随后被添加到一个 FAISS 索引中,该索引用于相似性搜索。
  • 当服务器启动时,FAISS 索引会自动初始化。它会检查知识库文件的变化并相应地更新索引。

使用方法

服务器提供了两个工具:

  • list_knowledge_bases: 列出可用的知识库。
  • retrieve_knowledge: 根据查询从知识库中检索相似的块。可选地,如果指定了某个知识库,则仅搜索该知识库;否则,将考虑所有可用的知识库。默认情况下,最多返回 10 个文档块,这些块的得分低于阈值 2。可以使用 threshold 参数提供不同的阈值。

您可以通过 MCP 接口使用这些工具。

retrieve_knowledge 工具使用 FAISS 索引执行语义搜索。当服务器启动或知识库中的文件被修改时,索引会自动更新。

retrieve_knowledge 工具的输出是一个具有以下结构的 markdown 格式的字符串:

## Semantic Search Results

**Result 1:**

[Content of the most similar chunk]

**Source:**
```json
{
  "source": "[Path to the file containing the chunk]"
}
```

---

**Result 2:**

[Content of the second most similar chunk]

**Source:**
```json
{
  "source": "[Path to the file containing the chunk]"
}
```

> **Disclaimer:** The provided results might not all be relevant. Please cross-check the relevance of the information.

每个结果包括最相似块的内容、源文件以及相似度分数。

相关 MCP 服务