mcpField
P
priostack

priostack

認証済みおすすめリモート
priostack.comメモリ・ナレッジ27 週間前に更新

priostack について

priostackは、AIエージェント向けの長期メモリとマルチエージェント間のコンテキスト共有を提供するMCPサーバーです。Python SDKと多言語クライアントを備え、型付き情報と取り消し可能な権限付与でメモリをネットワークリソースとして扱います。

主な機能

  1. 01モデル非依存の長期メモリ
  2. 02エージェントの自己登録とセッション管理
  3. 03型付き情報の保存と取得
  4. 04権限を限定したコンテキスト共有
  5. 05アクセス権の取り消し

活用シーン

  1. 01実行をまたいだエージェントメモリの保持
  2. 02権限を限定したエージェント間の情報共有
  3. 03Python SDKによるメモリサービスへの接続

MCP 対応

MCPサーバーとして、JSON-RPC 2.0経由でエージェント登録、コンテキストスペース、情報の保存・取得、アクセス権付与のツールを提供します。MCPクライアントはStreamable HTTPのURLで接続できます。

設定

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

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

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

ツール

42
パラメーター型必須説明
actorstringいいえ
tokenstringいいえ
maxResponseTokensintegerいいえ

詳細

⚡ Priostack エージェントコンテキストネットワーク(ACN)

MCP を介した、セットアップ不要でモデルに依存しない長期記憶とマルチエージェント間のコンテキスト共有。

PyPI version CI License: MIT

Priostack ACN は、エージェントの長期記憶を、単一の LLM ベンダーに後付けするものではなく、ネットワークリソースとして扱います。JSON-RPC 2.0 で接続する Model Context Protocol(MCP) サーバーであり、エージェントは自ら登録し、分離されたコンテキスト空間を保持して、型付きの事実を保存し、読み戻し、範囲を指定して取り消し可能な権限付与を通じて他のエージェントと共有できます。

公開サーバーは https://priostack.com/mcp で稼働中です(検出可能な Streamable-HTTP MCP エンドポイントです。https://priostack.com/acn/rpc も利用可能なエイリアスです)。


🔥 できること

  • 🤖 セットアップ不要ですぐに利用開始 — エージェントは noetic.register で自ら登録し、ベアラートークンを取得します。ダッシュボードも UI もクレジットカードも不要です。
  • 🌐 モデルに依存しないメモリ — 同じコンテキストを OpenAI、Anthropic、またはローカルモデルのエージェントで利用できます。メモリはモデルから切り離されています。
  • 🤝 範囲を指定したマルチエージェント共有 — 他のエージェントに対し、空間内のコンテンツに対する明示的な権限(read、quote、write、share、export など)を付与するか、request_access でアクセスをリクエストさせて承認できます。権限付与は取り消し可能で、転送先からさらに転送することはできません。
  • 🧠 型付きの事実 — declaration(ルール/ポリシー)、observation(測定された事実)、measurement を保存し、「何が主張されているか」と「何が観察されたか」を分けて管理します。
  • 🔌 ネイティブ MCP — URL から Claude Desktop、Cursor、または任意の MCP クライアントを接続するか、以下の SDK を利用できます。

🚀 クイックスタート(Python)

pip install priostack
from priostack import ACNClient

with ACNClient() as acn:                       # defaults to https://priostack.com/mcp
    acn.register(display_name="my-agent")      # self-register; token captured on the client
    acn.connect()                              # open a session; session id captured internally

    space = acn.create_space(display_name="prod-memory")
    acn.store(space.space_id, objects=[
        {"content": "Refunds over $500 require manager approval.", "type": "declaration"},
        {"content": "Export pipeline latency was 1.8s at 14:02 UTC.", "type": "observation"},
    ])

    hits = acn.fetch(space.space_id, query="refund")   # substring content reader
    for content in hits.contents():
        print(content)

トークンを保存してください。 register() が返すベアラートークンは、一度だけ表示されます。トークン(およびスペース ID)を保存し、再登録する代わりに、後で ACNClient(token=...) を使って再接続してください。

実行可能な例は examples/ にあります:マルチエージェント共有、アクセスのリクエストと承認、取得と想起、取り消しとローテーション、および LangChain、CrewAI、Claude エージェント向けのメモリ統合です。

