Memory Runtime Foundation — 5 MCP tools, full SDK parity, search UI
2026-03-10
What We Built
Consolidated BrainstormRouter's memory infrastructure into a coherent product surface with full SDK parity, MCP tool coverage, dashboard search/pin UI, and comprehensive documentation. The existing memory system had 8 API endpoints and 7 agent tools but incomplete SDK coverage (missing query()), only 3 of 5 MCP tools, no search UI in the dashboard, and docs that listed only 3 of 7 agent tools.
This phase closes every gap: both SDKs now expose query() for keyword search, the MCP server has br_memory_delete and br_memory_update tools, the dashboard has a search input and pin/unpin toggle per entry, and the docs cover the full memory model with REST API reference, all 7 agent tools, 5 MCP tools, SDK examples in both languages, and session isolation behavior.
Why It Matters
Memory is BrainstormRouter's core differentiator against stateless routing alternatives like Portkey and OpenRouter. But differentiation only counts when every developer surface — SDKs, MCP, dashboard, docs — tells the same story. A CTO evaluating the platform should be able to discover memory capabilities through any surface and get consistent, complete information.
Operators can now search memory entries from the dashboard, pin important facts to prevent eviction, and manage memory through any tool their stack supports (REST, TypeScript SDK, Python SDK, or MCP).
How It Works
SDK query
const { results } = await client.memory.query("deploy");
// results: [{ entry: { id, fact, block, pinned }, score: 0.85 }]
results = client.memory.query("deploy")
MCP tools
AI agents connected via MCP can now manage the full memory lifecycle:
| Tool | Description |
|---|---|
br_memory_list | List all core memory entries |
br_memory_store | Store a new entry |
br_memory_query | Search by keyword relevance |
br_memory_delete | Delete an entry by ID |
br_memory_update | Update text and/or pin status |
Dashboard
The agents page memory section now includes:
- Search: Keyword search input with scored results
- Pin/Unpin: Toggle button on each entry row
Auth bridge
Two new Supabase JWT bridge endpoints for dashboard access:
POST /auth/memory/query— keyword search proxyPUT /auth/memory/entries/:id— update/pin proxy
The Numbers
- 5 MCP memory tools (was 3)
- 2 SDK methods added (
query()in TypeScript + Python) - 2 auth bridge endpoints added
- 7 agent tools documented (was 3 in docs)
- 9 lockstep surfaces verified
Competitive Edge
No competing router (Portkey, OpenRouter, Martian) offers built-in persistent memory with full CRUD, keyword search, pinning, and exposure across REST API, two SDKs, MCP, and a dashboard — all tenant-scoped with session isolation support. BrainstormRouter is the only platform where memory is a first-class, fully-governed product surface rather than an add-on.
Lockstep Checklist
- [x] API Routes:
src/api/routes/auth.ts— addedPOST /auth/memory/queryandPUT /auth/memory/entries/:id - [x] TS SDK:
packages/sdk-ts/src/resources/memory.ts— addedquery()method - [x] Python SDK:
packages/sdk-py/src/brainstormrouter/resources/memory.py— addedquery()to sync + async - [x] MCP Schemas:
src/mcp/tool-manifest.ts+src/mcp/server.ts— addedbr_memory_delete,br_memory_update - [x] Discovery:
site/.well-known/agents.json,site/llms.txt,LLMS_TXT_CONTENTupdated - [x] Docs:
docs/concepts/memory.mdx— comprehensive rewrite - [x] Dashboard:
site/dashboard/src/pages/agents.ts— search UI, pin/unpin toggle - [x] Tests:
memory.test.ts,server.test.ts,auth.test.ts— isolation, CRUD, query, pin, MCP tools, bridge