Skip to content

feat: agent memory MVP — 4 MCP tools, 3 visibility levels, dashboard#72

Merged
matthiastjong merged 9 commits intomainfrom
feat/agent-memory-mvp
May 1, 2026
Merged

feat: agent memory MVP — 4 MCP tools, 3 visibility levels, dashboard#72
matthiastjong merged 9 commits intomainfrom
feat/agent-memory-mvp

Conversation

@matthiastjong
Copy link
Copy Markdown
Owner

Summary

  • 4 MCP tools: memory_list (compact index), memory_read (full content), memory_add, memory_delete
  • 3 visibility levels: org (all agents), user (per person), token (per agent instance)
  • defaultUser on tokens: server-side identity binding — personal tokens always resolve to correct user
  • Read-only dashboard: /memories page with search, visibility filters, click-to-expand detail
  • Discovery integration: memoryCount in discover response

Design decisions

  • Index + detail retrieval (Karpathy LLM Wiki pattern): memory_list returns summaries only, memory_read fetches full content on demand
  • Agent-side dedup via tool instructions (the calling LLM checks for existing memories before adding)
  • Max 100 memories in list with hasMore flag — signals when V2 (semantic search) is needed
  • Cascade delete: token deleted → all its memories deleted

Files

File Action
src/lib/server/db/schema.ts memories table + defaultUser on tokens
src/lib/server/services/memories.ts New: 5 functions (add, list, read, delete, count)
src/lib/server/services/tokens.ts Include defaultUser in queries + updateDefaultUser
src/lib/server/mcp/tools/memories.ts New: 4 MCP tool handlers with resolveUser
src/lib/server/mcp/server.ts Register tools + updated instructions
src/lib/server/mcp/tools/discover.ts Add memoryCount
src/routes/(app)/memories/ New: read-only dashboard page
src/routes/(app)/api-keys/[id]/ defaultUser field on token detail
src/lib/components/app-sidebar.svelte "Memories" nav item
tests/integration/memories.test.ts New: 9 integration tests

Closes DEA-4116

Test plan

  • 110/110 integration tests pass (including 9 new memory tests)
  • 86/86 unit tests pass
  • Build succeeds (vite build)
  • Type check passes (svelte-check — 0 errors)
  • Locally verified: memories page renders, defaultUser saves, expand works, filters work

🤖 Generated with Claude Code

Matthias 't Jong and others added 9 commits May 1, 2026 16:14
Three-tier visibility (org/user/token), index+detail retrieval pattern,
4 MCP tools, defaultUser identity binding on tokens, read-only dashboard.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8 tasks: schema, tokens service, memories service with TDD,
MCP tools, discovery integration, defaultUser UI, dashboard page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ultUser

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements addMemory, listMemories, readMemory, deleteMemory, and countMemories
with org/user/token visibility scoping and full integration test coverage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…memory_delete)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@matthiastjong matthiastjong merged commit d87fe15 into main May 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant