项目简介
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 模型名称等。
安装步骤
-
克隆仓库:
git clone https://github.com/jeanibarz/knowledge-base-mcp-server cd knowledge-base-mcp-server -
安装依赖:
npm install -
配置环境变量:
- 必须设置 '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 客户端的服务器配置中设置这些环境变量。
-
构建服务器:
npm run build -
配置 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 密钥。
-
创建知识库目录:
- 在您设置的 'KNOWLEDGE_BASES_ROOT_DIR' 目录下,创建子目录作为不同的知识库(例如 'company', 'it_support', 'onboarding')。
- 将包含知识库内容的文本文件('.txt', '.md' 等)放入这些子目录中。
基本使用方法
- 启动 MCP 客户端并连接到 Knowledge Base MCP Server。
- 在 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与计算