In-depth architectural comparison of the Screenpipe and Tempera MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Screenpipe
Knowledge & Memory · Local stdio
Quality: 67/100 (Great) | Auth: API Key required
Tempera
Knowledge & Memory · Local stdio
Quality: 45/100 (Fair) | Auth: No auth required
Verdict Summary: Choose Screenpipe if you need specialized Knowledge & Memory tools running via a local process. Choose Tempera if your workspace requires Knowledge & Memory integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Screenpipe when:
You need dedicated capabilities in the Knowledge & Memory domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Freemium).
You have access to required keys: SCREENPIPE_LOCAL_API_KEY.
Search screen text, audio transcriptions, input events, memories, and parsed app data. Returns timestamped results with app context. USE WHEN: you need the actual text/content of a moment — quotes, screen text, transcript lines, or compact parsed messages, emails, tasks, documents, and code review — or want to filter by speaker/window. DO NOT USE for: broad questions like 'what was I doing?' (use activity-summary, it pre-summarizes apps + windows + transcripts). Also DO NOT USE for: targeted UI controls (use search-elements). Start with limit=5, increase only if needed. Per-result text is auto-truncated to 1000 chars; pass max_content_length=0 to opt out, or a custom integer to override.
synced-devices
List this signed-in user's Screenpipe devices that have uploaded Data Sync records, including each device name and last sync time. USE WHEN: the user asks what devices are available, names another device, or asks a cross-device question and you need the exact device_name filter. This never accepts an account or bucket identifier; the local app forwards the signed-in user's identity.
search-synced-content
Search Data Sync records from this signed-in user's devices. Results include device name, device ID, and timestamp for attribution. USE WHEN: the user asks about another/named device, asks across devices, or local search does not cover the requested machine. For the current machine only, use search-content. Start with a narrow time range and limit=10.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Screenpipe is categorized under Knowledge & Memory and uses a local stdio subprocess. In contrast, Tempera belongs to Knowledge & Memory using local stdio subprocess. Select Screenpipe when you need capabilities focused on knowledge & memory and Tempera when you require tools for knowledge & memory.
List detected meetings (Zoom, Teams, Meet, etc.) with id, duration, app, attendees, and note status. Pass `q` to substring-match title, attendee names/emails, and notes — `q` searches ALL meeting history, so when looking for a meeting with a person or on a topic ('when did I last talk to Noah?'), pass `q` and OMIT start_time. Only constrain the time range when the question itself is time-bound. Results are newest-first; without `q`, old meetings only surface via time range or offset pagination. Follow up with get-meeting (id from results) for the full note and transcript.
activity-summary
Rich activity overview: authoritative active minutes, app/window time, edited document paths, key text, and audio transcriptions, with optional parsed task context when available. USE WHEN: any broad question about what the user did — 'what was I doing?', 'how long on X?', 'which apps?', 'recap my morning'. This is almost always the right first call for time-range questions — usually sufficient without follow-up searches. Use parsed/path evidence to identify tasks, but only active-minute fields for duration; frame and row counts are never time. DO NOT USE for: finding a specific keyword (use keyword-search) or a specific UI control (use search-elements).
search-elements
Search UI elements (buttons, links, text fields) from the accessibility tree, filterable by role. USE WHEN: you want a specific UI control or page-structure question — 'find every Submit button I saw', 'list the links in that page'. DO NOT USE for: general text/content (use search-content) or fast keyword lookup (use keyword-search).
frame-context
Get full accessibility text, parsed tree nodes, and URLs for a specific frame ID. Use after search-content to get detailed context for a specific moment.
export-video
Export an MP4 of screen recordings for a time range, with synced microphone audio. Frames are placed at their real timestamps, so the clip's duration matches the wall-clock span you requested (not a sped-up timelapse). Returns the file path. Can take a few minutes for long ranges.
update-memory
Create, update, or delete a persistent memory (facts, preferences, decisions the user wants to remember). To retrieve memories, use search-content with content_type='memory'. To create: provide content + tags. To update: provide id + fields to change. To delete: provide id + delete=true.
get-feedback
Search local user ratings and written comments attached to AI-produced notifications, chats, memories, blocks, artifacts, and other targets. Use before generating related work so you preserve what earned up ratings and correct what earned down ratings.
send-notification
Send a notification to the screenpipe desktop UI. Use high priority only for time-sensitive failures or decisions needing human attention; routine findings and completed tasks should be normal or low.
health-check
Check if screenpipe is running and healthy. Returns recording status, frame/audio stats, timestamps.
+18 more tools listed on main page
Tempera Tools (12)
tempera_session_start
Call ONCE at the very start. Returns any clarifying question tempera drafted after a previous failed/partial session in this project.
tempera_brief
Call once the file set is known. Joins pending ask-back, reasoning template, top correction categories for these files, should-have-asked triggers, and calibration warning into one response. Pass `task_type` + `domain` for richer output. Set `cross_project=true` to supplement with rows from other p…
tempera_retrieve
Search for similar past episodes. Set `scope="cross-project"` to include transferable claims from other projects.
tempera_template
Pull the reasoning template stored for a `(task_type, domain)` pair. The step sequence past wins followed.
tempera_log_correction
When the user corrects an assumption / decision / piece of code. Categorized log; the brief surface uses it.
tempera_log_should_have_asked
When you realize mid-task you should have asked a question up front. Records the trigger context, the question, and the eventual answer.
tempera_capture
Save session as an episode. Auto-detects session links and runs propagation. The intent-extraction LLM call also suggests a `ValidityScope` for cross-project routing.
tempera_feedback
Mark retrieved episodes as helpful or not. Drives the utility-learning loop.
tempera_status
Per-project memory health snapshot.
tempera_stats
Statistics + trend analytics (helpfulness over time, domain growth, learning curve).
tempera_propagate
Multi-hop Bellman propagation with convergence tracking. Periodic maintenance.
tempera_review
Consolidate similar BKMs, cleanup. Run after related task series.
Local-first workflow memory for AI agents. screenpipe lets MCP clients search selected screen, audio, app, and meeting context and turn real work into cited notes, SOPs, workflow reports, and automation candidates.
Persistent episodic memory for AI coding: capture, retrieve, brief, dream cycle, cross-project.