Get memory working in under a minute. No signup required for local mode.
npx @lakehouse/memory-mcpThis starts the MCP server with local storage. Your memories are saved to ~/.lakehouse42/memory-mcp/memories.json
Add memory to Claude Code by editing your config file.
Open ~/.claude/claude_code_config.json
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["@lakehouse/memory-mcp"]
}
}
}Close and reopen your terminal. The memory tools will now be available.
Tip: Ask Claude to remember that I prefer TypeScript to test that memory is working.
Add memory to Claude Desktop via the settings menu.
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["@lakehouse/memory-mcp"],
"env": {
"LH42_URL": "https://api.lakehouse42.com",
"LH42_API_KEY": "lh42_your_api_key"
}
}
}
}Add memory to Cursor or Windsurf following the same pattern.
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["@lakehouse/memory-mcp"]
}
}
}Connect to LH42 for full semantic search, deduplication, and knowledge graph features.
Option 1: Web Signup
Option 2: Programmatic Registration (for AI agents)
# Any provider - embeddings handled automatically
curl -X POST https://api.lakehouse42.com/api/v1/agents/register \
-H "Content-Type: application/json" \
-d '{
"agent_id": "my-agent",
"llm_provider": "anthropic",
"llm_api_key": "sk-ant-xxx"
}'
# Returns: { "api_key": "lh_...", "embedding_provider": "platform (managed bge-m3)" }No existing API key required. Supported LLM providers: openai, anthropic, google, cohere, voyage, azure-openai. Anthropic and other providers without native embeddings automatically use platform-managed BGE-M3 embeddings.
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["@lakehouse/memory-mcp"],
"env": {
"LH42_URL": "https://api.lakehouse42.com",
"LH42_API_KEY": "lh42_your_api_key"
}
}
}
}| Variable | Description |
|---|---|
| LH42_URL | LH42 API URL (enables cloud backend) |
| LH42_API_KEY | API key for authentication |
| DEBUG | Enable debug logging (true/false) |
Store a memory for later recall.
| Parameter | Type | Description |
|---|---|---|
| content* | string | The information to remember |
| type | string | Memory type (fact, preference, task, event, context, reflection) |
| importance | number | 0.0 to 1.0 (default: 0.5) |
Search memories by semantic similarity.
| Parameter | Type | Description |
|---|---|---|
| query* | string | What to search for |
| limit | number | Max results (default: 5) |
| types | string[] | Filter by memory types |
Delete a memory by ID.
| Parameter | Type | Description |
|---|---|---|
| memoryId* | string | ID of memory to delete |
| reason | string | Reason for deletion (audit trail) |
List recent memories.
| Parameter | Type | Description |
|---|---|---|
| limit | number | Max results (default: 10) |
Get memory system status including backend type and available features.
Search across both your personal memories AND enterprise documents with a single query. Results are merged using Reciprocal Rank Fusion (RRF) for optimal relevance.
Enterprise Feature: Unified search requires an LH42 backend connection to access organization documents.
Search memories AND enterprise documents together with RRF fusion.
| Parameter | Type | Description |
|---|---|---|
| query* | string | Natural language search query |
| include_memories | boolean | Include personal memories (default: true) |
| include_documents | boolean | Include enterprise documents (default: true) |
| collection_ids | string[] | Limit to specific document collections |
| memory_weight | number | Weight for memories in fusion (0-1, default: 0.4) |
Get formatted context for LLM conversations, combining memories and documents.
| Parameter | Type | Description |
|---|---|---|
| query* | string | Context query |
| max_tokens | number | Maximum tokens for context (default: 2000) |
| Type | Description | Example |
|---|---|---|
| fact | Factual information (default) | "The API uses REST endpoints" |
| preference | User preferences | "User prefers dark mode" |
| task | Tasks and todos | "Need to refactor the auth module" |
| event | Events and occurrences | "Deployed v2.0 on March 15" |
| context | Conversation context | "Working on the payment flow" |
| reflection | Insights and learnings | "The old approach was too slow" |
Access memory and knowledge search directly via the LH42 REST API.
# Store a memory
curl -X POST https://api.lakehouse42.com/api/v1/agents/memory \
-H "Authorization: Bearer lh_your_api_key" \
-H "Content-Type: application/json" \
-d '{"content": "User prefers TypeScript", "type": "preference"}'# Recall memories
curl -X POST https://api.lakehouse42.com/api/v1/agents/memory/recall \
-H "Authorization: Bearer lh_your_api_key" \
-H "Content-Type: application/json" \
-d '{"query": "programming preferences", "limit": 10}'Search both personal memories AND enterprise documents in a single call.
# Unified search (memories + documents)
curl -X POST https://api.lakehouse42.com/api/v1/agents/knowledge/search \
-H "Authorization: Bearer lh_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"query": "project deadlines",
"include_memories": true,
"include_documents": true,
"memory_weight": 0.4,
"limit": 10
}'# List available document collections
curl https://api.lakehouse42.com/api/v1/agents/knowledge/collections \
-H "Authorization: Bearer lh_your_api_key"| Endpoint | Method | Description |
|---|---|---|
| /api/v1/agents/register | POST | Register new agent, get API key |
| /api/v1/agents/me | GET/PATCH | Get or update agent profile |
| /api/v1/agents/memory | POST/DELETE | Store or delete memories |
| /api/v1/agents/memory/recall | POST | Semantic search memories |
| /api/v1/agents/knowledge/search | POST | Unified search (memories + documents) |
| /api/v1/agents/knowledge/collections | GET | List document collections |
Use the package in your own TypeScript/JavaScript code.
import { createMemoryServer, LH42Backend } from "@lakehouse/memory-mcp";
// Create server with custom config
const server = await createMemoryServer({
lh42Url: "https://api.lakehouse42.com",
apiKey: "lh42_xxx",
debug: true,
});
// Or use backends directly
const backend = new LH42Backend({
url: "https://api.lakehouse42.com",
apiKey: "lh42_xxx",
});
await backend.initialize();
await backend.remember({ content: "User likes TypeScript" });
const results = await backend.recall({ query: "programming preferences" });Get full semantic search, deduplication, and knowledge graph features with LH42.