article
README
🚀 知识库 MCP 服务器
本 MCP 服务器提供实用工具,可用于列出并检索不同知识库中的内容,为知识管理和查询提供便利。
🚀 快速开始
此 MCP 服务器能帮助您高效管理和检索知识库内容。使用前,请确保已完成安装和配置。
✨ 主要特性
- 提供知识库管理工具,可创建和更新知识库。
- 具备检索工具,能从知识库中检索信息。
- 支持多参数设置,如指定知识库、控制结果数量和相似度阈值。
- 输出结果为 Markdown 格式,包含相关段落内容、源文件路径等信息。
📦 安装指南
这些说明假设您已经在系统中安装了 Node.js 和 npm。
先决条件
安装步骤
- 克隆仓库:
git clone <repository_url> cd knowledge-base-mcp-server - 安装依赖项:
npm install - 配置环境变量:
- 服务器需要设置
HUGGINGFACE_API_KEY环境变量,这是用于生成知识库内容嵌入的 Hugging Face 推理 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-mpnet-base-v2"。 - 请将以下环境变量添加到您的 shell 配置文件(如
.bashrc或.zshrc)中:export HUGGINGFACE_API_KEY="your_api_key" export KNOWLEDGE_BASES_ROOT_DIR="/path/to/knowledge_bases" export FAISS_INDEX_PATH="/path/to/faiss_index"
- 服务器需要设置
- 运行服务器:
npm run dev
💻 使用示例
基础用法
知识库管理工具 (manage_knowledge_base)
此工具用于创建和更新知识库。您可以通过以下命令与它交互:
npm run manage-knowledge-base
- 创建新知识库:
node manage_knowledge_base.js create <knowledge_base_name>
- 更新现有知识库:
node manage_knowledge_base.js update <knowledge_base_name> --add <file_path> [--recursive]
检索工具 (retrieve_knowledge)
此工具用于从知识库中检索信息。您可以通过以下命令与它交互:
npm run retrieve-knowledge
- 搜索所有知识库:
node retrieve_knowledge.js search "您的查询问题"
- 指定特定知识库:
node retrieve_knowledge.js search --knowledge_base <knowledge_base_name> "您的查询问题"
- 设置结果数量和阈值:
node retrieve_knowledge.js search --top_n 5 --threshold 1.5 "您的查询问题"
高级用法
输出格式
检索工具的输出为 Markdown 格式的字符串,结构如下:
## 同义词搜索结果
**结果 1:**
[最相关的段落内容]
**来源:**
```json
{
"source": "[包含该段落的文件路径]"
}
结果 2:
[第二相关段落内容]
来源:
{
"source": "[包含该段落的文件路径]"
}
免责声明: 提供的结果可能并非全部都相关。请交叉验证信息的相关性。
每个结果包括最相关的段落内容、源文件路径和相似度分数。
## 📚 详细文档
### 知识库管理工具 (`manage_knowledge_base`)
#### 创建新知识库
```bash
node manage_knowledge_base.js create <knowledge_base_name>
此命令将在 $KNOWLEDGE_BASES_ROOT_DIR 目录下创建一个名为 <knowledge_base_name> 的新知识库目录,并初始化必要的配置文件。
更新现有知识库
node manage_knowledge_base.js update <knowledge_base_name> --add <file_path> [--recursive]
此命令允许您将文件添加到指定的知识库中。如果启用 --recursive 标志,它将在给定路径及其子目录中递归查找所有文件。
检索工具 (retrieve_knowledge)
基本检索
node retrieve_knowledge.js search "您的查询问题"
此命令将搜索所有注册的知识库,并返回与查询最相关的段落。
指定知识库
node retrieve_knowledge.js search --knowledge_base <knowledge_base_name> "您的查询问题"
此命令允许您指定要搜索的特定知识库。
控制结果数量和相似度阈值
node retrieve_knowledge.js search --top_n 5 --threshold 1.5 "您的查询问题"
通过 --top_n 参数,您可以控制返回的最大结果数量。通过 --threshold 参数,您可以设置相似度分数的最低阈值。
后台运行
要以后台服务的形式运行服务器,请参考项目中的服务启动脚本和配置文件。
🔧 技术细节
项目结构
knowledge-base-mcp-server/
├── package.json # 项目的 npm 包配置
├── src/ # 源代码目录
│ ├── manage_knowledge_base.js # 知识库管理工具
│ └── retrieve_knowledge.js # 检索工具
└── README.md # 项目说明文档
依赖项
{
"dependencies": {
"@sentence-transformers/all-mpnet-base-v2": "^1.14.0",
"faiss-js": "^0.5.3",
"fs-extra": "^9.1.0",
"node-yaml": "^5.1.0"
}
}
📄 许可证
贡献者
- [您的姓名或 GitHub 用户名]
致谢
感谢您对本项目的贡献!
微信扫一扫