§ Interfaces
MCP client. One client, many servers.
Talk to OctaMem from your own Python using the standard MCP SDK. The right path when you're writing a custom agent that needs to call OctaMem alongside other MCP servers in the same loop.
- Base URL
- platform.octamem.com
- Auth
- Bearer API key
- Primitives
- details / search / add
Install
We use the official Python MCP SDK. OctaMem has no separate MCP client, the standard one works.
install.sh
Shell
pip install "mcp[cli]"
export OCTA_API_KEY="oct_live_..."Connect and call
OctaMem speaks MCP over streamable HTTP. Open a session, list tools, and call remember and recall.
mcp_client.py
Python
import asyncio
import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
OCTA_URL = "https://mcp.octamem.com"
TOKEN = os.environ["OCTA_API_KEY"]
async def main():
async with streamablehttp_client(
OCTA_URL,
headers={"Authorization": f"Bearer {TOKEN}"},
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# List tools exposed by the server.
tools = await session.list_tools()
for t in tools.tools:
print(t.name, ",", t.description)
# Capture a memory.
await session.call_tool("remember", {
"content": "Beta opens March 20.",
"type": "episodic",
"scope": "acme/launch",
})
# Recall it.
res = await session.call_tool("recall", {
"query": "When does beta open?",
"scope": "acme/launch",
})
print(res.content)
asyncio.run(main())Common issues
401 Unauthorized. ConfirmOCTA_API_KEYis set and isn’t the placeholder string from the snippet above.SSE timeouton long recalls. Bump the streamable HTTP timeout in the client config; OctaMem holds the connection open while it gathers context.- Tool not found. Compare the name you passed to
call_toolagainst the output ofsession.list_tools(). Tool names are versioned, see the changelog if a name changed.