local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Uses the Hugging Face Inference API to generate embeddings for the knowledge base content, with optional model selection through environment variables.
Uses LangChain's MarkdownTextSplitter to split file content into chunks for the knowledge base.
知识库 MCP 服务器
该 MCP 服务器提供列出和检索来自不同知识库的内容的工具。
设置说明
这些说明假设您的系统上安装了 Node.js 和 npm。
先决条件
- 克隆存储库:Copy
- 安装依赖项:Copy
- 配置环境变量:
- 服务器需要设置
HUGGINGFACE_API_KEY
环境变量。这是 Hugging Face Inference 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 设置中设置。
- 服务器需要设置
- 构建服务器:Copy
- 将服务器添加到 MCP 设置:
- 编辑位于
/home/jean/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/settings/
的cline_mcp_settings.json
文件。 - 向
mcpServers
对象添加以下配置:
Copy- 将
/path/to/knowledge-base-mcp-server
替换为服务器目录的实际路径。 - 将
/path/to/knowledge_bases
替换为知识库目录的实际路径。
- 编辑位于
- 创建知识库目录:
- 在
KNOWLEDGE_BASES_ROOT_DIR
中为每个知识库创建子目录(例如company
、it_support
、onboarding
)。 - 将包含知识库内容的文本文件(例如
.txt
、.md
)放在这些子目录中。
- 在
- 服务器递归读取指定知识库子目录内的所有文本文件(例如
.txt
、.md
)。 - 服务器跳过隐藏文件和目录(以
.
开头的文件和目录)。 - 对于每个文件,服务器都会计算 SHA256 哈希值,并将其存储在隐藏的
.index
子目录中的同名文件中。此哈希值用于确定文件自上次索引以来是否被修改过。 - 使用
langchain/text_splitter
中的MarkdownTextSplitter
将文件内容分割成块。 - 然后将每个块的内容添加到 FAISS 索引中,用于相似性搜索。
- FAISS 索引在服务器启动时自动初始化。它会检查知识库文件中的变化并相应地更新索引。
用法
该服务器公开了两个工具:
list_knowledge_bases
:列出可用的知识库。retrieve_knowledge
知识库 (retrieve_knowledge):根据查询从知识库中检索相似的块。(可选)如果指定了知识库,则仅搜索该知识库;否则,将考虑所有可用的知识库。默认情况下,最多返回 10 个得分低于阈值 2 的文档块。可以使用threshold
参数设置其他阈值。
您可以通过 MCP 界面使用这些工具。
retrieve_knowledge
工具使用 FAISS 索引执行语义搜索。当服务器启动或知识库中的文件被修改时,索引会自动更新。
retrieve_knowledge
工具的输出是 markdown 格式的字符串,具有以下结构:
Copy
每个结果包括最相似的块的内容、源文件和相似度分数。