各例は PRIOSTACK_ENDPOINT に対応しているため、環境変数を 1 つ設定するだけで、すべての例の接続先をセルフホスト可能なノード、ステージング環境、またはローカル環境に指定できます。

export PRIOSTACK_ENDPOINT=http://127.0.0.1:8091/rpc

🧩 エージェントフレームワーク別クイックスタート

どの例も、登録、スペースの作成、保存、2 つ目のエージェントとの共有、読み戻しまでを一通り実行します。それぞれ単独で動作し、ACN の呼び出しは実際に行われます。フレームワーク(または LLM キー)がインストールされていない場合は、メッセージを表示してフレームワーク部分をスキップします。

フレームワーククイックスタート内容
CrewAIexamples/crewai_quickstart.pyクルーの各メンバーがそれぞれ独自の ACN IDを持ちます。リサーチャーがスペースを所有し、ライターに read と quote を付与します
LangGraphexamples/langgraph_quickstart.pyグラフの実行後も残るメモリです。実行 2 は実行 1 で保存された情報をもとに回答し、その後、レビュアーエージェントに同じスペースの read を付与します
AutoGenexamples/autogen_quickstart.pyプル型のハンドシェイクです。アナリストが公開済みのスペースを見つけ、理由を添えて read をリクエストし、アーキビストが承認します
pip install priostack
python examples/crewai_quickstart.py          # works with or without crewai installed

🤝 マルチエージェント間のコンテキスト共有

所有者は、別のエージェントに特定の範囲のスペースへのアクセス権を付与します。付与先は受け取り側のエージェント ID(register() が返す値)であり、受け取り側は拡張されたスコープを反映するため、その後再接続する必要があります。

# Owner stores knowledge and grants read + quote to a worker agent.
grant = owner.grant_access(space.space_id, worker_agent_id, rights=["read", "quote"])

worker.connect()                       # reconnect to apply the grant
print(worker.fetch(space.space_id, query="refund").contents())

owner.revoke_access(grant.capability_ref)   # immediate, forward-only

プルモデルを使いたい場合は、利用側が request_access(space_id, rights=["read"]) を呼び出し、所有者が list_requests() と approve_request(request_id) を呼び出します。詳しくは examples/request_and_approve.py をご覧ください。


🌍 15 言語の SDK

Python はリファレンス SDK です(このリポジトリのルートにあり、PyPI で公開されています)。ほかの 14 言語向けの慣用的なクライアントは clients/ 以下にあり、それぞれ独自のクイックスタートと README を備え、まったく同じワイヤーコントラクトを実装しています(clients/SPEC.md)。

言語パスHTTP + JSON スタック
Python/ · PyPI priostackrequests
JavaScript(Node ≥20)clients/javascript組み込みの fetch
TypeScriptclients/typescriptグローバル fetch(型付き)
Java(Maven)clients/javajava.net.http + Jackson
Goclients/go標準ライブラリ net/http
C# / .NET 8clients/csharpHttpClient + System.Text.Json
PHP(Composer)clients/phpcurl
Rubyclients/ruby標準ライブラリ net/http
Rustclients/rustreqwest + serde
Kotlin(Gradle)clients/kotlinjava.net.http
Swift(SwiftPM)clients/swiftURLSession + Codable
C++17clients/cpplibcurl + nlohmann/json
Dartclients/dartpackage:http
Scalaclients/scalajava.net.http + uPickle
Shellclients/shellcurl + jq

各クライアントには2 つのクイックスタートが付属しています。単独利用向け(登録 → スペースを作成 → 保存 → 取得)と、共有向け(share_quickstart — 2 つのエージェント、1 つのスペース、明示的な権限付与、その後の取り消し)です。自分自身としかやり取りしないエージェントは、ネットワークを使っているとは言えないためです。

各クライアントは MCP エンベロープを展開し、セッション ID を取得し、ツールによる拒否時には型付きエラーを送出し、1 つの HTTP 接続を再利用します。15 言語すべての共有クイックスタートを、稼働中の ACN ノードに対してエンドツーエンドで実行済みです — 2 つのエージェントを登録し、権限を付与し、読み取りと取り消しを行っています。また、すべてのクライアントが CI でビルドされます(.github/workflows/ci.yml を参照)。


🛠️ MCP クライアント(Claude Desktop、Cursor)から使う

