SPM - Structured Project Memory について
SPM - Structured Project Memoryは、セッションをまたいでプロジェクトの文脈を保持するAIエージェント向けの、プロジェクト単位のメモリーコネクターです。出典確認、範囲を限定したコンテキストパック、プロジェクト境界に対応します。リポジトリに含まれるのはコネクターのみで、メモリーエンジンはホスト型サービスです。
主な機能
- 01チャットやツールをまたいでプロジェクト記憶を保持
- 02範囲指定のコンテキストパックを作成し出典を検証
- 03時間軸メモリーとコンテキストグラフを検索
- 04ポリシーに基づく事前チェックを実行
- 05決定、テスト、証拠を記録
活用シーン
- 01コード変更前にコーディングエージェントへ要件と制約を提供
- 02エンジニアやパートナー向けに範囲を限定した情報を準備
- 03決定、テスト、証拠を戻して記憶を維持
- 04認可済みプロジェクトを別のエージェントや端末へ引き継ぐ
MCP 対応
認証付きのリモートMCPエンドポイントを提供し、プロジェクト単位で認可されたメモリー、コンテキストパック、グラフ、チェックをクライアントから利用できます。トークンは範囲指定と失効が可能で、複数プロジェクトのコンテキスト利用には明示的なユーザー要求が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://getspm.com/v1/mcpclaude mcp add --transport http spm-agent-connectors https://getspm.com/v1/mcp{"mcpServers":{"spm-agent-connectors":{"type":"http","url":"https://getspm.com/v1/mcp"}}}Cursor で開く{"servers":{"spm-agent-connectors":{"type":"http","url":"https://getspm.com/v1/mcp"}}}VS Code で開く{"mcpServers":{"spm-agent-connectors":{"type":"http","url":"https://getspm.com/v1/mcp"}}}{"mcpServers":{"spm-agent-connectors":{"serverUrl":"https://getspm.com/v1/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://getspm.com/v1/mcp認証が必要ツール
詳細
SPM エージェントコネクター
SPM(Structured Project Memory)の公開コネクターパッケージです。
SPM は、プロジェクトの知識を、AI エージェントが活用できる、持続性があり、共有可能で、ガバナンスが適用された、内部的にスマートなプロジェクトメモリに変換します。このリポジトリには、認証済みのリモート MCP 設定、Codex、Claude Code、Cursor、OpenClaw 用のインストール可能なバンドル、ブラウザー認証ヘルパー、ライフサイクルアダプター、使用例、セキュリティガイダンスなど、公開コネクターの機能のみが含まれています。
SPM アプリケーション、バックエンド、課金システム、プライベートコンソール、メモリエンジン、インフラストラクチャは、このリポジトリには含まれていません。
ホステッド MCP エンドポイント
セットアップと確認のためのユーザー向けガイド:
https://getspm.com/agents
https://getspm.com/v1/mcp
公式 MCP Registry の記述子:
server.json
Registry 名:
com.getspm/spm
エンドポイントは検索用に公開されていますが、利用には認証が必要です。クライアントには、次のものが必要です。
- SPM アカウント
- 組織と、少なくとも 1 つのプロジェクト
- トライアルまたは有料プラン
- 1 つのプロジェクト、選択したプロジェクト群、または組織内でユーザーがアクセスできるプロジェクトに認可された SPM トークン
エージェントにできること
コネクタープロファイルは、エージェント向けの SPM 機能を提供します。
- チャット、実行、ツールをまたいで、持続性のあるプロジェクトメモリを活用する
- アクティブなプロジェクトを、ほかの認可済みプロジェクトと混同せずに特定する
- 認可済みのプロジェクトを一覧表示し、ユーザーが明示的に求めた場合にのみ、プロジェクトを横断するコンテキストを組み立てる
- 要件、現在の決定事項、完了した作業、ソースに裏付けられたコンテキスト、時間的なシグナルを保持するスマートメモリパックを扱う
- 時系列のプロジェクトメモリを検索する
- スコープを限定したコンテキストパックを要求する
- コンテキストパックの来歴とハッシュを検証する
- コンテキストグラフと境界を検索する
- ポリシーを考慮した事前チェックを実行する
- 完了したアクション、テスト、証拠、決定事項を報告する
- クライアントがライフサイクルフックをサポートしている場合、ソースの来歴情報を付けて、エージェントのライフサイクルにおける各ターンを LLM 優先のメモリトリアージに送信する
- 選択的なソース取得、完全な編集済みソースの取得、要約のみの取得、メタデータのみの取得をそれぞれ選択する。これらは、トリアージによって今後の利用向けに昇格されるメモリとは独立している
- エージェントツールに保持された会話本文を公開することなく、追加順の取得ジャーナルを確認、検証する
- 一致する認可済みプロジェクトがない場合、ソースに基づいたプロジェクトメモリの初期設定を提案し、不足している認可済みの証拠だけを具体的に要求したうえで、ユーザーが SPM でプロジェクトを作成、リンク、またはスキップするまで待機する
- メモリ本文や認証情報ではなく参照を引き継ぐ、有効期間の短い一度限りのハンドオフを通じて、別のエージェントやデバイスで認可済みのプロジェクトを続行する
- ハンドオフ前に本文を含まないワークスペースマニフェストを比較する。対象は、Git の ID、リビジョン、ローカル状態のハッシュ、Git 管理外のファイルやドキュメントのスナップショット、リモートのバージョン参照、またはメモリのみの作業
- クライアントがライフサイクルフックをサポートしている場合、セッション開始時、ユーザーのターンの前、作業完了後にワークスペースマニフェストを自動更新する。これにより、ローカルファイルの本文をアップロードすることなく、古くなった観測結果や範囲外の変更を確認できる
- メタデータのみのソース観測と実質的な証拠を区別し、現在の内容が必要な場合は、認可されたソースのハンドオフを要求する
代表的なユースケース
- コーディングエージェントは、コードを変更する前に、実際に使用すべきプロジェクトメモリ、つまり要件、現在の決定事項、テスト、制約、完了した作業を受け取ります。
- デリバリーチームは、プロジェクト全体を公開することなく、散在するプロジェクト知識をエンジニア、クライアント、パートナー、サポート向けのスコープ付きパックにまとめます。
- パートナーや外部の協力者は、ソース、有効期限、取り消し、来歴、監査証拠を備えた、範囲が限定されたメモリを受け取ります。
- エージェントのワークフローでは、タスクの完了後もメモリを保持できるよう、決定事項、テスト、証拠を SPM に報告します。
エージェントにできないこと
ホスト型 MCP コネクターでは、以下の操作は公開されていません。
- 請求やチェックアウト
- 請求書の支払い
- カスタマーポータルの作成
- テナントに対する破壊的な管理操作
- 生のシークレット
- グローバルオペレーター用ツール
この境界は意図的に設けられています。エージェントには必要なメモリツールを提供しつつ、商用または破壊的な管理権限は与えません。
Codex
このリポジトリのマーケットプレイスから Codex プラグインをインストールします。
.agents/plugins/marketplace.json
または、Codex を手動で設定します。
[mcp_servers.spm]
url = "https://getspm.com/v1/mcp"
bearer_token_env_var = "SPM_CODEX_MCP_TOKEN"
startup_timeout_sec = 30
tool_timeout_sec = 120
サインインしている組織ユーザーがアクセスできるすべてのプロジェクトについて、Codex を認証します。
python3 plugins/spm-codex/scripts/auth_spm_codex.py \
--project-id <authorization-project-id> \
--access-mode organization \
--write-env ~/.spm/codex.env
source ~/.spm/codex.env
確認します。
python3 plugins/spm-codex/scripts/doctor_spm_codex.py
リモート MCP の機能スモークテストを実行します。
python3 plugins/spm-codex/scripts/smoke_spm_remote_mcp.py \
--project-id <authorized-project-id>
スモークテストでは、Codex と同じ SPM_CODEX_MCP_TOKEN を使用し、明示的に認可されたプロジェクト ID(または SPM_SMOKE_PROJECT_ID)が必要です。ホスト型 MCP エンドポイントを初期化し、プロジェクト解決、複数プロジェクト、エージェントセッション、メモリツールの機能を検証します。次に、小規模なプロジェクトスコープのスモーク用メモリイベントを作成し、時間的状態を読み取り、コンテキストパックを作成して検証し、コンテキストグラフを照会し、エージェントの事前チェックを実行して、アクション後のエビデンスを報告します。トークンが表示されることはなく、ホスト型コネクターは返されるコンテキストから生のイベント本文を除去します。
トークンを変更せずに確認するには、次を使用します。
python3 plugins/spm-codex/scripts/smoke_spm_remote_mcp.py \
--project-id <authorized-project-id> --read-only
Claude Code、Cursor、OpenClaw
このリポジトリには、ネイティブクライアント向けのバンドルが含まれています。
plugins/spm-claudeplugins/spm-cursorplugins/spm-openclaw
MCP のみをサポートするクライアントは、同じリモートエンドポイントとベアラートークンを使用できます。汎用の認証ヘルパーは
scripts/agent-connectors/authorize_spm_agent.py です。以下も参照してください。
examples/codex/config.tomlexamples/claude-desktop/claude_desktop_config.jsonexamples/cursor/mcp.jsonexamples/windsurf/mcp_config.json
セキュリティ
トークンをコミットしないでください。環境変数、または各エージェントクライアントのシークレットストレージを使用してください。トークンは明示的にスコープを設定し、SPM から失効できる必要があります。組織内で見えるからといって、プロジェクトを暗黙的に混在させてよいわけではありません。各タスクでアクティブなプロジェクトは 1 つに保ち、複数プロジェクトにまたがるパックにはユーザーからの明示的なリクエストが必要です。セッションの継続によって、ワークスペースが複製、プル、リセット、または上書きされることはありません。引き継ぎ先のエージェントは実際の素材の状態を確認し、SPM のマニフェストと照合したうえで、リソースの取得や調整を行う前に確認を求めます。
SECURITY.md と docs/security-boundary.md を参照してください。
リンク
- Web サイト:https://getspm.com
- エージェント連携ガイド:https://getspm.com/agents
- MCP のセットアップ:https://getspm.com/mcp
- ドキュメント:https://getspm.com/docs
- セキュリティ:https://getspm.com/security
- デモ:https://getspm.com/sales/spm-current-scoped-trusted-agent-memory.mp4
- ディレクトリ掲載パック:docs/directory-listing-pack.md
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。