mcpField
T
The Pensieve MCP Server

The Pensieve MCP Server

本地服务
design.august.style记忆与知识284 周前更新

关于 The Pensieve MCP Server

The Pensieve MCP Server 是基于 RAG 的知识管理 MCP 服务,适合将 Markdown 知识文件整理并进行自然语言查询的用户。它通过 LLM 检索相关内容并合成上下文回答,同时将知识以带元数据的资源形式呈现。

主要功能

  1. 01以 Markdown 文件存储知识
  2. 02通过 memory:// URI 暴露资源
  3. 03按元数据分类和检索
  4. 04自然语言提问
  5. 05LLM 检索与回答合成

适用场景

  1. 01查询个人或团队整理的笔记
  2. 02从分类知识文件中查找相关内容
  3. 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 文件的形式存储在根目录中:

  1. 在文件名中使用清晰的类别(例如 skills-javascript.md)
  2. 每个文件只包含一个主题
  3. 添加相关元数据(日期、来源等)
  4. 使用清晰、结构良好的内容

安装

要与 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 准备文档:

  1. 将文件放在根目录中
  2. 在文件名中使用清晰的类别(例如 skills-javascript.md)
  3. 每个文件只包含一个主题
  4. 内容清晰、结构良好
  5. 添加相关元数据(日期、来源等)`;

{ uri: "memory://knowledge/skills-javascript.md", mimeType: "text/markdown", // 因为我们使用的是 Markdown 文件 name: "JavaScript Skills", description: "关于 JavaScript 开发的知识" }

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。