关于 screenpipe
screenpipe 的 MCP 服务让 MCP 客户端搜索本机屏幕录制、音频转录和电脑活动,也可控制电脑。它支持 stdio 与 Streamable HTTP,并为搜索结果保留来源标识和深层链接。
主要功能
- 01搜索屏幕、音频和输入记录
- 02控制电脑
- 03通过 stdio 或 HTTP 提供服务
- 04保留搜索结果来源和深层链接
- 05按需检查帧与元素
- 06限制搜索结果文本长度
适用场景
- 01检索屏幕录制中的内容
- 02查找音频转录和电脑活动
- 03通过远程客户端搜索 screenpipe
- 04查看搜索结果对应的帧证据
MCP 相关
向 MCP 客户端提供搜索、屏幕帧检查及保存工作流等能力;stdio 还支持配置后的企业团队工具。可通过 stdio 或 Streamable HTTP 连接,HTTP 方式支持远程客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
33收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | 筛选标题、描述、触发条件或结果 |
| limit | integer | 否 | |
| offset | integer | 否 |
详细介绍
Screenpipe MCP 服务
https://github.com/user-attachments/assets/7466a689-7703-4f0b-b3e1-b1cb9ed70cff
适用于 screenpipe 的 MCP 服务——搜索屏幕录制和音频转录内容,并使用 AI 控制计算机。
使用情况归因
启用 Screenpipe 分析后,成功且结果非空的检索会生成
qualified_value_event,并包含 surface(api 或 mcp)和 agent_client。
支持的应用标识符包括 claude、chatgpt、codex、cursor、gemini、
openclaw、hermes、runner、windsurf、vscode、grok 和 grokbot。Claude Desktop
和 Claude Code 共用现有的 claude 分类。这标识的是调用方,
而不是录制内容中出现的应用。
MCP 在 SCREENPIPE_MCP_CLIENT 指定受支持的应用时使用该值,否则回退到
初始化握手中的客户端名称。HTTP 会话独立解析。只会转发固定标识符;
原始客户端名称绝不会作为分析属性。无法识别的 MCP 客户端归为 unknown。
已安装的 REST 技能会发送 X-Screenpipe-Client: api,并为其目标应用发送固定的
X-Screenpipe-Agent 标头。其他 API 客户端也可以发送相同的标头。缺失或无法识别的应用标识符在合格价值事件中仍归入旧有的
direct_api 分类。search_performed 也会包含固定的 agent_client(无法识别时为
unknown),以及 request_source。
这些标识符由调用方自行报告,并非经过验证的应用身份;复制的技能以及未提供这些标头的调用方无法被可靠归因。历史上的通用 API 事件无法追溯归属到具体应用。
引擎会保留所有现有的、未缓存的应用、MCP 和具名 Agent
search_performed 事件。只有明确来自 API 且 Agent 未知的请求会被采样:每个引擎进程在单调时钟的每个 60 秒窗口内,每种空结果/非空结果以及已解析/普通结果分别记录首个事件(每个窗口最多四个事件;此外,在 UTC 午夜后,每个类别还会记录首个事件,以保留每日活动记录)。空的后台轮询不会占用成功结果的名额,API 流量也不会占用应用、MCP 或具名 Agent 的名额。
采样事件包含 telemetry_sampling: "first_per_interval_per_result_kind"
和 telemetry_sample_interval_seconds: 60;未采样事件包含 "none"
和 0。采样事件用于检测是否存在活动,而非精确的搜索计数,也不是对查询属性进行的无偏采样。其计数和属性明细不可与早期版本的数据进行比较。api_usage_5min.request_count 仍会统计所有路由的 API 流量总量,而 qualified_value_event 仍沿用现有的成功检索路径,包括缓存搜索。缓存命中不会新增事件。健康状态/资源遥测和本地监控仍保持现有频率。
资源事件还会报告自上次尝试上报以来本地采样数据的
telemetry_window_samples、
window_cpu_percent_mean、window_cpu_percent_max、window_memory_gb_mean、
window_memory_gb_max 和 window_phys_footprint_gb_max。这些数据补充现有的时点属性。聚合窗口均值时,应根据各自的样本数加权。传输仍尽力而为;这些摘要并非持久化的样本存档。
降低成本时必须保留成功检索计数和相对于同类群体的留存时间窗口。今后若降低诊断频率,必须提供经过验证的替代方案,涵盖故障时间线、短会话覆盖率和资源峰值,并处理关机和投递失败的情况。本次更改不会减少 PostHog 事件量,也不声称能够节省账单费用。
归因会在现有事件中添加字段,并沿用现有的分析停用设置。它不会扫描正在运行的应用,也不会发送提示词、搜索文本或原始客户端名称。HTTP MCP 现在会像 stdio MCP 一样,通过同一个尽力而为的本地遥测端点报告成功搜索;空结果/失败搜索不会生成合格价值事件。
调用诊断与来源引用
新版引擎接受 POST /internal/telemetry/mcp-call,其使用与其他私有 MCP 遥测相同的本地 API 身份验证和分析授权边界。mcp_tool_call_completed 会为每次已完成的分发器调用记录一条尽力而为的观测数据:架构版本、随机请求 ID、软件包版本、固定的客户端/工具/传输名称、ok/empty/error、标准化错误类别、耗时、内容字节数、可选的搜索数量/截断信息,以及已知的报告丢失情况。不会包含参数、结果文本、错误字符串或原始客户端名称。现有的 qualified_value_event 定义保持不变。
ok 表示分发器返回时没有协议/工具错误;这并不表示答案正确,也不表示用户完成了任务。只有搜索会设置 result_count 和 truncated;其他工具中缺失的字段仍表示未知。response_bytes 统计 UTF-8 文本和 base64 内容字节数,不包括序列化后 JSON 的总字节数或模型 token 数。耗时包含工具执行时间,不包括报告传送时间。
请求 ID 会通过 _meta["screenpipe/request_id"] 返回,并以 x-screenpipe-request-id 转发到本地 API。它是单次调用的关联键,不是用户、会话或任务 ID。此更改不会为该标头新增引擎日志持久化。本地辅助程序会向引擎报告,由引擎执行遥测退出选择。SCREENPIPE_DISABLE_TELEMETRY 和 SCREENPIPE_TELEMETRY_DISABLED 也会阻止调用报告;CI 默认会阻止报告。每个报告器最多可有 8 个待处理请求,超时为 1 秒。旧版引擎、退出选择、后端中断和进程退出都可能导致报告丢失。dropped_reports 会在后续传送中报告已知的本地丢失情况,但不代表完整的观测覆盖率。
屏幕/音频/输入搜索结果会保留后端来源标识符和深层链接。两种软件包传输方式默认都会将每条命中的文本限制在 1,000 个字符;max_content_length=0 表示请求获取指定范围的完整文本。此限制不包括元数据、标签和图像,因此调用方还应限制结果数量。最后一页不会建议使用下一个偏移量。在 stdio 中,将返回的 frame_id 传给 frame-context 或 get-frame-elements,即可检查片段以外的证据。HTTP 客户端可以打开返回的 Screenpipe 链接,或执行范围更窄的搜索。缺失的来源 ID 会保持缺失。
| 软件包功能 | stdio | HTTP |
|---|---|---|
| 搜索并返回来源引用,限制文本长度 | search-content | search_content |
| 捆绑指南 | screenpipe-skills | screenpipe-skills |
| 帧检查和已保存的工作流 | 可用 | 未提供 |
| 企业团队工具 | 需配置团队 | 未提供 |
| 调用诊断 | 尽力而为 | 尽力而为,按会话统计 |
本文描述的是此软件包,而非单独托管的个人版或企业版 MCP 服务。stdin EOF 后,卡住的后端读取不再导致 stdio 辅助程序持续运行:关闭等待时间上限为 500 ms,且仅影响该客户端的进程。此功能不会诊断桌面录制状态,也不会结束其他客户端的进程。
可安装插件
从源代码构建本地 Claude Desktop 扩展和云端插件:
cd packages/screenpipe-mcp
bun install --frozen-lockfile
bun run build:installers
installers/screenpipe-local.mcpb:在 Claude Desktop 的扩展安装器中打开。 包含服务及其依赖项;Node 由 Claude 提供。请保持 Screenpipe 运行。 包含可选的敏感 API 密钥设置和 API URL 设置。installers/screenpipe-cloud.zip:可移植的远程插件,兼容 OpenAI/Codex 和 Claude 清单。需要 Data Sync 和 OAuth 登录;仅提供已同步设备列表和搜索功能。 请参阅云端设置指南。installers/SUBMISSION.md:用于提交到目录的条目文案、端点、权限指南和验收案例。 构建不会发布条目。
归档构建器使用明确的文件允许列表,因此不会打包本地环境文件、凭据、开发依赖项和源代码测试。
安装
选项 1:screenpipe 桌面应用(推荐)
最可靠的设置方式是安装 screenpipe 桌面应用,然后在 Claude Desktop 的设置 → 连接中连接(也可在引导期间连接)。 这会写入一份配置,该配置:
- 使用应用随附的**
bun**(绝对路径——不依赖 Node/npx或PATH,冷启动速度约快 3 倍);并且 - 将你的
SCREENPIPE_LOCAL_API_KEY注入服务的env,让 MCP 立即完成身份验证,而不是在启动时缓慢发现密钥。
这两点都很重要:没有密钥的配置会迫使服务通过子进程回退方式发现密钥;在软件包缓存为空时,这可能会卡住 Claude Desktop 的 MCP 启动,并显示 Could not attach to MCP server screenpipe。
选项 2:手动使用 NPX(不使用桌面应用)
如果你不使用桌面应用,请编辑 Claude Desktop 配置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%AppData%\Claude\claude_desktop_config.json
{
"mcpServers": {
"screenpipe": {
"command": "npx",
"args": ["-y", "screenpipe-mcp@latest"],
"env": {
"SCREENPIPE_LOCAL_API_KEY": "sp-…"
}
}
}
}
需要在 PATH 中安装 Node/npx。请固定使用 @latest,以免首次安装后一直缓存旧版本。使用 screenpipe auth token 获取密钥。如果省略密钥,服务将尝试通过随附的 Screenpipe CLI,然后通过 npx 来发现密钥。它不会直接打开实时 SQLite 数据库。首次运行时,发现密钥可能较慢,因此仍建议设置环境变量。
企业管理员:在同一个 env 区块中添加 SCREENPIPE_ENTERPRISE_TOKEN(如果组织运行自己的查询网关,还需添加 SCREENPIPE_TEAM_API_URL),即可使用 team-* 工具——请参阅企业团队工具。
选项 3:HTTP 服务(远程/网络访问)
MCP 服务可以使用 Streamable HTTP 传输通过 HTTP 运行,让远程 MCP 客户端通过网络连接,而不是使用 stdio。当你的 AI 助手(例如 OpenClaw)运行在与 screenpipe 不同的机器上时,这种方式非常适合。
# loopback only (default)
npx -y screenpipe-mcp --http --port 3031
# expose to your LAN with bearer auth
npx -y screenpipe-mcp --http --listen-on-lan --api-key $(openssl rand -hex 16)
# or from source — must build first so dist/ exists
bun install && bun run build
bun run start:http -- --port 3031
提示:
npx screenpipe-mcp-http(不带--http)无法运行—— npm 会按包名解析,但并不存在screenpipe-mcp-http这个包。HTTP 服务作为一种传输方式包含在screenpipe-mcp包中;请按上面所示使用--http,或直接通过npx -p screenpipe-mcp screenpipe-mcp-http调用可执行文件。
服务提供:
- MCP 端点:
http://localhost:3031/mcp— Streamable HTTP 传输(使用 POST 发送请求,使用 GET 获取 SSE 流) - 运行状况检查:
http://localhost:3031/health— 始终无需身份验证,供监控程序使用
选项:
| 标志 | 说明 | 默认值 |
|---|---|---|
--port | MCP HTTP 服务的端口 | 3031 |
--screenpipe-port | screenpipe API 运行的端口 | 3030 |
--listen-on-lan | 绑定到 0.0.0.0,以便 LAN 上的其他设备连接。需要 --api-key。 | 关闭(绑定到 127.0.0.1) |
--api-key <secret> | 非环回请求所需的 Bearer 令牌(Authorization: Bearer <secret>)。始终允许环回请求。 | 无 |
当 Screenpipe API 需要身份验证时,请在 HTTP 服务的环境中设置 SCREENPIPE_LOCAL_API_KEY
(SCREENPIPE_API_KEY 是备用变量)。使用 screenpipe auth token 获取该密钥,并勿将其放入客户端配置或聊天内容中。服务会使用此密钥发送上游 API 请求,包括检索遥测数据。--api-key 是供连接 MCP 的调用方使用的独立凭据;它绝不会转发给 Screenpipe API。
SCREENPIPE_LOCAL_API_KEY="$(screenpipe auth token)" npx -y screenpipe-mcp --http
连接远程 MCP 客户端:
将支持 HTTP 传输的任意 MCP 客户端指向 /mcp 端点:
{
"mcpServers": {
"screenpipe": {
"url": "http://<your-ip>:3031/mcp",
"headers": {
"Authorization": "Bearer <your-secret>"
}
}
}
}
如果你的机器位于不同的网络中,可以通过 Tailscale、SSH 隧道或类似方式开放端口 3031 — 详细示例请参阅 OpenClaw 集成指南。
注意: HTTP 服务目前仅提供
search_content。stdio 服务提供完整的工具集(export-video、list-meetings、activity-summary、search-elements、frame-context)。我们正在努力让 HTTP 版本提供完整的功能。
选项 4:从源代码构建
克隆并从源代码构建:
git clone https://github.com/screenpipe/screenpipe
cd screenpipe/packages/screenpipe-mcp
bun install
bun run build
然后配置 Claude Desktop:
{
"mcpServers": {
"screenpipe": {
"command": "node",
"args": ["/absolute/path/to/screenpipe-mcp/dist/index.js"]
}
}
}
注意: 更改后请重启 Claude Desktop。
企业团队工具(team-*)
team-search、team-devices、team-records 和 team-frame 会查询整个
组织,而不仅仅是这台机器。仅当存在企业管理员令牌时才会注册这些工具,
并且需要设置两项相互独立的内容:令牌,以及该令牌适用的 API 基础 URL。
1. 令牌
sk_ent_… 企业管理员令牌,按以下顺序获取:
SCREENPIPE_ENTERPRISE_TOKEN环境变量(MCP 配置、终端)~/.screenpipe/enterprise.json中的team_api_token— 由桌面应用的 设置 → 隐私 → 管理员团队 API 令牌写入
没有令牌 → 完全不会显示 team-* 工具。
MCP 会在每次团队请求时重新读取 enterprise.json,因此替换或清除
已保存的令牌后无需重启即可生效。显式设置的
SCREENPIPE_ENTERPRISE_TOKEN 仍具有优先权。如果该覆盖令牌过期,
请替换它,或将其移除以使用桌面应用保存的令牌,然后重启
MCP 服务以重新加载其环境变量。
2. 基础 URL
| 优先级 | 位置 | 示例 |
|---|---|---|
| 1 | --team-api-url 标志 | npx -y screenpipe-mcp --team-api-url https://sp-gw.acme.internal/api/enterprise/v1 |
| 2 | SCREENPIPE_TEAM_API_URL 环境变量 | SCREENPIPE_TEAM_API_URL=https://sp-gw.acme.internal/api/enterprise/v1 |
| 3 | ~/.screenpipe/enterprise.json 中的 gateway_url | { "gateway_url": "https://sp-gw.acme.internal/api/enterprise/v1" } |
| 4 | (默认) 托管控制平面 | https://screenpi.pe/api/enterprise/v1 |
末尾的斜杠会被移除,因此 …/v1 和 …/v1/ 都可以使用。
如果贵组织运行自己的查询网关,则必须设置此项。 在只写归档层中,遥测数据永远不会到达托管 API,而是存入您自己的对象存储,并由您网络内的网关提供服务。托管 API 无法读取这些数据,因此若保留默认值,每次 team-* 调用都会失败并返回 HTTP 401,即使工具已显示且令牌有效也是如此。无论哪种情况,Bearer 令牌都相同;只有基础 URL 会改变。
使用网关的组织所需的完整 Claude Desktop 配置:
{
"mcpServers": {
"screenpipe": {
"command": "npx",
"args": ["-y", "screenpipe-mcp@latest"],
"env": {
"SCREENPIPE_LOCAL_API_KEY": "sp-…",
"SCREENPIPE_ENTERPRISE_TOKEN": "sk_ent_…",
"SCREENPIPE_TEAM_API_URL": "https://sp-gw.acme.internal/api/enterprise/v1"
}
}
}
}
询问 team-devices,即可确认运行中的服务使用了哪个基础 URL;如果缺少令牌,错误文本也会显示当前使用的基础 URL。
已知限制
- 需要
screenpipe-mcp>= 0.19.0。0.18.15及更早版本会将托管基础 URL 写死,完全无法改为使用网关。可通过npm view screenpipe-mcp version检查,或读取 MCPinitialize响应中的serverInfo.version。 - 优先级 3 由桌面应用填充,该应用会根据组织的策略轮询结果写入
gateway_url。这要求有管理员在该设备上登录;在服务器或 CI 机器上,请使用环境变量或标志。 - HTTP 传输(
--http)仅提供search_content;team-*工具仅支持 stdio。 .mcpb捆绑包(Claude Desktop 扩展安装)没有用于设置这些变量的界面;使用网关的组织请使用上述手动 NPX 配置。
测试
使用 MCP Inspector 进行测试:
npx @modelcontextprotocol/inspector npx screenpipe-mcp
传输模式
| 模式 | 命令 | 使用场景 |
|---|---|---|
| stdio(默认) | npx screenpipe-mcp | Claude Desktop、本地 MCP 客户端 |
| HTTP | npx screenpipe-mcp --http | 远程客户端、网络访问、VPS 上的 OpenClaw |
可用工具
search-content
按内容类型筛选已录制内容:
all— OCR + 音频 + 辅助功能(默认)ocr— 截图中的屏幕文本audio— 音频转录文本input— 用户操作(点击、按键、剪贴板、应用切换)accessibility— 辅助功能树文本parsed— 精简的应用专属消息、电子邮件、任务、文档和代码审查(实验性;解析被禁用或不受支持时可能为空)- 按时间范围、应用/窗口和说话者筛选
- 解析后的数据也可按
frame_id或已解析的actor_id筛选 - 支持分页
export-video
将屏幕录制内容导出为视频文件:
- 指定开始和结束时间来设置时间范围
- 可配置输出视频的 FPS
activity-summary
获取指定时间范围内的精简活动概览:
- 权威的总活跃分钟数和服务器数据状态
- 各应用活跃分钟数,以及有数量上限的窗口/标签页明细
- 已编辑的文档路径,以及用于识别任务的可选、有数量上限的解析上下文样本
- 最近的辅助功能文本和音频上下文
使用活跃分钟数字段表示时长。已编辑路径、解析行、帧、文本和音频样本仅提供辅助上下文;其数量不代表时间。 解析捕获功能为实验性功能,可能被禁用或不受支持;即使没有该功能,基本活动摘要仍然完整。
list-meetings
列出检测到的会议及其 ID、时长、应用、参会者和笔记片段。传入 q 可按子字符串筛选(标题、参会者、笔记)——q 会搜索所有会议记录,因此查找人物或主题时,请省略时间范围。后续可使用 get-meeting(可选传入 include_transcript: true)获取完整笔记和带发言者标注的转录文本。
search-elements
搜索结构化 UI 元素(无障碍树节点和 OCR 文本块):
- 按来源、角色、应用、时间范围筛选
- 针对性查找 UI 时,比 search-content 轻量得多
- 默认返回紧凑的
outline视图——对含文本节点构成的去重缩进树(包含#id引用和(off-screen)标记),与原始元素 JSON 相比,令牌数减少约 91% - 传入
purpose: "automation",获取自动化定位上下文,其中包含响应内引用、尽力保持稳定的键、状态、边界框和允许的操作。每次操作前都要刷新;历史数据库 ID 不是实时控件句柄。computer-use仍是旧版别名。 - 如果省略
purpose,MCP 会遵循桌面端的AI context use设置。向后兼容的默认值仍是读取/记忆大纲。
get-frame-elements
获取单个画面的完整元素树,格式与紧凑大纲相同。传入
purpose: "automation" 可获取自动化定位视图。
frame-context
获取指定画面的无障碍文本、解析后的树节点和提取出的 URL。
keyword-search
跨 OCR 和音频内容执行快速 FTS5 关键词搜索。返回匹配项及其 frame_id、应用、时间戳和文本位置。
list-meetings / get-meeting / update-meeting / start-meeting / stop-meeting
管理会议存储。list-meetings 按子字符串筛选;get-meeting 返回标题、参会者、时间和完整笔记(添加 include_transcript: true 可获取带发言者标注的转录文本)。update-meeting 只写入你传入的字段。start-meeting 和 stop-meeting 用于启动和停止手动会议录制会话。
search-speakers / list-unnamed-speakers / update-speaker / merge-speakers
发言者识别工作流。按姓名前缀搜索、列出尚未命名的发言者、重命名发言者,或合并被识别为不同对象的同一人物。
add-tags
为屏幕画面(视觉)或音频片段(音频)添加标签,以便日后检索。
update-memory
创建、更新或删除持久记忆(用户希望记住的事实、偏好和决定)。
send-notification
向 screenpipe 桌面 UI 发送通知。
control-recording
开始或停止音频录制。此操作不会暂停或恢复屏幕捕获。
health-check
检查 screenpipe 是否正在运行且状态正常。返回录制状态、画面/音频统计数据和时间戳。
list-audio-devices
列出可用于录制的音频输入/输出设备。
list-monitors
列出可用于捕获的显示器/屏幕。
list-pipes / create-pipe / run-pipe / pipe-logs
管理 pipe——按计划运行 Markdown 提示词的定时 AI 自动化(例如“每天上午 9 点”)。list-pipes 显示启用状态和计划;create-pipe 创建 pipe;run-pipe 触发一次性测试运行;pipe-logs 获取近期执行输出。
team-search / team-devices / team-records / team-frame
团队版工具,仅在配置了企业管理员令牌时注册。team-search 会在整个组织的遥测数据中按子字符串搜索;team-devices 列出已注册设备(主机名、操作系统);team-records 导出指定时间范围内按时间顺序排列的画面、已解析的应用或音频数据;team-frame 使用来自搜索或记录结果的 ID,返回一张经过 PII 脱敏且边界受限的 JPEG。自行运行查询网关的组织还必须设置 SCREENPIPE_TEAM_API_URL——完整的优先级顺序请参阅 企业团队工具。
Claude 中的示例查询
- “搜索我的屏幕录制中所有提到‘rust’的内容”
- “查找过去一小时的音频转录”
- “显示我昨天在 VSCode 中的屏幕内容”
- “导出今天下午 2-3 点的屏幕视频”
- “查找 John 在我们的会议中关于数据库说了什么”
- “我今天在 Slack 中输入了什么?”(使用 content_type=input)
- “我最近复制到剪贴板的内容是什么?”(使用 content_type=input)
- “显示 Chrome 中的无障碍文本”(使用 content_type=accessibility)
要求
- screenpipe 必须在 localhost:3030 上运行
- Node.js >= 18.0.0
注意事项
- 所有时间戳均采用 UTC
- 结果会格式化,以便在 Claude 界面中阅读
- macOS 自动化功能需要无障碍权限
- MCP 工具会返回精简易读的文本(元素工具遵循桌面采集配置文件,除非调用方设置了用途)。如果改为直接调用底层的 screenpipe REST API(例如通过
curl),列表端点(/search、/elements、/frames/{id}/elements)支持使用?format=csv|tsv返回列式表格(列名只写一次),并支持使用?fields=a,b,c仅选择所需列(支持content.text等带点号的路径);元素端点还支持使用?format=outline(与 JSON 相比,令牌数约减少 91%)或?format=automation,以获取最新的引用、尽力解析的按键、操作、状态和边界。在列表形式的结果中,与默认 JSON 相比,令牌数可减少 70–91%;未设置参数时,默认 JSON 保持不变。
隐私政策
Screenpipe MCP 服务是 Claude 与你本地 Screenpipe 实例之间的本地专用桥接服务。它本身不会收集、传输或存储工具结果、录制内容、OCR 文本、音频转录、屏幕截图或 UI 事件。
此 MCP 服务的功能
Claude 调用工具(search-content、activity-summary 等)时,MCP 服务会将请求转发到 http://localhost:3030——也就是运行在你机器上的 Screenpipe 守护进程——并返回响应。
这就是完整的数据流。
数据收集
MCP 服务会向 Screenpipe 的 Sentry 项目发送保护隐私的崩溃和错误报告,以便我们诊断“服务器已断开连接”或“无法连接到 MCP 服务”等启动故障。这些报告包含 MCP 软件包版本、运行时、传输模式和经过清理的异常详细信息。报告不包含工具参数、工具结果、屏幕内容、音频、转录、屏幕截图、API 令牌或你的主目录路径。
若要禁用崩溃/错误报告,请在 MCP 启动环境中设置以下任意一项:
SCREENPIPE_MCP_SENTRY_DISABLED=1、SCREENPIPE_TELEMETRY_DISABLED=1 或
SCREENPIPE_DISABLE_TELEMETRY=1。
数据使用
工具调用会直接传递给本地 Screenpipe 守护进程,结果则会传回 Claude。MCP 服务不会保留任何内容。数据库访问仅由 Screenpipe 守护进程和第一方 CLI 处理,它们负责管理 SQLite 的生命周期和锁定;MCP 服务绝不会打开、复制或修改正在使用的数据库、WAL 或共享内存文件。请使用 query_recordings 等 MCP 工具进行 SQL 格式的分析。
数据存储
MCP 服务本身不会存储任何内容。录制内容、OCR 文本、音频转录和 UI 事件由 Screenpipe 应用存储在设备上 ~/.screenpipe/ 下的 SQLite 数据库中。数据保留方式由你在 Screenpipe 应用中配置,通常可通过存储设置面板进行控制。
与第三方共享
MCP 服务会通过 localhost:3030 处理工具调用,并向 Screenpipe 的 Sentry 项目发送经过清理的崩溃/错误报告,除非你按上述方式禁用报告。
它不会联系 Anthropic,也不会将录制内容发送到 Screenpipe 的服务器。
如果你选择在 Screenpipe 应用中启用可选的云功能(例如云同步、云端 AI),这些功能受 Screenpipe 应用的隐私政策约束,而非本 MCP 服务的数据流。
保留
MCP 服务没有持久状态。Screenpipe 应用捕获的数据
会根据 Screenpipe 存储配置保留,
并可随时删除(rm -rf ~/.screenpipe 会移除所有内容)。
源代码
Screenpipe MCP 服务依据 Screenpipe 商业许可证提供源代码,完整源代码公开于 https://github.com/screenpipe/screenpipe/tree/main/packages/screenpipe-mcp。 每一行代码都可审查。
联系方式
如有疑问或顾虑:请在 https://github.com/screenpipe/screenpipe/issues 提交问题,或通过 https://screenpi.pe 联系我们。
已保存的个人工作流
list-workflows 会搜索桌面端工作流目录;get-workflow 会通过同一经过身份验证的 API 返回
有序步骤、间隔以及历史可访问性证据。这两个工具在 stdio 模式下均可用。该软件包的 HTTP 模式提供
search_content 和 screenpipe-skills;不提供工作流工具。正在运行的桌面引擎必须支持 /workflows;
较旧的引擎会返回错误。
已连接的客户端可利用此上下文规划自动化,但检索既不会授权也不会执行操作。捕获的边界/ID
必须在实时应用中重新解析。缺失或过期的捕获以及近似帧匹配都会明确标示。
不会因此自动上传到 ChatGPT、Claude 或其他服务。
API 在 OpenAPI 中提供 GET /workflows?q=...&limit=20&offset=0 和
GET /workflows/{id}?include_automation=true。工作流 ID 根据标题、触发条件和结果生成,因此重命名后需重新查找。结果不包含嵌入的
屏幕截图字节。详情最多包含 30 个阶段,以及每帧 100 个上下文节点,
并会明确标示截断情况。frame-context 配合 purpose="automation"、
node_offset 和 node_limit(最大值为 500)可获取更多节点,同时保留
角色、标准化的显示器边界、自动化 ID、状态和结构祖先。
默认阅读模式保持不变。get-frame-elements 配合 purpose="automation" 仍是简洁的目标定位视图。
工作流的帧 ID 和时间戳必须与当前记录器匹配,才能填充节点。缺失、过期或不匹配的帧仍会明确标示。历史控件并不能证明它曾被点击:在 Agent 根据当前上下文和用户指示确认目标之前, 操作目标仍属未知。
API 使用桌面所有者配置的应用本地 workflows/catalog.json
及其经过验证的备份,而不会猜测其他安装的路径。
未配置或无法读取存储时会返回 503。现有的身份验证、保险库锁定和历史记录访问规则均适用。对数据范围受限或经过隐私筛选的管道会拒绝请求,
而不会向其提供未筛选的合成报告;填充无障碍节点时,明确的帧端点拒绝规则也同样适用。
Desktop catalog -> authenticated /workflows -> MCP list-workflows / get-workflow
|
+-> existing frame metadata/context APIs
+-> bundled API skill and generated skill references
每个阶段还可以返回 inputSearch 参数,以便与 search-content 配合使用,其中
content_type="input"。输入结果会保留记录的 x/y、按键/修饰键、
元素角色/名称和关联帧 ID。应将有界时间窗口视为待核实的候选事件,而非工作流操作的自动证明。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。