screenpipe について
screenpipe の MCP サーバーは、MCP クライアントからローカルの画面録画、音声文字起こし、コンピューター操作履歴を検索し、コンピューターを操作できるようにします。stdio と Streamable HTTP に対応し、検索結果のソース識別子とディープリンクを保持します。
主な機能
- 01画面・音声・入力の記録を検索
- 02コンピューターを操作
- 03stdio または HTTP で提供
- 04検索結果のソースとディープリンクを保持
- 05必要に応じてフレームと要素を確認
- 06検索結果のテキスト長を制限
活用シーン
- 01画面録画から内容を検索
- 02音声文字起こしや操作履歴を探す
- 03リモートクライアントから screenpipe を検索
- 04検索結果に対応するフレームを確認
MCP 対応
検索、フレーム検査、保存済みワークフローを MCP クライアントに公開し、設定時にはエンタープライズ向けチームツールも提供します。stdio または Streamable HTTP で接続でき、HTTP ではリモート接続にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
33掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | いいえ | タイトル、説明、トリガー、成果を絞り込みます |
| limit | integer | いいえ | |
| offset | integer | いいえ |
詳細
Screenpipe MCP Server
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 にも、request_source とともに
固定の agent_client(識別できない場合は unknown)が含まれるようになりました。
これらは自己申告の識別子であり、アプリの本人確認を行うものではありません。コピーされたスキルや
ヘッダーを省略する呼び出し元は、確実に帰属先を特定できません。過去の汎用 API イベントに
アプリを遡って割り当てることはできません。
エンジンは、キャッシュされていないアプリ、MCP、名前付きエージェントの既存の
search_performed イベントをすべて保持します。サンプリングされるのは、エージェントが不明な
API 起点のリクエストだけです。エンジンプロセスごとに、60 秒の単調増加時間ウィンドウ内で、
空/空でない結果と解析済み/通常の結果の各組み合わせについて最初のイベントをサンプリングします
(1 ウィンドウあたり最大 4 件です。さらに、日次アクティビティを維持するため、UTC の午前 0 時以降、
各カテゴリで最初のイベントも記録します)。バックグラウンドでの空のポーリングによって、
成功結果用の枠が消費されることはありません。また、API トラフィックがアプリ、MCP、
名前付きエージェント用の枠を消費することもありません。
サンプリングされたイベントには 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 と同じベストエフォートのローカルテレメトリエンドポイントを通じて 検索成功を報告します。検索が空の場合や失敗した場合、価値のあるイベントは生成されません。
呼び出し診断とソース参照
新しいエンジンビルドでは、ほかのプライベート MCP テレメトリと同じローカル API 認証および分析への同意境界を通じて、POST /internal/telemetry/mcp-call を受け付けます。mcp_tool_call_completed は、完了したディスパッチャー呼び出しごとに、ベストエフォートで 1 件の観測を記録します。記録項目は、スキーマバージョン、ランダムなリクエスト ID、パッケージバージョン、固定のクライアント名/ツール名/トランスポート名、ok/empty/error、正規化されたエラーカテゴリ、処理時間、コンテンツのバイト数、任意の検索件数/切り詰め情報、および判明しているレポートの欠落数です。引数、結果テキスト、エラー文字列、未加工のクライアント名は含まれません。既存の qualified_value_event の定義は変更されません。
ok は、ディスパッチャーがプロトコルエラーやツールエラーなしで戻ったことを意味します。回答が正しかったことや、ユーザーがタスクを完了したことを意味するものではありません。result_count と truncated を設定するのは検索のみです。ほかのツールでこれらのフィールドがない場合、値は不明です。response_bytes は UTF-8 テキストと base64 コンテンツのバイト数を数え、シリアライズされた JSON 全体やモデルのトークン数は数えません。処理時間にはツールの実行が含まれ、レポートの配信は含まれません。
リクエスト ID は _meta["screenpipe/request_id"] で返され、x-screenpipe-request-id としてローカル API に転送されます。これは 1 回の呼び出しの相関キーであり、ユーザー ID、セッション ID、タスク 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 デスクトップアプリを インストールし、Settings → Connections(またはオンボーディング中)から 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 データベースを
直接開くことはありません。初回起動時は検出に時間がかかる場合があるため、環境変数を設定することを
引き続き推奨します。
エンタープライズ管理者:team-* ツールを使用するには、同じ env ブロックに
SCREENPIPE_ENTERPRISE_TOKEN(組織独自のクエリゲートウェイを運用している場合は
SCREENPIPE_TEAM_API_URL も)を追加してください。
エンタープライズのチームツールをご覧ください。
オプション 3:HTTP サーバー(リモート/ネットワークアクセス)
MCP サーバーは、Streamable HTTP transport を使って HTTP 経由で実行できます。これにより、AI アシスタント(例:OpenClaw)が screenpipe とは別のマシンで動作している場合でも、リモートの MCP クライアントが stdio ではなくネットワーク経由で接続できます。
# 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で bin を直接呼び出してください。
サーバーは以下を公開します。
- MCP エンドポイント:
http://localhost:3031/mcp— Streamable HTTP transport(リクエストには POST、SSE ストリームには GET) - ヘルスチェック:
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 transport に対応する任意の 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 は、このマシンだけでなく、組織全体を対象にクエリを実行します。これらのツールは、エンタープライズ管理者トークンがある場合にのみ登録され、互いに独立した2 つの設定、すなわちトークンと、そのトークンが有効な 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 で失敗します。どちらの場合もベアラートークンは同じで、変わるのはベース 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"
}
}
}
}
実行中のサーバーがどのベース URL を読み込んだか確認するには、team-devices を要求してください。トークンがない場合のエラーテキストにも、現在使用中のベース URL が表示されます。
既知の制限事項
screenpipe-mcp>= 0.19.0 が必要です。0.18.15以前のバージョンはホスト型ベース URL がハードコードされており、ゲートウェイを指定できません。npm view screenpipe-mcp versionで確認するか、MCP のinitialize応答からserverInfo.versionを読み取ってください。- 優先度 3 の値はデスクトップアプリによって設定されます。デスクトップアプリは、組織のポリシーをポーリングして
gateway_urlを書き込みます。そのマシンで管理者がサインインしている必要があります。サーバーや CI マシンでは、環境変数またはフラグを使用してください。 - HTTP トランスポート(
--http)で公開されるのはsearch_contentのみです。team-*ツールは stdio 専用です。 .mcpbバンドル(Claude Desktop 拡張機能のインストール)には、これらの変数を設定する UI がありません。ゲートウェイを使用する組織では、上記の手動 NPX 設定を使用してください。
テスト
MCP Inspector でテストします。
npx @modelcontextprotocol/inspector npx screenpipe-mcp
利用可能なツール
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
1 つのフレームの要素ツリー全体を、同じコンパクトなアウトライン形式で取得します。自動化のターゲット設定ビューを取得するには、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
話者識別ワークフローです。名前のプレフィックスで検索する、まだ名前が付けられていない話者を一覧表示する、話者の名前を変更する、または同一人物が別人として検出された場合に 2 人の話者を統合します。
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
パイプを管理します。パイプは、スケジュールに従って Markdown プロンプトを実行する AI 自動化機能です(例:「毎日午前 9 時」)。list-pipes は有効状態とスケジュールを表示し、create-pipe はパイプを作成し、run-pipe は単発のテスト実行を開始し、pipe-logs は最近の実行出力を取得します。
team-search / team-devices / team-records / team-frame
エンタープライズ管理者のトークンが設定されている場合にのみ登録される、チーム向けプランのツールです。team-search は組織全体のテレメトリを対象に部分一致検索を実行し、team-devices は登録済みデバイス(ホスト名、OS)を一覧表示し、team-records は時間範囲内のフレーム、解析済みアプリ、または音声データを時系列で出力し、team-frame は検索またはレコードの ID を使って、範囲が限定され、PII が除去された JPEG を 1 枚返します。独自のクエリゲートウェイを運用する組織では、SCREENPIPE_TEAM_API_URL も設定する必要があります。優先順位の詳細については、エンタープライズ向けチームツールを参照してください。
Claude でのクエリ例
- 「画面録画内で『rust』に言及している箇所を検索してください」
- 「過去1時間の音声文字起こしを見つけてください」
- 「昨日、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 サーバーは、起動時の「server disconnected」や「could not attach to MCP server」などの失敗を診断できるよう、プライバシーに配慮したクラッシュレポートとエラーレポートを Screenpipe の Sentry プロジェクトに送信します。これらのレポートには、MCP パッケージのバージョン、ランタイム、トランスポートモード、サニタイズされた例外の詳細が含まれます。ツールの引数、ツールの結果、画面のコンテンツ、音声、文字起こし、スクリーンショット、API トークン、ホームディレクトリのパスは含まれません。
クラッシュ/エラーレポートを無効にするには、MCP の起動環境で次のいずれかを設定してください。
SCREENPIPE_MCP_SENTRY_DISABLED=1、SCREENPIPE_TELEMETRY_DISABLED=1、または
SCREENPIPE_DISABLE_TELEMETRY=1。
データの使用
ツール呼び出しはローカルの Screenpipe デーモンにそのまま渡され、結果は Claude にストリーミングで返されます。MCP サーバーは何も保持しません。データベースへのアクセスは、SQLite のライフサイクルとロックを管理する Screenpipe デーモンおよびファーストパーティの CLI 内にとどまります。MCP サーバーが稼働中のデータベース、WAL、共有メモリファイルを開いたり、コピーしたり、変更したりすることはありません。SQL 形式の分析には、query_recordings などの MCP ツールを使用してください。
データの保存
MCP サーバー自体は何も保存しません。録画、OCR テキスト、音声文字起こし、UI イベントは、デバイス上の ~/.screenpipe/ にある SQLite データベースに Screenpipe アプリが保存します。データ保持の設定は Screenpipe アプリ内で指定した内容に従います。通常は、ストレージ設定パネルで管理できます。
第三者との共有
MCP サーバーは、ツール呼び出しでは localhost:3030 と通信し、上記のように無効にしない限り、サニタイズされたクラッシュ/エラーレポートの送信先として Screenpipe の Sentry プロジェクトと通信します。Anthropic に接続したり、録画コンテンツを Screenpipe のサーバーに送信したりすることはありません。Screenpipe アプリ内で任意のクラウド機能(例:クラウド同期、クラウド AI)を有効にした場合、それらにはこの MCP サーバーのデータフローではなく、Screenpipe アプリのプライバシーポリシーが適用されます。
保持期間
MCP サーバーには永続的な状態はありません。Screenpipe アプリが
キャプチャするデータは、Screenpipe のストレージ設定に従って保持され、
いつでも削除できます(rm -rf ~/.screenpipe を実行するとすべて削除されます)。
ソースコード
Screenpipe MCP サーバーは Screenpipe Commercial License のもとでソースコードが公開されており、ソースコード全体は https://github.com/screenpipe/screenpipe/tree/main/packages/screenpipe-mcp で公開されています。 すべての行を監査できます。
お問い合わせ
ご質問や懸念がある場合は、https://github.com/screenpipe/screenpipe/issues で issue を作成するか、https://screenpi.pe からお問い合わせください。
保存済みの個人用ワークフロー
list-workflows はデスクトップの 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 個のコンテキストノードが含まれ、
切り捨てが明示されます。purpose="automation"、
node_offset、node_limit(最大 500)を指定した frame-context を使うと、
ロール、正規化されたモニター境界、自動化 ID、状態、構造上の祖先を保持したまま、さらにノードを取得できます。
デフォルトの読み取りモードに変更はありません。purpose="automation" を指定した
get-frame-elements は、引き続き簡潔なターゲティング表示を提供します。
ワークフローのフレーム ID とタイムスタンプは、ノードを取得する前に現在のレコーダーと照合する必要があります。 フレームの欠落、有効期限切れ、不一致は明示的に示されます。過去のコントロール情報は、クリックされた証拠にはなりません。エージェントが現在のコンテキストとユーザーの指示に基づいて 対象を特定するまで、アクションの対象は不明のままです。
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
各ステージでは、content_type="input" を指定した search-content で使う
inputSearch 引数も返される場合があります。入力結果には、記録された x/y、キー/修飾キー、
要素のロール/名前、関連付けられたフレーム ID が保持されます。範囲を限定した時間枠は、
ワークフローのアクションの自動的な証拠ではなく、検証対象の候補イベントとして扱ってください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。