关于 The Pensieve MCP Server
The Pensieve MCP Server 是基于 RAG 的知识管理 MCP 服务,适合将 Markdown 知识文件整理并进行自然语言查询的用户。它通过 LLM 检索相关内容并合成上下文回答,同时将知识以带元数据的资源形式呈现。
主要功能
- 01以 Markdown 文件存储知识
- 02通过 memory:// URI 暴露资源
- 03按元数据分类和检索
- 04自然语言提问
- 05LLM 检索与回答合成
适用场景
- 01查询个人或团队整理的笔记
- 02从分类知识文件中查找相关内容
- 03根据存储资料生成上下文回答
MCP 相关
该 MCP 服务通过 memory:// URI 暴露知识资源,并提供 ask_pensieve 工具供客户端以自然语言查询存储知识。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Pensieve MCP 服务
只需将多余的思绪从脑海中抽出,倒入冥想盆,再从容地仔细查看即可。你明白,以这种形式呈现时,更容易发现其中的模式和联系。
这是一个基于 TypeScript 的 MCP 服务,实现了一个基于 RAG 的知识管理系统。它通过提供以下功能来展示 MCP 的核心概念:
- 以 URI 和元数据表示已存储知识的资源
- 用于查询知识的自然语言界面
- 由大模型驱动的分析和响应合成
功能
资源
- 通过
memory://URI 访问知识 - 包含结构化知识的 Markdown 文件
- 用于分类和检索的元数据
工具
ask_pensieve- 查询已存储的知识- 接收自然语言问题
- 使用大模型分析并检索相关信息
- 根据已存储的知识提供上下文相关的回答
开发
安装依赖:
npm install
构建服务:
npm run build
启用自动重新构建以进行开发:
npm run watch
知识组织
将知识以 Markdown 文件的形式存储在根目录中:
- 在文件名中使用清晰的类别(例如
skills-javascript.md) - 每个文件只包含一个主题
- 添加相关元数据(日期、来源等)
- 使用清晰、结构良好的内容
安装
要与 Claude Desktop 搭配使用,请添加服务配置:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"The Pensieve": {
"command": "/path/to/The Pensieve/build/index.js"
}
}
}
调试
由于 MCP 服务通过 stdio 通信,调试可能颇具挑战。我们建议使用 MCP Inspector:
npm run inspector
Inspector 会提供一个 URL,供你在浏览器中访问调试工具。
async function handleQuestion(question: string) { // 1. 分析问题 const analysis = await server.request(SamplingCreateMessageRequestSchema, { messages: [{ role: "user", content: { type: "text", text: question } }], systemPrompt: "You are the Pensieve. Analyze questions to determine what knowledge to retrieve.", includeContext: "none" });
// 2. 使用现有的 RAG 查询(来自我们已运行的代码) const results = await ragPipeline.semanticSearch(analysis.content.text);
// 3. 撰写回答
const response = await server.request(SamplingCreateMessageRequestSchema, {
messages: [{
role: "user",
content: {
type: "text",
text: Answer using this knowledge: ${results.map(r => r.payload.full_text).join('\n')}
}
}],
systemPrompt: "You are the Pensieve. Provide clear answers based on stored knowledge.",
includeContext: "none"
});
return response.content.text; }
const documentGuide = `为 Pensieve 准备文档:
- 将文件放在根目录中
- 在文件名中使用清晰的类别(例如 skills-javascript.md)
- 每个文件只包含一个主题
- 内容清晰、结构良好
- 添加相关元数据(日期、来源等)`;
{ uri: "memory://knowledge/skills-javascript.md", mimeType: "text/markdown", // 因为我们使用的是 Markdown 文件 name: "JavaScript Skills", description: "关于 JavaScript 开发的知识" }
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。