Cross-Platform Continuity
Your AI assistant should remember context whether you are in Claude Desktop, Cursor, a browser, or a custom tool. This guide shows how to use MCP, the SDK, and the browser extension together for seamless memory across every platform.
Overview
Rekall provides three integration surfaces that all share the same memory backend:
- •MCP Server -- 40+ tools for Claude Desktop, Claude Code, Cursor, and other MCP hosts
- •SDKs -- TypeScript, Python, and Go SDKs for custom integrations
- •Browser Extension -- Chrome extension for capturing web context into memory
All three surfaces read and write to the same memory. A conversation in Claude Desktop can reference a code review done in Cursor, or a research session captured by the browser extension.
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ Claude │ │ Cursor │ │ Browser │ │ Custom App ││ Desktop │ │ IDE │ │ Extension │ │ (SDK) │└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘│ │ │ ││ MCP Protocol │ MCP Protocol │ REST API │ SDK│ │ │ │▼ ▼ ▼ ▼┌─────────────────────────────────────────────────────────────────────┐│ Rekall Memory Backend ││ ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │ Episodic │ │ Semantic │ │Procedural│ │ Execution│ ... ││ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │└─────────────────────────────────────────────────────────────────────┘
MCP + SDK + Browser Extension
MCP Server Setup
The Rekall MCP server exposes memory operations as tools that any MCP-compatible host can use. Install and configure it for your platforms.
// ~/Library/Application Support/Claude/claude_desktop_config.json{"mcpServers": {"rekall": {"command": "npx","args": ["-y", "@rekall/mcp-server"],"env": {"REKALL_API_KEY": "rk_your_key"}}}}
SDK Integration
For custom applications, use the SDK directly. All SDK operations go through the same API, so memories are instantly available across all platforms.
import Rekall from '@rekall/agent-sdk';// Initialize with platform contextconst rekall = new Rekall({apiKey: 'rk_your_key',context: {platform: 'custom-app',sessionId: generateSessionId(),},});// Memories created here are searchable from Claude Desktop,// Cursor, browser extension, and any other connected platformawait rekall.memories.create({type: 'episodic',content: 'Researched Neon database branching for the CI/CD pipeline',metadata: {tags: ['research', 'neon', 'ci-cd'],source: 'custom-app',},});
Browser Extension
The Rekall browser extension captures web browsing context -- pages visited, notes taken, research sessions -- and stores them as memories.
// The browser extension automatically:// 1. Captures page context when you highlight text// 2. Creates episodic memories from research sessions// 3. Extracts entities from web pages into semantic memory// 4. Syncs with all other Rekall-connected tools// Example: You read a blog post about database optimization// The extension creates:{type: 'episodic',content: 'Read article: "10 PostgreSQL Performance Tips" - key takeaways: connection pooling, index optimization, VACUUM scheduling',metadata: {source: 'browser-extension',url: 'https://example.com/postgres-tips',tags: ['research', 'postgresql', 'performance'],},context: {platform: 'chrome-extension',sessionId: 'browse_abc123',},}// Later in Claude Desktop:// "What did I read about PostgreSQL performance?"// -> Finds the browser extension memory and provides context
Install the extension
Download the Rekall browser extension from the Downloads page. After installing, sign in with your Rekall account and it will automatically start syncing with your other platforms.
Syncing Memory Across Tools
Automatic Sync
All platforms connect to the same Rekall backend, so sync is automatic. When you create a memory in Cursor, it is instantly searchable from Claude Desktop. There is no manual sync step.
// From any platform, search across all sourcesconst results = await rekall.memories.search({query: 'database optimization research',// Results include memories from ALL platforms});for (const memory of results.memories) {console.log(`[${memory.context.platform}] ${memory.content}`);}// [chrome-extension] Read article: "10 PostgreSQL Performance Tips"...// [cursor] Implemented connection pooling in payments-service// [claude-desktop] Discussed VACUUM scheduling with the team// [custom-app] Researched Neon database branching for CI/CD// Filter by platform if neededconst cursorOnly = await rekall.memories.search({query: 'database optimization',filters: {context: { platform: 'cursor' },},});
Conflict Resolution
Since all platforms write to the same backend, conflicts are rare. When they occur (e.g., two platforms update the same entity simultaneously), Rekall uses last-write-wins with version tracking.
// Entities have version numbersconst entity = await rekall.semantic.getEntity({ entityId: 'ent_abc' });console.log(`Version: ${entity.version}`); // 3// Optimistic concurrency: specify expected versiontry {await rekall.semantic.updateEntity({entityId: 'ent_abc',expectedVersion: 3, // Fails if someone else updated itproperties: { status: 'deprecated' },});} catch (err) {if (err.code === 'VERSION_CONFLICT') {// Re-fetch and retryconst fresh = await rekall.semantic.getEntity({ entityId: 'ent_abc' });// ... merge changes and retry}}
Unified Context Across Platforms
Here is how to set up each platform for a seamless cross-platform experience.
Claude Desktop
With MCP configured, Claude Desktop has access to all 40+ Rekall tools. It can search memories, create new ones, query knowledge graphs, and manage workflows.
User: "What was I working on yesterday in Cursor?"Claude (using Rekall MCP tools):- Calls rekall_search with query "work activity" and time filter for yesterday- Finds memories from Cursor platform:1. "Refactored the auth module to use JWT tokens"2. "Fixed race condition in payment processing"3. "Added unit tests for the new validation layer"Claude: "Yesterday in Cursor you worked on three main things:1. Refactored the auth module to use JWT tokens2. Fixed a race condition in payment processing3. Added unit tests for the validation layerThe auth refactoring was the highest-importance task based on your memory data.Would you like to continue with any of these?"
Cursor
Cursor with Rekall MCP provides code-aware memory. It remembers debugging sessions, file changes, and project context.
{"mcpServers": {"rekall": {"command": "npx","args": ["-y", "@rekall/mcp-server"],"env": {"REKALL_API_KEY": "rk_your_key","REKALL_PLATFORM": "cursor","REKALL_AUTO_CONTEXT": "true"}}}}
Browser
The browser extension works passively in the background. Configure what it captures:
{"autoCapture": {"enabled": true,"captureHighlights": true,"captureBookmarks": true,"capturePageSummaries": false},"domains": {"allowlist": [],"blocklist": ["mail.google.com", "facebook.com"]},"tagging": {"autoTag": true,"defaultTags": ["research", "web"]}}
Memory Portability
Export and import memories for backup, migration, or offline access.
// Export all memoriesconst exportData = await rekall.memories.export({format: 'json', // 'json' | 'csv' | 'jsonl'types: ['episodic', 'semantic'],includeEmbeddings: false, // Embeddings are large});// Save to fileawait fs.writeFile('rekall-backup.json', JSON.stringify(exportData));// Import memories into a different account or environmentconst importResult = await rekall.memories.import({data: exportData,strategy: 'merge', // 'merge' | 'replace' | 'skip-existing'recomputeEmbeddings: true, // Recompute for the new environment});console.log(`Imported: ${importResult.imported}`);console.log(`Skipped: ${importResult.skipped}`);console.log(`Errors: ${importResult.errors}`);
API key scope
Export/import operations require the memory:export and memory:import scopes. Make sure your API key has these permissions. See Scopes & Permissions.
Next Steps
- •MCP Server Reference -- Full list of 40+ MCP tools
- •Claude Desktop Integration -- Detailed setup guide
- •Cursor Integration -- Code-aware memory in your IDE
- •Browser Extension -- Capture web context
- •Best Practices -- Tips for organizing cross-platform memory
