people-context について
people-context は、ローカルファーストの MCP サーバー兼 CLI であり、AI エージェントに人物の身元、関係、合意事項、コミュニケーションの好みに関する永続的なコンテキストを提供します。データは 1 つの SQLite ファイルに保存され、通常のコマンドはネットワークにアクセスしません。
主な機能
- 01名前、ニックネーム、別名、アカウントをまたぐ説明可能な人物特定
- 02組織、役割、根拠付きの事実を含む関係グラフ
- 03人物ごとの対話サマリーとタイムライン
- 04関係の途絶や近日中の日付のレポート
- 05記録前に確認できるステージング式のインポート審査
活用シーン
- 01会議前に相手の背景とコミュニケーションの好みを確認する
- 02新しい合意事項を監査記録付きで残す
- 03しばらく連絡していない重要な関係者を見つける
MCP 対応
MCP サーバーとして、resolve_person や get_relationship_graph などの限定的なツールを MCP クライアントに公開し、stdio とループバック HTTP の両方で動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
41掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| hints | any | いいえ | |
| limit | integer | いいえ | |
| query | string | はい |
詳細
people-context
English | 簡体字中国語
エージェントはすでにコードベースを記憶しています。今度は、あなたの周りの人々も記憶できます。
people-context はローカルファーストの MCP サーバー兼 CLI で、AI エージェントに、あなたの身近な人々についての永続的な記憶を提供します。相手が誰なのか、どう知り合ったのか、最後に何に合意したのか、どのような話し方を好むのかを記憶します。お使いのマシン上の SQLite ファイルは 1 つだけです。アカウントもクラウドもネットワーク通信も必要ありません。

