Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.screenpi.pe/llms.txt

Use this file to discover all available pages before exploring further.

screenpipe provides an MCP (Model Context Protocol) server that lets AI assistants like Codex, Claude, and Cursor search your screen recordings, audio transcriptions, and control your computer.

choose your MCP setup

clientbest pathrestart needednotes
Claude Desktopone-click install from settings -> connectionsyesrestart Claude completely after install
Claude Codeclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcpnew sessionuse /mcp to verify
Codexone-click connect from settings -> connectionsnew sessionwrites ~/.codex/config.toml
Cursordeep link or global MCP configusually yesproject configs can override global configs
Warppaste per-server JSON in MCP settingsno, but reconnect if staleWarp does not use the Claude JSON wrapper
MstyHTTP MCP servernouseful when the client expects HTTP transport
Cline, Continue, Gemini CLI, OpenCodestdio MCPdepends on clientuse npx -y screenpipe-mcp
the MCP server talks to the local screenpipe API. if MCP works but returns empty results, first check curl http://localhost:3030/health and curl "http://localhost:3030/search?limit=1".

claude desktop

open the screenpipe appsettingsconnections → click “install extension” Claude will open and prompt you to confirm. click install — done! try asking Claude: “what did I do in the last 5 minutes?”
make sure screenpipe is running when you use Claude with screenpipe features.

manual setup (stdio)

if the one-click install doesn’t appear or you prefer manual config, edit Claude’s config file directly: macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows: %AppData%\Claude\claude_desktop_config.json add or update the mcpServers section:
{
  "mcpServers": {
    "screenpipe": {
      "command": "npx",
      "args": ["-y", "screenpipe-mcp"],
      "transport": "stdio"
    }
  }
}
save, then restart Claude Desktop completely (force-quit from Activity Monitor / Task Manager, then reopen). verify the connection works by asking Claude: “what’s on my screen right now?“

claude code

one command:
claude mcp add screenpipe --transport stdio -- npx -y screenpipe-mcp
to make it available across all your projects:
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcp
verify with claude mcp list or /mcp inside Claude Code.

codex

open the screenpipe appsettingsconnections → click connect next to Codex. screenpipe writes the MCP server to ~/.codex/config.toml. open a new Codex session, then try: “what did I do in the last 5 minutes?”
make sure screenpipe is running when you use Codex with screenpipe features.

manual setup (stdio)

if the one-click install doesn’t appear or you prefer manual config, edit ~/.codex/config.toml and add:
[mcp_servers.screenpipe]
command = "npx"
args = ["-y", "screenpipe-mcp@latest"]
enabled = true
save, then open a new Codex session. if you use a local screenpipe API key, set it in the same block:
[mcp_servers.screenpipe.env]
SCREENPIPE_LOCAL_API_KEY = "your-local-api-key"

cursor

click here to install in cursor or manually: open cursor settingsmcpadd new global mcp server → set command to npx with args ["-y", "screenpipe-mcp"].

warp

Warp’s Agent Mode supports MCP. Open SettingsAIManage MCP servers+ Add, choose CLI Server (Command), then paste:
{
  "screenpipe": {
    "command": "npx",
    "args": ["-y", "screenpipe-mcp@latest"],
    "start_on_launch": true
  }
}
Save — the server should show Running. Then ask Warp’s agent: “what did I do in the last 5 minutes?”
Warp’s MCP schema is per-server (no wrapping mcpServers object). Don’t paste the Claude/Cursor JSON shape — it won’t validate.
You can also reach this screen via the Command Palette → Open MCP Servers. Or just open the screenpipe app → settingsconnectionsWarp to copy the config.

other editors (cline, continue, windsurf, etc.)

any editor that supports MCP works with screenpipe. the server command is:
npx -y screenpipe-mcp
add this as a stdio MCP server in your editor’s MCP settings. see also:

HTTP transport (optional)

if you need remote MCP access or prefer HTTP over stdio, the screenpipe-mcp npm package includes an HTTP server binary. both the stdio (screenpipe-mcp) and HTTP (screenpipe-mcp-http) commands come from the same npm package.

localhost only (default)

npx screenpipe-mcp-http --port 3031
this starts an HTTP MCP server on http://127.0.0.1:3031. useful for tools like Msty that support HTTP MCP transport.

expose to your LAN

to access the server from other machines on your network, use --listen-on-lan. this requires an API key for security:
npx screenpipe-mcp-http --port 3031 --listen-on-lan --api-key your-secret-key
then from a remote machine, call the server with the bearer token:
curl -H "Authorization: Bearer your-secret-key" \
  http://<your-machine-ip>:3031/mcp/search?q=example
HTTP MCP can expose screen history. when using --listen-on-lan, always set an --api-key — screenpipe will refuse to start without it. keep the key secret and only share with trusted services.

available tools

search-content (all platforms)

search through recorded screen content, audio transcriptions, and user input events:
parametertypedescription
qstringsearch query (optional - omit to get recent content)
content_typestringall, ocr, audio, input, or accessibility (default: all)
limitintegermax results (default: 10)
offsetintegerpagination offset (default: 0)
start_timestringISO 8601 UTC start time (e.g., 2024-01-15T10:00:00Z)
end_timestringISO 8601 UTC end time
app_namestringfilter by app (e.g., Google Chrome, Slack)
window_namestringfilter by window title
min_lengthintegerminimum content length
max_lengthintegermaximum content length
include_framesbooleaninclude base64 screenshots for screen-text results
speaker_idsstringcomma-separated speaker IDs for audio filtering (e.g., 1,2,3)
speaker_namestringfilter audio by speaker name (case-insensitive partial match)

export-video

create video exports from screen recordings for a specific time range:
parametertypedescription
start_timestringISO 8601 UTC start time (required)
end_timestringISO 8601 UTC end time (required)
fpsnumberframes per second (default: 1.0)

example queries

try these in Claude or Cursor:
  • “search for any mentions of ‘project’ in my screen recordings”
  • “find audio transcriptions from the last hour”
  • “show me what was on my screen in VS Code yesterday”
  • “export a video of my screen from 10am to 11am today”
  • “find what John said in our meeting about the API”
  • “what did I type in Slack today?” (uses content_type=input)
  • “what did I copy to my clipboard recently?” (uses content_type=input)

testing

test your setup with MCP Inspector:
npx @modelcontextprotocol/inspector npx screenpipe-mcp

troubleshooting matrix

symptomlikely fix
no MCP tools appearrestart the client and verify the config path
npx not foundinstall Node.js 18+ or use the one-click in-app setup
403 or unauthorizedset SCREENPIPE_LOCAL_API_KEY or refresh API auth in settings
empty resultswait for capture, broaden the query, or verify /search?limit=1
client hangs on startuprun the inspector command above and check Node version
Claude Desktop on Windows cannot see configcheck whether you use the normal or Microsoft Store/MSIX install
Codex does not see screenpipeopen a new Codex session after the app writes ~/.codex/config.toml
HTTP transport not reachableconfirm screenpipe-mcp-http port and firewall/LAN rules

requirements

  • screenpipe must be running on localhost:3030
  • Node.js >= 18.0.0

deeper guides

manual config (advanced)

troubleshooting

mcp not connecting?
  • ensure screenpipe is running (screenpipe in terminal)
  • check it’s accessible at http://localhost:3030/health
  • restart Claude Desktop / Cursor after config changes
macos automation not working?
  • grant accessibility permissions in System Settings > Privacy & Security > Accessibility
still stuck? ask in our discord — the community can help debug MCP issues.