使用说明
项目简介
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 与客户端通信,提供稳定可靠的上下文服务。
安装步骤
-
克隆仓库:
git clone https://github.com/MCP-Mirror/jeanibarz_knowledge-base-mcp-server cd jeanibarz_knowledge-base-mcp-server -
安装依赖: 确保已安装 Node.js (>= 16.0) 和 npm。
npm install -
配置环境变量: 需要设置以下环境变量:
- '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' 字段。
-
构建服务器:
npm run build -
创建知识库目录: 在 '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 客户端中可以使用以下工具:
- 'list_knowledge_bases': 列出所有可用的知识库名称。无需任何参数。
- '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 格式的语义搜索结果,包含相关文本片段和来源信息。
信息
分类
数据库与文件