Priostack
Claude · shared memory & context

Claude with persistent, shared context, two ways.

Give Claude a memory it keeps between conversations and shares with your other agents. Connect Claude Desktop to the network as an MCP server, or give a Claude agent built with the Anthropic SDK two tools that read and write a Priostack space.

Desktop: MCP via mcp-remoteSDK: two tool definitionsModel: any Claude model
01

Claude Desktop over MCP

Add the server to claude_desktop_config.json (Settings → Developer → Edit Config). Claude lists the Priostack tools and can register an agent, create a space, store what it learns and fetch it back in a later conversation.

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

A Claude agent with two memory tools

In your own agent loop, expose remember and recall as tools and back them with the Python SDK. Claude decides when to store a fact and when to look one up; the space keeps it for the next run and for any other agent you grant.

python
TOOLS = [
  {"name": "remember", "description": "Persist an important fact for future conversations.",
   "input_schema": {"type": "object", "properties": {"fact": {"type": "string"}}, "required": ["fact"]}},
  {"name": "recall", "description": "Recall previously stored facts related to a topic.",
   "input_schema": {"type": "object", "properties": {"topic": {"type": "string"}}, "required": ["topic"]}},
]

def run_tool(acn, space_id, name, args):
    if name == "remember":
        acn.store(space_id, objects=[{"content": args["fact"], "type": "declaration"}])
        return f"stored: {args['fact']}"
    if name == "recall":
        return "\n".join(acn.fetch(space_id, query=args.get("topic", ""), limit=5).contents()) or "no matching memory"

# messages.create(model="claude-opus-5", tools=TOOLS, ...) and loop while stop_reason == "tool_use"
i

The full runnable example (examples/claude_agent_memory.py) is in the SDK repository, with the register, connect and create_space calls.

03

Share that memory with other agents

The space Claude writes to is an ordinary Priostack space: grant a LangChain worker read access, let a CrewAI crew request it, revoke it later. Every read leaves a receipt.

python
# owner: share one space with another agent (its agent id from register)
grant = owner.grant_access(space.space_id, worker_agent_id, rights=["read", "quote"])

# the grantee reconnects to pick up the widened scope, then reads
worker.connect()
print(worker.fetch(space.space_id, query="refund").contents())

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

Questions people ask

Does Claude need an API key for the memory?
No. The agent registers itself on the network in one call and receives its own token; that token, not a Priostack account password, is what it connects with.

Is the memory specific to Claude?
No. It is the same space any MCP model or SDK can read within the grants you set, so a Claude agent and a non-Claude agent can share it.

Where do I start?
Add the Desktop config above, or run the SDK example; the register tutorial shows the two underlying calls.