same machine
If OpenClaw and screenpipe run on the same machine, setup is straightforward.MCP (recommended)
Add screenpipe to your OpenClaw MCP config:custom skill (alternative)
Create~/openclaw/skills/screenpipe/skill.md:
different machines
If OpenClaw runs on a remote server (e.g., a VPS) and screenpipe runs on your laptop/desktop, you need to expose screenpipe to the remote machine. There are two approaches: MCP over HTTP (recommended) and REST API with custom skills (fallback).MCP over HTTP (recommended)
Screenpipe’s MCP server supports Streamable HTTP transport, so OpenClaw can connect to it as a proper MCP server over the network — all tools, fully described, structured calls. No curl workarounds needed. Step 1: On your computer (where screenpipe runs), start the HTTP MCP server:http://localhost:3031/mcp.
Step 2: Expose port 3031 to your OpenClaw server using one of:
Tailscale (easiest)
Tailscale (easiest)
Tailscale creates a private network between your devices — no port forwarding, no config files.
- Install Tailscale on both machines
- Run
tailscale upon both - Find your computer’s Tailscale IP:
tailscale ip - Verify:
curl http://<tailscale-ip>:3031/health
http://<tailscale-ip>:3031/mcp.SSH tunnel
SSH tunnel
Forward the MCP port over SSH:Your MCP URL will be
http://localhost:3031/mcp (on the OpenClaw server).Cloudflare Tunnel
Cloudflare Tunnel
https:// URL cloudflared gives you, with /mcp appended.<your-mcp-url> with the appropriate address from step 2 (Tailscale IP, localhost for SSH tunnel, or Cloudflare URL).
Restart OpenClaw — it now has full MCP access to screenpipe with all tools, parameters, and structured responses. No custom skills needed.
REST API with custom skills (fallback)
If OpenClaw doesn’t support HTTP MCP transport, you can fall back to custom skills that call screenpipe’s REST API directly. This works but is less structured — OpenClaw won’t get MCP tool discovery or typed parameters.option A: Tailscale + REST
- Install Tailscale on both machines, run
tailscale upon both - Find your Tailscale IP:
tailscale ip - Verify:
curl http://<tailscale-ip>:3030/health - Create
~/openclaw/skills/screenpipe/skill.md:
TAILSCALE_IP with your actual Tailscale IP (e.g., 100.64.x.x).
option B: SSH tunnel + REST
localhost:3030 on your OpenClaw server. Then use the same skill as the “same machine” custom skill setup, replacing the URL accordingly.
option C: Cloudflare Tunnel + REST
available MCP tools
When connected via MCP (stdio or HTTP), OpenClaw gets access to these tools:| Tool | Description |
|---|---|
| search-content | Search screen text (accessibility/OCR), audio transcriptions, user input. Supports time range, app, window, and speaker filters. |
| activity-summary | Lightweight overview of app usage, audio speakers, and recent texts for a time range (~200 tokens). |
| search-elements | Search structured UI elements (buttons, links, text fields) from the accessibility tree. |
| frame-context | Get full accessibility tree, URLs, and text for a specific frame. |
| list-meetings | List detected meetings with duration, app, and attendees. |
| export-video | Export screen recordings as MP4 for a time range. |
screenpipe://context for current time, screenpipe://guide for search strategy) and prompts (search-recent, find-in-app, meeting-notes).
example prompts
Once configured, message OpenClaw from any chat app:- “what was I reading about yesterday afternoon?”
- “find the slack message from john about the deployment”
- “what code was I looking at in cursor this morning?”
- “summarize my meetings from last week”
- “what tabs did I have open when researching that bug?”
- “when did I last see the budget spreadsheet?”
- “what did I copy to clipboard recently?”
- “show me what buttons I clicked in Figma today”
troubleshooting
MCP not connecting?- Test the server:
npx @modelcontextprotocol/inspector npx screenpipe-mcp - Check screenpipe is running:
curl http://localhost:3030/health
- Check Tailscale is connected:
tailscale status - Check SSH tunnel is up:
curl http://localhost:3030/healthon the remote - Make sure screenpipe is running on your computer
- Verify screenpipe is running:
curl http://localhost:3030/health - Ensure screenpipe has screen recording permissions