The Pensieve MCP Server について
The Pensieve MCP Serverは、Markdownファイルを整理して自然言語で検索するためのRAGベースの知識管理MCPサーバーです。LLMで関連情報を検索して文脈に沿った回答を作り、メタデータ付きのリソースとして知識を公開します。
主な機能
- 01Markdownファイルで知識を保存
- 02memory:// URIでリソースを公開
- 03メタデータによる分類と検索
- 04自然言語で質問
- 05LLMによる検索と回答生成
活用シーン
- 01個人やチームのメモを検索
- 02分類済みファイルから関連情報を探す
- 03保存資料に基づく文脈付き回答を生成
MCP 対応
memory:// URIで知識リソースを公開し、クライアントが自然言語で知識を検索できるask_pensieveツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Pensieve MCP サーバー
頭の中にある余分な考えをすくい取り、盆に注ぎ、好きなときにじっくり眺めるだけです。こうして形にしておけば、パターンやつながりを見つけやすくなります。
これは、RAG ベースのナレッジ管理システムを実装した TypeScript ベースの MCP サーバーです。次の機能を提供し、MCP の基本的な概念を実演します。
- URI とメタデータを備えた、保存済みナレッジを表すリソース
- ナレッジを検索するための自然言語インターフェース
- LLM を活用した分析と応答の生成
機能
リソース
memory://URI を使ってナレッジにアクセス- 構造化されたナレッジを含む Markdown ファイル
- 分類と検索のためのメタデータ
ツール
ask_pensieve- 保存済みナレッジに問い合わせます- 自然言語での質問を受け付けます
- LLM を使用して、関連情報を分析、取得します
- 保存済みナレッジに基づく、文脈に即した回答を提供します
開発
依存関係をインストールします:
npm install
サーバーをビルドします:
npm run build
自動再ビルドを有効にして開発する場合:
npm run watch
ナレッジの整理
ルートディレクトリにある Markdown ファイルとしてナレッジを保存します:
- ファイル名にはわかりやすいカテゴリを使用します(例:
skills-javascript.md) - 1 ファイルにつき 1 つのトピックを扱います
- 関連するメタデータ(日付、ソースなど)を含めます
- 明確で、よく構成された内容にします
インストール
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: "あなたは Pensieve です。質問を分析し、取得すべきナレッジを判断してください。", 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: 次のナレッジを使って回答してください:${results.map(r => r.payload.full_text).join('\n')}
}
}],
systemPrompt: "あなたは Pensieve です。保存済みナレッジに基づいて、わかりやすく回答してください。",
includeContext: "none"
});
return response.content.text; }
const documentGuide = `Pensieve 用のドキュメントを準備するには:
- ファイルをルートディレクトリに置きます
- ファイル名にはわかりやすいカテゴリを使用します(例:skills-javascript.md)
- 1 ファイルにつき 1 つのトピックを扱います
- 明確で、よく構成された内容にします
- 関連するメタデータ(日付、ソースなど)を含めます`;
{ uri: "memory://knowledge/skills-javascript.md", mimeType: "text/markdown", // Markdown ファイルを使用するため name: "JavaScript スキル", description: "JavaScript 開発に関するナレッジ" }
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。