From 53046b0ac324a1926775e84262753c618811b2e6 Mon Sep 17 00:00:00 2001 From: Anish Yadav <80835632+visy-ani@users.noreply.github.com> Date: Thu, 14 May 2026 15:38:18 +0530 Subject: [PATCH 1/2] examples: add Synap memory integration example --- examples/synap_memory.py | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 examples/synap_memory.py diff --git a/examples/synap_memory.py b/examples/synap_memory.py new file mode 100644 index 00000000..4103e12c --- /dev/null +++ b/examples/synap_memory.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +"""Example: Synap memory integration. + +Demonstrates how to give a Claude Agent persistent, cross-session memory using +Synap (https://maximem.ai) — a managed memory layer for AI agents. + +Two plug points: + 1. `create_synap_hooks` — installs a `UserPromptSubmit` hook that fetches + relevant Synap context for each prompt and injects it via + `additionalContext`. Optionally records the user prompt for future recall. + 2. `create_synap_mcp_server` — exposes `synap_search` and `synap_remember` + as MCP tools the model can call explicitly. + +Install: + pip install synap-claude-agent maximem-synap + +Set `SYNAP_API_KEY` in your environment. Get a free key at +https://synap.maximem.ai. + +Open source: https://github.com/maximem-ai/maximem_synap_sdk +""" + +import asyncio +import os + +from claude_agent_sdk import ClaudeAgentOptions, query +from maximem_synap import MaximemSynapSDK +from synap_claude_agent import create_synap_hooks, create_synap_mcp_server + + +async def main() -> None: + sdk = MaximemSynapSDK(api_key=os.environ["SYNAP_API_KEY"]) + await sdk.initialize() + + user_id = "demo-user-001" + customer_id = "demo-customer" + + # Pattern 1 — automatic context injection via hook + print("=== Hook-based context injection ===") + async for message in query( + prompt="What did I tell you about my dietary preferences?", + options=ClaudeAgentOptions( + hooks=create_synap_hooks(sdk, user_id=user_id, customer_id=customer_id), + ), + ): + print(message) + + # Pattern 2 — explicit search / remember via MCP tools + print("\n=== MCP tool-based memory access ===") + options = ClaudeAgentOptions( + mcp_servers={ + "synap": create_synap_mcp_server( + sdk, user_id=user_id, customer_id=customer_id + ), + }, + allowed_tools=["mcp__synap__synap_search", "mcp__synap__synap_remember"], + ) + async for message in query( + prompt="Remember that I prefer concise answers, then search my memory.", + options=options, + ): + print(message) + + +if __name__ == "__main__": + asyncio.run(main()) From e417726eba28eebcaf2567a5dbe81d2b8b00cbd5 Mon Sep 17 00:00:00 2001 From: Anish Yadav <80835632+visy-ani@users.noreply.github.com> Date: Thu, 14 May 2026 17:36:43 +0530 Subject: [PATCH 2/2] examples(synap): use correct PyPI name maximem-synap-claude-agent --- examples/synap_memory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/synap_memory.py b/examples/synap_memory.py index 4103e12c..0db3596e 100644 --- a/examples/synap_memory.py +++ b/examples/synap_memory.py @@ -12,7 +12,7 @@ as MCP tools the model can call explicitly. Install: - pip install synap-claude-agent maximem-synap + pip install maximem-synap-claude-agent maximem-synap Set `SYNAP_API_KEY` in your environment. Get a free key at https://synap.maximem.ai.