プロジェクト管理用の mem0 MCP サーバー
mem0 MCP サーバーは、MCP ホスト アプリケーションと mem0 クラウド サービス間のブリッジであり、MCP ホスト AI にメモリ機能を提供します。
これは、スコープをコーディングからプロジェクトマネジメントへと変更するためにフォークされたものです。フォークされた内容は、プロジェクトマネジメントのトピックに関連するより高レベルのコンテキストを扱います。
さらに、このフォークは、コーディング形式を人間のプロトコルのような高レベルのコンテキストに実験的に統合します。
特徴
- 使用範囲を本来のコーディング範囲からプロジェクト管理範囲に変更するためにフォークしました。
- プロジェクトメモリの保存と検索
- 関連するプロジェクト情報を見つけるためのセマンティック検索
- 構造化されたプロジェクト管理データ処理
インストールと使用方法
前提条件と要件
- Python 12.0以降
- mcp-proxy (Cline または Roo コードの場合)
詳細
- リポジトリをクローンして移動します。
uv
を使用して仮想環境をセットアップします。
uv
を使用して仮想環境をアクティブ化します。
source .venv/bin/activate
uv
を使用して依存関係をインストールします。
# Install in editable mode from pyproject.toml
uv pip install -e .
- リポジトリのルートに .gitignore を作成します。
- .gitignore を更新する
# Python
__pycache__/
*.py[cod]
*.egg-info/
# Environment variables
.env
# Egg info
mem0_mcp.egg-info/
- リポジトリのルートに .env を作成します。
- .env を更新する
MEM0_API_KEY={your API Key}
- 以下のOSSをクローンしてインストールします。
https://github.com/sparfenyuk/mcp-proxy
- MCP サーバー設定を追加します。
"mem0": {
"command": "PATH_TO/mcp-proxy", # ex: /home/{user}/.local/bin/mcp-proxy
"args": [
"http://127.0.0.1:6789/sse" # configure port as you need
]
}
- MCP サーバーを起動します (アクティブ化された仮想環境が必要です)
python main.py --host 127.0.0.1 --port 6789
- MCPホスト(Clineなど)で機能を確認する
Hey, can you get all memories on mem0?
手術
- MCP サーバーが高速に実行されるようにします。
- スクリプト.bashrcを追加するなど、サーバーを自動実行する方法がいくつかあります。
- ご使用の環境に合わせて自動設定すると使いやすくなります。
利用可能なツール
- add_project_memory: 新しいプロジェクト管理情報を追加する
- get_all_project_memories: 保存されているすべてのプロジェクト情報を取得する
- search_project_memories: 特定のプロジェクト情報を検索する
技術的な詳細
このフォークのユニークな点は、MCPホストとmem0間の構造化フォーマットが、JavaScriptオブジェクトのようなコーディング形式で期待されることです。より適切に処理できるように、カスタム命令を設定してください。
カスタム指示
mem0 をプロジェクト管理の目的に合うように動作させるために、このフォークには AI に関する次の指示があります。
mem0の場合
MCPホストの場合
- 以下は単なるサンプルです、ご自身でベストなものを見つけてください!!
mem0 効果的なプロジェクトメモリのためのガイド(拡張版)
このガイドでは、mem0を用いてプロジェクト情報を効果的に管理するための戦略とテンプレートについて概説します。構造化されたテンプレートとメタデータ管理を通じて、プロジェクトデータの検索性と再利用性を向上させることを目的としています。
情報構造とテンプレート
mem0 は以下の種類の情報を効果的に管理できます。構造化されたテンプレートを使用すると、検索性と再利用性が向上します。提供されているテンプレートはサンプルであり、特定のプロジェクトのニーズに合わせて調整する必要があることに注意してください。
1. プロジェクトステータス管理
テンプレート:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Project Status]
const projectStatus = {
overview: {
name: "Project Name", // Required
purpose: "Project Purpose", // Required
version: "1.2.0", // Optional
phase: "development" // Optional
},
progress: {
completionLevel: 0.65, // Completion rate (value between 0 and 1)
milestones: [
{ name: "Planning Phase", status: "completed", date: "2025-02-15" },
{ name: "Development Phase", status: "in-progress", progress: 0.70 }
]
},
currentFocus: ["Implementing Feature X", "Optimizing Component Y"],
risks: ["Concerns about API stability", "Resource shortage"]
};
2. タスク管理
テンプレート:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Task Management]
const taskManagement = {
highPriority: [
{
description: "Implement Feature X", // Required
status: "in-progress", // Required
deadline: "2025-03-15", // Optional
assignee: "Team A", // Optional
dependencies: "Component Y" // Optional
}
],
mediumPriority: [],
completedTasks: [
{
description: "Setup Development Environment",
status: "completed"
}
]
};
3. 会議概要
テンプレート:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Meeting Summary]
const meetingMinutes = {
title: "Weekly Progress Meeting",
date: "2025-03-23",
attendees: [
{ department: "Development", members: ["Sato", "Suzuki"] },
{ department: "Design", members: ["Tanaka"] }
],
topics: ["Progress Report", "Risk Management", "Next Week's Plan"],
decisions: [
"Approve additional resource allocation",
"Delay release date by one week"
],
actionItems: [
{ description: "Procedure for adding resources", assignee: "Sato", dueDate: "2025-03-25" },
{ description: "Revise test plan", assignee: "Suzuki", dueDate: "2025-03-24" }
]
};
効果的な情報管理技術
1. コンテキスト管理(run_id)
mem0のrun_id
パラメータを使用すると、関連する情報を論理的にグループ化できます。これにより、特定の会話フローやプロジェクトのコンテキストを維持するのに役立ちます。
推奨フォーマット:
project:project-name:category:subcategory
使用例:
// Managing information related to a specific feature
add_project_memory(
"// [PROJECT: Member System] [TYPE: Technical Specification]\nconst authSpec = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "specification"}
);
// Adding a task for the same feature
add_project_memory(
"// [PROJECT: Member System] [TYPE: Task Management]\nconst authTasks = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "task"}
);
// Searching for related information
search_project_memories("authentication", {
"run_id": "project:member-system:feature:authentication"
});
メタデータを使用すると、情報の検索性が向上します。以下のスキーマの使用をお勧めします。
{
"type": "meeting|task|decision|status|risk", // Type of information
"priority": "high|medium|low", // Priority
"tags": ["frontend", "backend", "design"], // Related tags
"status": "pending|in-progress|completed" // Status
}
使用例:
// Registering a high-priority task
add_project_memory(
"// [PROJECT: Member System] [TYPE: Task Management]\nconst task = {...};",
metadata={
"type": "task",
"priority": "high",
"tags": ["frontend", "authentication"]
}
);
// Searching for tasks with a specific tag
search_project_memories("task", {
"metadata": {
"tags": ["frontend"]
}
});
3. 情報ライフサイクル管理
immutable
およびexpiration_date
パラメータを使用して、情報のライフサイクルを管理できます。
使用例:
// Recording an immutable decision
add_project_memory(
"// [PROJECT: Member System] [TYPE: Decision Record]\nconst decision = {...};",
immutable=True, // Set as immutable
metadata={"type": "decision"}
);
// Information with an expiration date
add_project_memory(
"// [PROJECT: Member System] [TYPE: Meeting Summary]\nconst meeting = {...};",
expiration_date="2025-06-30", // Expires on this date
metadata={"type": "meeting"}
);
実用的な使用パターン
1. スプリント管理の例
// Registering the sprint plan at the start
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-01T10:00:00+09:00] [TYPE: Project Status]\n" +
"const sprintPlan = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" duration: \"2 weeks\",\n" +
" goals: [\"Implement authentication feature\", \"Improve UI\"],\n" +
" tasks: [\n" +
" { description: \"Implement login screen\", assignee: \"Tanaka\", estimate: \"3 days\" },\n" +
" { description: \"API integration\", assignee: \"Sato\", estimate: \"2 days\" }\n" +
" ]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-planning"]}
);
// Mid-sprint progress report
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-08T15:00:00+09:00] [TYPE: Project Status]\n" +
"const progress = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" completionLevel: 0.4,\n" +
" status: [\n" +
" { task: \"Implement login screen\", progress: 0.7, status: \"in-progress\" },\n" +
" { task: \"API integration\", progress: 0.2, status: \"in-progress\" }\n" +
" ],\n" +
" blockers: [\"Change in API response specification\"]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-progress"]}
);
2. リスク管理の例
// Registering a risk
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-03T11:00:00+09:00] [TYPE: Risk Assessment]\n" +
"const risk = {\n" +
" description: \"Concerns about external API stability\",\n" +
" impact: \"High\",\n" +
" probability: \"Medium\",\n" +
" mitigation: \"Implement fallback mechanism\",\n" +
" owner: \"Development Lead\"\n" +
"};",
run_id="project:member-system:risk:api-stability",
metadata={"type": "risk", "priority": "high"}
);
// Updating the risk status
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-10T16:30:00+09:00] [TYPE: Risk Assessment]\n" +
"const riskUpdate = {\n" +
" description: \"Concerns about external API stability\",\n" +
" status: \"Resolved\",\n" +
" resolution: \"Fallback mechanism implementation completed\"\n" +
"};",
run_id="project:member-system:risk:api-stability",
metadata={"type": "risk", "priority": "medium"}
);
重要なポイント
- 標準メタデータ: プロジェクト名とタイムスタンプを常に含めます。
- データ形式: 構造化データ (JavaScript オブジェクト、JSON、YAML) を使用します。
- コンテキスト管理: 情報の関連性を維持するために、
run_id
階層的に使用します。 - 検索効率: 一貫したメタデータと構造により、検索効率が向上します。
4. 実施戦略
上記の改善を実装するには、次の手順をお勧めします。
add_project_memory
メソッドを強化します。- ドキュメント文字列を更新: 使用例とパラメータの説明を改善します。
- エラー処理: より詳細なエラー情報を提供します。
- 応答形式: 使用されるパラメータを明示的に指定します。
- カスタム手順の更新:
- テンプレートの例を充実させます。
run_id
の推奨される使用方法を明確にします (階層構造を導入します)。- メタデータ スキーマを標準化します。
- 実際の使用例を示します。
これらの改善により、既存の API との互換性を維持しながら、情報管理の使いやすさと効率性が向上します。
5. まとめ
提案された改善は、既存の mem0 MCP サーバー機能との互換性を維持しながら、次の点で価値を提供します。
- 強化された構造化情報管理: テンプレートと標準化されたメタデータにより、一貫した情報構造が促進されます。
- コンテキスト管理の改善:
run_id
階層的に使用することで、関連情報の管理が容易になります。 - 使いやすさの向上: 詳細なドキュメントと実用的な例により、学習曲線が短縮されます。
これらの機能強化により、プロジェクト管理ツールとしての mem0 MCP サーバーの有効性がさらに高まります。