その理由
アシスタントに「レポートの遅延について、Priyaにはどのように切り出せばよいですか?」と尋ねても、何も答えられません。どのPriyaなのか、相手がパートナー組織の担当者であること、先週新しい期限に合意したこと、電話より短いメールを好むことを知らないからです。こうした情報は、あなたの頭の中や受信トレイ、エージェントが参照できないメモファイルに残っています。
people-context は、エージェントが限定的なツールを通じて問い合わせられるよう、情報を一か所にまとめます。
- この人は誰ですか? 名前、ニックネーム、別名、ハンドルを対象に、根拠を説明できる名前解決を行います。Priyaが2人いる場合は、黙って推測するのではなく、一致理由とともに2人の候補を提示します。
- どんな情報を把握していますか? 関係性、組織と役職、長期的に役立つ事実、簡潔なやり取りの要約、特性、リマインダー、人物ごとのタイムラインを扱います。それぞれ、リクエストに必要な範囲に限って開示します。
- どのように話しかければよいですか? 記録された特性、過去の行き違い、未完了のフォローアップ、自分で書いた方針に基づき、コミュニケーションの指針を示します。
- 誰との連絡が途絶えていますか? 保存済みの情報をもとに、関係が疎遠になっている相手や、近づいている日付を報告します。
- データを安全に取り込むには? メール、mbox、vCard、カレンダー、LinkedIn、Outlook、WhatsApp のエクスポートを、確認できる候補として準備します。記録する内容はあなたが承認し、元のコンテンツは保存されません。
信頼を重視した設計です。書き込みは監査され、forget は実際にデータを削除します。機密レコードはプロンプトでは開けない、運用担当者専用のゲートで保護されます。また、通常のコマンドがネットワークにアクセスすることはありません。
デモ
パッケージに含まれる架空のデータセットを使えば、実データに触れることなく、人物の識別、グラフの探索、コンテキストの範囲制限をすぐに確認できます:
uvx --from people-context pctx demo --reset
デモでは、常に専用のデータベース {XDG_DATA_HOME or ~/.local/share}/people-context/demo.db に書き込みます。--db、PEOPLE_CONTEXT_DB、設定ファイルは無視され、--reset で置き換えられるのはこのファイルと、その -wal/-shm ファイルのみです。そのため、実データベースが読み取られたり変更されたりすることはありません。シード処理では、監査可能な架空の人物、ハンドル、所属、事実、やり取り、連結された関係グラフを書き込み、パスを指定したサーバーコマンドと、作成した ID を使う具体的なツール呼び出しを出力します:
Demo database: /home/you/.local/share/people-context/demo.db
Start MCP server: people-context-mcp --db /home/you/.local/share/people-context/demo.db
resolve_person {"query": "Amina Hassan"}
get_relationship_graph {"person_id": "<amina-id>", "depth": 2}
find_connection {"person_a": "<self-id>", "person_b": "<sofia-id>"}
人物 ID はシードごとに生成されるため、出力される値は上記のプレースホルダーとは異なります。出力されたサーバーコマンドを MCP クライアントで起動し、出力された呼び出しをそのまま実行してください。docs/cli.md を参照してください。
クイックスタート
Python 3.11 以降と uv が必要です。クライアントを選択してください。どのクライアントも手順は 1 つです。
Claude Code
claude plugin marketplace add JinyangWang27/people-context
claude plugin install people-context@people-context-plugins
Claude Code を再起動するか、/reload-plugins を実行してください。MCP サーバーに加えて、/people-context:who、/people-context:remember、/people-context:reminders を利用できます。詳細:docs/claude-code-plugin.md。
Claude Desktop
最新リリースから people-context.mcpb をダウンロードして開いてください。Claude Desktop は、独自の uv ランタイムを使って、指定されたリリースをインストールします。詳細:docs/desktop-and-editors.md。
Codex
codex plugin marketplace add JinyangWang27/people-context
codex plugin add people-context@people-context-plugins
新しい Codex セッションを開始してください。詳細:docs/codex-plugin.md。
Cursor、Windsurf、VS Code、または任意の MCP クライアント
クライアントの MCP 設定(.cursor/mcp.json、~/.codeium/windsurf/mcp_config.json、.vscode/mcp.json など)に stdio サーバーを追加してください:
{
"mcpServers": {
"people-context": {
"command": "uvx",
"args": ["--from", "people-context", "people-context"]
}
}
}
または、CLI に設定を書き込ませることもできます:uvx --from people-context pctx setup cursor(windsurf、vscode、claude-desktop も指定できます。プレビューするには --dry-run を追加してください)。VS Code では "type": "stdio" を含む servers キーを使います。エディターごとの設定例:docs/desktop-and-editors.md。
OpenClaw
openclaw plugins install clawhub:openclaw-plugin-people-context
ネイティブプラグインは、オプトイン方式のループバック HTTP サーバーと通信します。詳細:docs/openclaw-plugin.md。
CLI のみ
uv tool install people-context
pctx init # seed your own record, optionally import a vCard, then connect a client
pctx --help
people-context と people-context-mcp はサーバーコマンド、pctx は人が操作する CLI です。
次に、エージェントで以下を試してください:
Amina は誰ですか?
Open City Lab の Amina は短いメールを好み、突然の電話を嫌がることを記録してください。
明日の Daniel との会議の前に、知っておくべきことは何ですか?
2 つ目の指示は、単一の remember ツール呼び出しです。名前を照合し、一致する人物がいない場合にのみ人物を作成し、所属と好みを 1 回の監査可能なトランザクションで記録します。曖昧な名前については、推測せず候補を返します。
エージェントを使わない場合は、pctx remember "Amina Hassan" "prefers short emails" --org "Open City Lab" と pctx brief "Amina Hassan" を実行してください。実例を使った 5 つのシナリオは、docs/use-cases にあります。
記憶することと、決してしないこと
| 記憶すること | 決してしないこと |
|---|---|
| 名前、ニックネーム、別名、ハンドル名 | どこにも何もアップロードしません |
| 正規化された拡張可能な語彙による関係性 | インポートしたメール、チャット、ファイルの生データを保存しません |
| 組織、役職、期間を限定した所属 | センシティブな情報の開示や全件エクスポートをモデルに許可させません |
| 根拠を伴う長期的な事実、観察事項、特性 | インポートしたデータやエージェントが抽出したデータを、ユーザーの確認なしに確定しません |
| 簡潔なやり取りの要約と人物ごとのタイムライン | 個人情報を記録したり、forget の後にソフト削除したコピーを保持したりしません |
| リマインダー、フォローアップ、コミュニケーションに関する方針 | pctx reindex --semantic 以外でネットワークリクエストを実行しません |
比較
people-context | アシスタントのメモリ(ChatGPT、Claude) | メモリプラットフォーム(Mem0 など) | |
|---|---|---|---|
| データの保存場所 | 自分で所有する 1 つの SQLite ファイル | ベンダーアカウント | ベンダープラットフォーム、または独自のデプロイ環境 |
| オフラインでの動作 | はい | いいえ | セルフホストの場合のみ |
| 人物を第一級のレコードとして扱う | アイデンティティ、関係性、役職、グラフ、ガイダンス | フリーテキストのメモ | フリーテキストまたはベクトルメモリ |
| 一致の理由を説明 | 理由付きの候補ランキング。曖昧さも提示 | いいえ | 類似度スコア |
| インポートの確認ゲート | ステージング、確認、確定 | 該当なし | 自動抽出 |
| 削除 | 1 回のトランザクションで完全削除と監査記録の編集 | ベンダーにリクエスト | API による削除 |
| バックアップと移行 | pctx sync push / pull バンドル | 該当なし | デプロイ環境による |
日付と出典を記載し、ベンダーのドキュメントへのリンクを含むバージョンは、 docs/privacy-and-safety.md にあります。
セキュリティモデル
このプロジェクトは、起動したユーザーのファイルシステム権限でローカルの Python を実行します。通常の MCP 検出では、権限の高いセンシティブなコンテキストと全件エクスポートは除外されます。オペレーターの許可が必要なツールにはプロセス環境変数のフラグが必要です。モデルが引数を使ってこれらを有効にすることはできません。Vault のエクスポートは意図的に CLI 専用です。
データベースは、デフォルトでは平文の SQLite です。Unix 系システムでは新規作成時に 0600 が設定されるため、ほかのローカルアカウントから読み取ることはできません。これはアカウント間の境界であり、暗号化ではありません。そのため、フルディスク暗号化と併用するか、SQLCipher による保存時の暗号化を有効にしてください(uv sync --extra encrypted。キーは PEOPLE_CONTEXT_DB_KEY からのみ読み取られます)。データベースファイルの権限 と
オプションの保存時暗号化 を参照してください。
さらに詳しく
- ループバック HTTP:stdio を起動できないクライアント向けです。
people-context-mcp --http --host 127.0.0.1 --port 8765を実行します。 設計上、認証はなくローカル専用です。stdio の使用を推奨します。docs/cli.md を参照してください。 - セマンティック検索:
uv sync --extra semantic && pctx reindex --semanticを実行すると、固定された多言語対応の Model2Vec モデルが一度ダウンロードされます。サーバーの起動と検索はキャッシュのみで行われます。 - Obsidian:
pctx export-vault --output ~/PeopleVaultを実行すると、決定論的で閲覧しやすい Vault が作成されます。また、読み取り専用の Obsidian プラグイン を使うと、ライブブリーフを表示できます。docs/obsidian-plugin.md を参照してください。 - インポート:
pctx import stage SOURCE PATHの後にreviewとcommitを実行すると、メール、mbox、vCard、.ics、LinkedIn、Outlook、WhatsApp のエクスポートをインポートできます。エージェントも同じ方法で抽出した候補をステージングできます。docs/import.md を参照してください。 - ローカルブラウザー:
pctx browse --openを実行すると、ループバックのみでアクセスでき、トークンで保護されたページが提供されます。このページでは、人物の閲覧や、ステージングされたインポートバッチの確認、編集、コミットができます。docs/cli.md を参照してください。 - グループ:
pctx groupでクラス、チーム、クラブ、世帯を記録し、pctx group shared A Bで2人の関係を尋ねることができます。docs/shared-connections-examples.md を参照してください。 - レポートとメンテナンス:
pctx stale、pctx upcoming、pctx timeline、pctx doctor、pctx statsを使用します。 - バックアップと2台目のデバイス:
pctx sync push --output DIRとpctx sync pull --input PATHを使用します。 - Docker:
docker run --rm -i -v people-context-data:/data ghcr.io/jinyangwang27/people-context:latestを実行します。 利便性のためのイメージであり、サンドボックスではありません。docs/docker.md を参照してください。 - データベースの場所:
--db、次にPEOPLE_CONTEXT_DB、次に XDG 設定ファイル、最後に共有の~/.pctx/people.dbの順に使用されます。pctx db-path -vで確認できます。
すべてのコマンドのリファレンスは docs/cli.md にあります。MCP ツール一覧とレスポンスの仕様は docs/mcp-interface.md に、リリースをまたいで維持される仕様は docs/compatibility.md にあります。
アーキテクチャ
コードベースはポートとアダプターの設計に従っています。
adapters (SQLite, MCP, filesystem, imports, CLI)
↓ implement
ports (narrow Protocols)
↑ used by
app (use cases and policy)
↓ operates on
domain (entities and values)
依存関係は内側に向かいます。語彙の正規化とグラフの上限は app/domain にあり、再帰的な SQL とファイル書き込みはアダプターにあります。1つのコンポジションルートで stdio と HTTP の両方を構成します。docs/architecture.md を参照してください。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| docs/architecture.md | レイヤー構成、依存関係のルール、エントリーポイントの接続 |
| docs/data-model.md | スキーマ、マイグレーション、パースペクティブの display_type |
| docs/relationship-graph.md | 用語、正規化、パースペクティブ、トラバーサル、キュレーション |
| docs/identity-resolution.md | 解決の各段階、曖昧さ、音訳を保存済みエイリアスとして扱う理由 |
| docs/communication-guidance.md | コミュニケーションのシグナルとコーチングのワークフロー |
| docs/vault-export.md | レイアウト、マーカーの安全性、決定性、機微情報 |
| docs/mcp-interface.md | MCP ツールと安定したレスポンスの契約 |
| docs/compatibility.md | MCP、DB、CLI、JSON でリリース間も安定している仕様 |
| docs/cli.md | CLI コマンドと DB の解決 |
| docs/import.md | インポート元、ステージング、レビュー、コミット |
| docs/design/sync.md | 同期の設計と提供済みのローカル基盤 |
| docs/releasing.md | PyPI の信頼済みパブリッシング、Codecov、リリース手順 |
| docs/mcp-registry.md | MCP Registry の名前空間、server.json、コミュニティディレクトリへの登録先一覧 |
| docs/distribution-checklist.md | アカウント所有者向けガイド:Registry への公開、ディレクトリ、awesome リスト、Desktop ディレクトリ、Obsidian |
| docs/desktop-and-editors.md | ネイティブ UV MCPB Desktop バンドルと Cursor/Windsurf/VS Code のスニペット |
| docs/docker.md | オプションの非 root stdio Docker イメージ、データボリューム、GHCR への公開 |
| docs/claude-code-plugin.md | Claude Code のインストール、ランタイム、プライバシー、検証、公開 |
| docs/codex-plugin.md | Codex のインストール、ランタイム、プライバシー、検証、公開 |
| docs/openclaw-plugin.md | OpenClaw のインストール、ランタイム、プライバシー、検証、ClawHub への公開 |
| docs/obsidian-plugin.md | Obsidian の読み取り専用ペイン、サブプロセスの安全性、暗号化、リリースのミラーリング |
| docs/privacy-and-safety.md | 開示、監査、忘却、脅威モデル |
| docs/use-cases | オンボーディング、会議準備、フォローアップ、移行、監査のためのシナリオ別レシピ |
| docs/evals.md | 評価ハーネス、固定タスク、採点ルール、日付付きの記録結果 |
| コーチング、トランスクリプト、共通のつながりの例 | レビュー基準付きの架空のシナリオ例 |
| docs/roadmap.md | 達成済みのマイルストーンと今後の候補 |
コントリビューション
Issue とプルリクエストを歓迎します。アーキテクチャのルール、検証コマンド、初めての貢献に適した Issue の一覧については、CONTRIBUTING.md をご覧ください。質問や成果の共有には Discussionsをご利用ください。
people-contextが役に立った場合は、スターを付けるとほかの人にも見つけてもらいやすくなります。
ライセンス
MIT。LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。