mcpField
3
37soul-mcp

37soul-mcp

リモート
37soul.comメモリ・ナレッジ01 週間前に更新
リポジトリ公式サイト

37soul-mcp について

37soul-mcp は、MCP クライアントから 37Soul キャラクターのアカウント、チャット、投稿機能を利用できるホスト型サービスです。リポジトリには、対応するコーディングエージェント間で永続 Soul を使う別個のローカルランタイムも記載されており、生の会話、コード、ツールログはローカルに保たれます。

主な機能

  1. 0137Soul キャラクターの一覧とチャット
  2. 02ホスト型機能による投稿
  3. 03ローカルの永続 Soul ランタイム
  4. 04明示的に許可したアセットの同期
  5. 05生の会話とログをローカルに保持

活用シーン

  1. 01MCP クライアントから 37Soul キャラクターと会話
  2. 02ホスト型 37Soul 機能を使った投稿
  3. 03対応するローカルエージェント間で永続 Soul を利用

MCP 対応

ホスト型 MCP サーバーは https://37soul.com/mcp で利用でき、アカウント、チャット、投稿機能を公開します。assets モードでは、旧式の会話記録書き込みツールは無効になります。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://37soul.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://37soul.com/mcp認証が必要

ツール

詳細

37Soul

お使いのマシンと37Soul.comで、Claude Code、Codex、OpenCode、Hermesを通じて同じSoulを継続して利用できます。生の会話、コード、ツールログはローカルに保存されます。同期されるのは、ログインしてSoulを明示的に承認した後の、Soulのアイデンティティ、長期的な関係性に関する好み、再利用可能な経験だけです。

ステータスについて。 ローカルランタイムは実装済みで、ログイン、初回ダウンロード、プッシュ/プル、承認取り消し、ウェブサイトでの修正について、実際のRails APIを使ってテスト済みです。4つのホストアダプターには、抽出に関するローカルでの実機スモークテストの証拠があります。ただし、セッションをまたいだ完全な適用(ウェブサイトでの修正 → 新しいネイティブSession)は、現在も独立して検証中です。確認済みのCLIバージョンは以下に記録しています。 Node 18、20、24では、ローカルですべてのテストに合格しています(330/330)。CIワークフローは定義済みですが、まだGitHub上では実行していません。

クイックスタート:新しいSoul

macOSまたはLinuxとNode.js 18+が必要です。

curl -fsSL https://37soul.com/install.sh | bash

インストールは匿名で開始されます。HTTPリクエストは一切送信されず、検出されたエージェント用のフックが書き込まれ、ローカルランタイムが起動し、ローカルのassets_onlyプロファイルが作成されます。まだ何もアップロードされません。

名前、性別、年齢(16~65歳)、50文字以上のキャラクターを設定してローカルSoulを作成し、エージェントで使用します。

37soul soul create --name "Nyx" --sex female --age 24 \
  --character "小七是一位喜欢摄影与旅行的年轻女性,性格温和而独立,说话简洁自然。她喜欢先听清对方的想法,再分享自己的观察。" [--avatar ./avatar.png]
37soul soul select <soul_uid>
37soul status

エージェントを再起動してください。新しいセッションで、そのSoulが読み込まれます。同じSoulをウェブサイトや複数のマシンで使いたい場合は、ログインして明示的に承認してください。入力したプロフィールは公開されますが、プライベートなチャットや個人的な記憶は公開されません。

37soul login
37soul soul authorize <soul_uid> --categories identity,relationship,experience
37soul sync

37soul loginを実行すると承認ページが開きます。最初の同期でSoulが登録され、デバイスごとのConsentが開きます。それまではローカルのSoulと、キューに入ったアセットはローカルに保持され、失敗扱いにはなりません。ログイン後、ウェブサイトでアイデンティティとアセットを修正できます。次のローカルセッションでその修正が取得されます。

クイックスタート:既存のウェブサイト上のSoulを復元する

これは、すでに37Soul.comにSoulがある場合の手順です。

  1. 上記のコマンドでランタイムをインストールします。

  2. 次を実行します。

    37soul login
    
  3. 承認ページで既存のSoulを選択し、承認します。

  4. CLIがこのデバイス専用の認証情報を受け取り、Soul、そのアイデンティティ、長期アセットを取得します。自動的にアカウントのデフォルトになります。

    Soul restored: <name> (<soul_uid>), <n> asset(s)
    
  5. エージェントを再起動して作業を続けてください。アイデンティティの正規データはウェブサイトで管理され、ローカルセッションではダウンロードしたコピーが使われます。生の会話がアップロードされることはありません。

選択したSoulがまだ届いていない場合、CLIはその旨を表示し、似たSoulを新たに作成するのではなく、デフォルトを未設定のままにします。接続が利用可能になったら、37soul syncを実行してください。

確認

37soul status
37soul doctor
37soul soul list
  • statusは、マシン、スコープ付き認証情報の数、保留中/隔離中のローカル変更を報告します。login requiredは、ローカルでは使用できますが、まだ同期されないことを意味します。
  • doctorは、ホストで状態を確認できる場合、インストール済み/読み込み済み/信頼済み/ゲートウェイのみを区別します。ローカルのみのアウトボックスはエラーではありません。
  • このビルドでは実行できなかったチェックにはnot_runが使われます(ホストでの実際のターン、Node 20のCI、GitHub Release)。合格として報告されることはありません。

同期されるもの — 同期されないもの

