diff --git a/graph/configurations/cognitive-memory-mcp-read-only-deployed-to-discord-coordinat-5c4a03.md b/graph/configurations/cognitive-memory-mcp-read-only-deployed-to-discord-coordinat-5c4a03.md new file mode 100644 index 00000000000..877e0901af2 --- /dev/null +++ b/graph/configurations/cognitive-memory-mcp-read-only-deployed-to-discord-coordinat-5c4a03.md @@ -0,0 +1,47 @@ +--- +id: 5c4a03f4-0c2c-4ef4-9c64-29cf9211be4a +type: configuration +title: "Cognitive Memory MCP (read-only) deployed to Discord Coordinator LXC 301" +tags: [cognitive-memory, discord-coordinator, mcp, homelab, lxc-301, configuration] +importance: 0.8 +confidence: 0.8 +created: "2026-02-21T05:24:06.417617+00:00" +updated: "2026-02-21T05:24:06.417617+00:00" +--- + +# Cognitive Memory MCP Read-Only Deployment on LXC 301 + +## Context + +Deployed a read-only instance of the cognitive memory MCP server to LXC 301 (ai-pm / discord-coordinator) so the Discord bot agent can query memories without being able to write or modify them. + +## Files Deployed + +All files placed in `/home/discord-bot/.claude/skills/cognitive-memory/`: +- `client.py` - core memory client +- `mcp_server.py` - full MCP server (not used directly) +- `SKILL.md` - skill documentation +- `mcp_server_readonly.py` - new readonly wrapper (key addition) + +## Key Configuration + +- Symlink: `~/.claude/memory` -> `memory-sync/` (git-synced memory store) +- MCP config: `~/.claude/.mcp.json` points to `mcp_server_readonly.py` +- `settings.json`: `ENABLE_TOOL_SEARCH=true` for lazy-loading of MCP tools + +## Readonly Wrapper Design + +`mcp_server_readonly.py` exposes **11 read-only tools**: +- `memory_recall`, `memory_get`, `memory_search`, `memory_related` +- `memory_edge_get`, `memory_edge_search`, `memory_reflection` +- `memory_stats`, `memory_core`, `memory_tags_list`, `memory_tags_related` + +**7 write tools are blocked** with "Memory is read-only on this server" error: +- `memory_store`, `memory_relate`, `memory_embed`, `memory_decay` +- `memory_episode`, `memory_config`, `memory_reflect` + +## Notes + +- No Ollama required — semantic search gracefully falls back to keyword-only search +- 538 memories indexed on initial deploy +- Requires `client.py reindex` on first deploy to build `_index.json` from scratch