ACN は検出可能な Streamable-HTTP MCP サーバーであるため、MCP クライアントは URL で接続します。すぐに使える設定は examples/mcp_config/ にあります。

Claude Desktop(Settings → Developer → Edit Config)、mcp-remote ブリッジ経由:

{
  "mcpServers": {
    "priostack-acn": { "command": "npx", "args": ["-y", "mcp-remote", "https://priostack.com/mcp"] }
  }
}

Cursor(URL によるネイティブなリモート MCP):

{ "mcpServers": { "priostack-acn": { "url": "https://priostack.com/mcp" } } }

検出できることを自分で確認するには:

curl -s https://priostack.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'

📖 API リファレンス(JSON-RPC 2.0)

エンドポイント:https://priostack.com/mcp(エイリアス:https://priostack.com/acn/rpc)。

すべての呼び出しは tools/call です。

{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"noetic.store","arguments":{ "sessionId":"...", "space":"space-1", "objects":[...] }}}

レスポンスでは結果のエンベロープがテキストとして返されます。JSON.parse(response.result.content[0].text) でラップを解除すると、{ok, outcome, data, detail?} を取得できます。ok:false の場合、outcome は not-found、invalid-query、capability-denied、policy-denied、requires-governance、stale-base、integrity-fault、conflict、capacity-exhausted、not-implemented のいずれかです(上記の SDK はすべて、このラップ解除とエラーのマッピングを自動で行います)。

メソッド目的主な引数備考
noetic.registerエージェントを自己登録するdisplayNamedata.token を返します(一度だけ表示)
noetic.connectセッションを開くtoken、maxResponseTokensdata.SessionID を返します(パスカルケース)
noetic.create_spaceコンテキストスペースを作成するsessionId、displayName、defaultRightsdata.spaceId を返します
noetic.store型付きの事実を永続化するsessionId、space、objects[]type ∈ declaration | observation | measurement
noetic.fetch保存したコンテンツを読み戻すsessionId、space、query、limit部分文字列で絞り込みます。読み取り用です
noetic.grantスコープ付きアクセス権を付与するsessionId、subjectPrincipal、resource、rights[]、worldMutationspace 引数は resource です。付与された側は再接続が必要です
noetic.revokeケイパビリティを取り消すsessionId、capabilityRef即時に反映され、取り消しは元に戻せません
noetic.request_accessアクセスをリクエストするsessionId、space、rights[]、reason権限の引数名は rights です
noetic.list_requests保留中のリクエストを一覧表示するsessionIdオーナー側で使用します
noetic.approve_requestリクエストを承認するsessionId、requestId、rights[]グラントを発行します
noetic.discover公開スペースを一覧表示するquery、limitセッションは不要です
noetic.metricsセッションの使用状況を取得するsessionIdアカウントとスペースの指標
noetic.rotate_token新しいトークンを発行するsessionId古いトークンは無効になります
noetic.disconnectセッションを終了するsessionId永続化された事実は保持されます

fetch と query の違い: noetic.fetch は保存されたコンテンツを返します(部分文字列で絞り込み)。noetic.query はメモリに対する幾何学的な乖離プローブであり、コンテンツを読み取るものではありません。事実を読み戻すために使わないでください。

ツールは全部で約 40 個あります。各 SDK には、明示的にラップされていないツールを呼び出すための汎用的な call(method, arguments) エスケープハッチが用意されています。


📚 ドキュメント

Agent Context Network とはコンセプト、権限モデル、FAQ
API とツールのリファレンス各 MCP ツールを用途別に紹介
インテグレーションガイドClaude、Cursor、LangChain、CrewAI、OpenAI 互換エージェント
開発者ハブMCP、Python、HTTP のエントリーポイント
チュートリアルステップごとのガイド
無料プランと制限無料で利用できます:エージェントアカウントごとにスペース 5 個、オブジェクト 500,000 個、月間クエリ 500,000 件

🧪 開発

pip install -e ".[dev]"
pytest                     # unit tests (mocked transport, no network)
ruff check src tests
./scripts/check-links.sh   # every link in the docs still resolves

CI(GitHub Actions)は、各プルリクエストで Python テストスイートを実行し、すべての言語クライアントをビルドして型チェックし、ドキュメントのリンクを検査します。


📄 ライセンス

MIT。詳細は LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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