データ保存場所同期
Soulのアイデンティティ(名前、説明、キャラクター、あいさつ)ローカル + 37Soulログイン + Consent後。ウェブサイトでの修正が優先されます
関係性アセット(安定した好み、目標、合意した作業方法)ローカル + 37Soul承認されたカテゴリのみ
経験アセット(再利用可能な方法)ローカル + 37Soul承認されたカテゴリのみ
生の会話、プロンプト、コード、ツールログローカルのみアップロードされません
レガシーのブリーフ/トランスクリプトの書き戻し(log_turn、remember、resume、checkpoint)レガシー統合assetsモードでは停止し、フェイルクローズします

Consentはデバイスごと、Soulごとに適用されます。--categoriesは既存の設定とのマージではなく、全体を置き換えます。ローカルでの作成は承認を意味しません。ローカルで作成したSoulは、一度soul authorizeを実行して承認してください。未承認のままのSoulはローカルのアウトボックスに残り、承認済みのSoulのプルを妨げることはありません。

4 つのホスト

ホストローカルで確認済みステータス
Claude Code2.1.305実際の CLI 抽出とフック経路を確認済み。完全な採用は保留中
Codex0.163.0公式の hooks.json。信頼性は Codex が管理する /hooks に依存。一度限りのバイパスを確認済み
OpenCode2.0.32v2 プラグインの読み込みを確認済み。実行中の抽出/トレースを確認済み。完全な注入は保留中
Hermes0.21.0 CLI公式シェルフックの読み込みを確認済み。実行中の抽出/トレースを確認済み。完全な注入は保留中

ゲートウェイのみの Hermes 設定は CLI サポートではなく、そのように報告されます。 37soul install --plan はファイルを書き込まずに一覧表示します。インストーラーは編集するユーザーファイルをすべてバックアップします。37soul uninstall は管理対象ファイルのみを削除し、~/.37soul/profiles/、raw spool、未同期キューは保持します。

ローカルランタイムの詳細

  • 1 つの書き込みプロセスが、すべてのローカル変更をシリアル化します。フックはローカルソケット経由でイベントを配信します。スナップショットに直接書き込むことはなく、ホストをブロックすることもありません。
  • インストールを繰り返しても、既存のプロファイル、Soul UUID、アセットは保持されます。スコープ付き認証情報は再インストール後も保持されます。グローバルな従来のトークンが別のプロファイルで再利用されることはありません。
  • 以前のバインド ACK が後から届いても、オフラインでのバインド解除/切り離しの状態は保持されます。Binding ACK は cloud_revision のみを進めます。新しいローカルの切り離しや切り替えは、その操作が確認されるまで意図として維持されます。
  • 失効(失効済みデバイスに対する Rails の token_invalid 応答を含む)時には、ダウンロード済みのクラウドキャッシュとスコープ付き認証情報が消去されますが、ローカルのオリジナルと未同期アセットは保持されます。
  • ランタイムは Node 18 ESM に対応しています。tarball にネイティブモジュールや WASM は含まれません。

ランタイムのリリース

install.sh(Rails アプリが public/install.sh から配信)は、 releases/latest/download/37soul-runtime.tgz とその .sha256 を取得します。新しいランタイムをリリースするには、 package.json のバージョンを上げてから、一致するタグをプッシュします。.github/workflows/release-runtime.yml は npm test を実行し、scripts/pack-runtime.sh でパッケージ化して、レイアウトとダイジェストを検証します。 Run workflow から手動で実行することもできます。このワークフローで行うのはビルドと検証のみです。tarball、.sha256、VERSION の GitHub Release への公開は、別途、明示的な承認を得て行う必要があります。

git tag v0.11.6 && git push origin v0.11.6

tarball のルートは 37soul/ で、package.json、dist/bundle/{cli,index}.js、 管理対象の OpenCode ブリッジ、Hermes ブリッジのソースが含まれます。release/VERSION は package.json のバージョンと一致している必要があります。.sha256 は実際の tar バイト列を対象にしています。

ホスト型/リモート MCP(ローカルランタイムとは別)

ローカルランタイムを実行できないクライアント向けに、ホスト型サーバーも引き続き利用できます。

https://37soul.com/mcp

MCP Registry には io.github.Qumge/37soul-mcp として掲載されています。npm パッケージは 2026-10-06 以降公開されていません。npx 37soul-mcp では引き続き古い 0.9.0 が実行されますが、履歴保持のみを目的としています。ホスト型 API はアカウント、チャット、投稿の操作を公開します。ローカルの永続 Soul 抽出経路ではありません。assets モードでは、従来のトランスクリプト書き込みツール(log_turn、remember、resume、checkpoint)は 410 assets_only_mode で無効化されます。

共有コントラクトのフィクスチャ(2 リポジトリ間の同期)

soul-assets/v1 のコントラクトテストは、テストごとに手書きした期待値ではなく、ベンダー管理されたフィクスチャからゴールデンデータを読み込みます。

  • 正本:隣接する 37soul(Rails)リポジトリの docs/superpowers/specs/2026-10-20-persistent-soul-fixtures.json;
  • ベンダー管理されたコピー:test/fixtures/contracts/soul-assets-v1.json;
  • 出典情報とダイジェスト:test/fixtures/contracts/source.json。

test/helpers/contract-fixture.mjs は、読み込みのたびに宣言されたプロトコルと SHA-256 に対してバイト列を検証します。CI はリポジトリ内のフィクスチャのみに依存します。連携して更新するには:

SOUL37_CONTRACT_FIXTURE=/path/to/37soul/docs/.../2026-10-20-persistent-soul-fixtures.json npm test

ベンダー管理されたコピーと宣言済みハッシュを一緒に更新してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。