mcpField
O
oculo

oculo

ローカル
github.com/xidik12ブラウザ自動化514 週間前に更新

oculo について

oculoはMCPに対応するChromiumデスクトップブラウザーで、エージェントに実際のWebページを調査・操作させたい利用者向けです。12種類の簡潔なツールを備え、操作権限と応答内容を制御します。

主な機能

  1. 0112種類のブラウザー操作ツール
  2. 02ページ閲覧と構造化データ抽出
  3. 03複数ステップの自動化と再実行
  4. 04段階的な操作権限
  5. 05認証情報の暗号化保存と応答の秘匿化
  6. 06複数プロバイダー対応のAIチャット

活用シーン

  1. 01Webフォームの自動入力と送信
  2. 02ページ閲覧と検索結果の抽出
  3. 03ログインが必要なブラウザーワークフローの反復
  4. 04ヘッドレスモードでのブラウザー自動化

MCP 対応

oculoはHTTP MCPサーバー経由で12種類のブラウザーツールを公開し、Claude Code、Cursor、WindsurfなどのMCPクライアントが接続できます。ページが宣言するWebMCPツールの検出と呼び出しにも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"xidik12-oculo": {
"command": "npx",
"args": [
"-y",
"oculo-mcp"
]
}
}
}
起動コマンドnpx -y oculo-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmoculo-mcp0.4.2

ツール

16

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
scopestringいいえページの特定セクションに説明範囲を限定する CSS セレクター
tabIdstringいいえID で対象タブを指定します(並列実行用)。省略するとアクティブなタブが対象になります。
detailenumいいえcompact(デフォルト、約 30~80 トークン)、a11y(ref タグ付きアクセシビリティツリー、約 200~500 トークン)、または markdown(Readability による記事抽出)compact | a11y | markdown
includearrayいいえ含める内容:「forms」、「buttons」、「links」、「headings」、「text」、「images」
screenshotbooleanいいえスクリーンショットを添付(デフォルト:false)

詳細

Oculo — Claude Code、Cursor、Windsurf、あらゆる MCP クライアントからリアルタイムのウェブを見られる、オープンソースの AI ブラウザー。エージェントの実行例では、「GitHub にログインして oculo リポジトリにスターを付けて」というリクエストを、認証情報の保管庫を使ったログインと「Star」のクリックを行う 4 回の act ツール呼び出しに変換します。使用するトークンは 100 未満です。

GitHub のスター数 最新リリース Electron 34 TypeScript 5.7 React 19 MCP ツール 12 個 MIT ライセンス

ウェブサイト · ダウンロード · クイックスタート · MCP ツール · アーキテクチャ · コントリビューション


Oculo は、Model Context Protocol に対応したフル Chromium デスクトップブラウザーです。Claude Code、Cursor、Windsurf、またはあらゆる MCP クライアントを接続すれば、エージェントが実際のウェブページを見て、操作できます。12 個のコンパクトなツールを通じて、DOM の読み取り、クリック、フォーム入力、データ抽出、複数ステップのパイプライン実行を行い、1 つのフローにつき 300 トークン未満で応答します。

Cursor : VSCode :: Oculo : Chrome

動作を見る

エージェントが意図を伝えると、Oculo はそれを少数の小さなツール呼び出しに変換し、簡潔で機密情報を除去した結果を返します。数メガバイトのスクリーンショットを返すことはありません。

You: "Log into GitHub and star the oculo repo"

Claude Code calls:
  1. act({action: "navigate", url: "https://github.com/login"})
  2. act({action: "login", site: "github.com"})         # vault lookup, password never leaves the OS keychain
  3. act({action: "navigate", url: "https://github.com/xidik12/oculo"})
  4. act({action: "click", text: "Star"})

→ 4 tool calls, <100 tokens of response
You: "Fill out the contact form on example.com"

Claude Code calls:
  1. act({action: "navigate", url: "https://example.com/contact"})
  2. page()                                               # see the form structure
  3. fill({fields: {"Name": "...", "Email": "..."}, submit: true})

→ 3 tool calls
セクション:なぜ Oculo なのか — ラッパーではなくネイティブエンジン

Oculo は実際の Chromium エンジンをローカルマシンで実行し、その上にエージェントを優先した制御レイヤーを追加します。この組み合わせが Oculo の特長です。

機能
ネイティブブラウザーフル Chromium エンジン。ラッパー、拡張機能、ヘッドレススクレイパーではありません
MCP ツール 12 個page、act、fill、read、run、media、shell、tabs、research、preview、translate、lens
フローあたり 300 トークン未満デフォルトで簡潔なテキスト応答を返し、スクリーンショットベースの手法より低コストです
自己修復型自動化セレクターのキャッシュと DOM の差分検出により、繰り返しのワークフローを 44%以上高速化します
複数プロバイダー対応 AIClaude、OpenAI、Gemini、Grok、OpenClaw、Ollama を利用できる組み込みチャット
4 段階のセキュリティすべての操作に auto/notify/confirm/blocked の権限ゲートを適用します
OS キーチェーンの保管庫electron.safeStorage を使って認証情報を暗号化します(macOS Keychain/Windows DPAPI)
PII の秘匿化すべての MCP 応答から、クレジットカード番号、SSN、JWT、API キー、Bearer トークンを除去します
インジェクション対策コンテンツ境界マーカーと正規表現ベースのプロンプトインジェクション検出
19 種類のステルスパッチNavigator、WebGL、canvas、WebRTC、audio、font、battery、screen のフィンガープリント対策
ヘッドレスモードウィンドウなしで実行でき、Docker にも対応しています
クロスプラットフォームmacOS、Windows、Linux
Python SDKpip install oculo — 同期・非同期クライアント
セクション:ツールベルト — 呼び出し 1 回につき動詞 1 つ

各ツールは 1 つの処理を行い、必要最小限の結果を返します。エージェントが支払うトークンコストは、応答のサイズです。

ツール機能トークンコスト
page現在のページを説明します。見出し、フォーム、ボタン、リンクを確認できます。コンパクト、a11y(ref タグ付き)、Markdown の各モードがあります約30~80
actページ遷移、クリック、ホバー、スクロール、入力、キーの押下、Vault 経由のログイン、タブ・Cookie・プロキシ・録画の管理を行います約1行
fillラベルやプレースホルダーとの一致に基づいてフォームフィールドに入力します。送信は任意です。テキスト、セレクト、チェックボックス、contenteditable に対応します約1行
read検索結果、表、リスト、記事などの構造化データを抽出しますコンパクト
run条件分岐(page/act/fill/read/wait/if)を含む複数ステップのパイプラインを実行します。再生用にキャッシュされますヘッダー + 最後
media画像(Nano Banana 2 / DALL·E 3)または動画(Veo 3.1)を生成します。画像から画像への編集にも対応しますファイルパス
shellシェルコマンド(ls、npm、git、python、…)を非対話形式で実行しますstdout + stderr
tabs開いているすべてのブラウザータブの URL とタイトルを一覧表示しますコンパクト
research詳細なウェブ調査を行います。複数のタブを開いてページを読み、調査結果を統合します統合済み
preview現在のページから移動せずに URL を事前取得しますページの説明
translateページのコンテンツや指定したテキストを任意の言語に翻訳します翻訳済みテキスト
lensスクリーンショットと AI ビジョンを使って現在のページを視覚的に分析します説明

ボーナス: webmcp_list と webmcp_call を使うと、WebMCP プロトコル経由でページが宣言したツールを検出して呼び出せます。

セクション:仕組み — stdio から HTTP、webview まで

アーキテクチャのパイプライン:MCP クライアント(Claude Code、Cursor、Windsurf)が stdio で oculo-mcp ブリッジと通信します。ブリッジは認証済み HTTP を介してポート 19516 で Electron のメインプロセスに転送し、メインプロセスは IPC で React レンダラーに送信します。レンダラーは、ライブのウェブページを保持する webview 内で executeJavaScript を実行します。アイドル時もツールは検出可能ですが、実行には Oculo の起動が必要です。ポートとトークンは ~/.oculo-port に公開されます。

stdio ではなく HTTP を使う理由 Electron の <webview> にアクセスできるのはレンダラープロセスだけです。stdio が動作するメインプロセスからは、ページのコンテンツにアクセスできません。HTTP ブリッジは、メインプロセスからレンダラーへの IPC を介してこの境界を越えます。

ポートの検出。 起動時に Oculo は port:authtoken を ~/.oculo-port に書き込みます。bin/oculo-mcp.mjs ブリッジがこれを自動的に読み込むため、アプリを閉じていてもツール定義を検出できます。ただし、実行には Oculo の起動が必要です。

セクション:クイックスタート — クローン、実行、登録
1. インストール

リリースから最新ビルドをダウンロードするか、ソースから実行します。

git clone https://github.com/xidik12/oculo.git
cd oculo
npm install
npm run dev
2. MCP クライアントに登録する

Claude Code

claude mcp add oculo -- node ~/oculo/bin/oculo-mcp.mjs

Cursor / Windsurf — MCP 設定(.cursor/mcp.json または同等のファイル)に追加します。

{
  "mcpServers": {
    "oculo": {
      "command": "node",
      "args": ["/path/to/oculo/bin/oculo-mcp.mjs"]
    }
  }
}
3. (任意)ヘッドレスと Docker

CI/CD、スクレイピング、サーバーサイドの自動化向けに、ウィンドウを表示せずに実行します。

node bin/oculo-headless.mjs                          # convenience launcher
npx electron . --headless                            # or raw flags
npx electron . --headless --headless-auto-approve    # auto-approve CONFIRM actions
OCULO_HEADLESS=1 npm run dev                          # or via env var

docker compose up                                    # containerized headless (Xvfb)
4. (任意)Python SDK
pip install oculo
from oculo import OculoClient

client = OculoClient()                 # auto-discovers port from ~/.oculo-port
print(client.page())                   # describe the page
client.act("navigate", url="https://example.com")
client.fill({"Email": "[email protected]", "Message": "Hello!"}, submit=True)
results = client.read("search results", format="json")

同じインターフェースを持つ非同期版の AsyncOculoClient も利用できます。

セクション:セキュリティモデル — ゲート、Vault、秘匿化

すべてのアクションは権限ゲートを通過し、すべての応答はモデルに届く前に秘匿化されます。

権限レベル
レベル操作動作
Autonavigate, page, read, scroll, screenshot, back, forward, reload, hover, listTabs, switchTab, preview, translate, lens通知なしで実行します
Notifyclick, type, fill, select, press, submit, newTab, closeTab実行し、OS 通知を表示します
Confirmpayment, delete_account, change_password, send_email, download, oauth, shell, evaluate, setProxy, startRecordingネイティブダイアログでの承認が必要です
Blockedread_vault, export_cookies, export_tokens, disable_security常に拒否されます
認証情報の保管庫
  • electron.safeStorage で暗号化し、OS Keychain(macOS)/DPAPI(Windows)に保存します。
  • パスワードが IPC や MCP を通じて返されることは決してありません。公開されるのはドメインとユーザー名のみです。
  • act({action: "login", site: "github.com"}) は、モデルに認証情報を見せることなく取得して入力します。
マスキングとインジェクション対策
  • すべての MCP レスポンスは、クレジットカード番号、SSN、JWT、API キー、秘密鍵、Bearer トークンを除去するマスキング処理を通過します。
  • モデルに渡されるページコンテンツは境界マーカーで囲まれ、そのコンテンツに埋め込まれたプロンプトインジェクションの試みは、正規表現ベースの検出によってブロックされます。
ステルス(19 個のパッチ)

Navigator(webdriver、languages、plugins、mimeTypes、connection、hardwareConcurrency、deviceMemory)、window(chrome API、dimensions)、WebGL(vendor/renderer の偽装)、canvas(呼び出しごとのフィンガープリントのランダム化)、WebRTC(IP 漏えいの防止)、AudioContext、フォント列挙のブロック、Battery API、画面解像度のランダム化。

自己修復型自動化

act/fill の成功後、セレクターは安定性スコアとともにキャッシュされます。id と data-testid = 10、aria-label = 9、role+name = 8、text = 7、css = 5 です。次回の実行時は、DOM の差分を調べて次の戦略を選びます。

  • 類似度 > 80% — キャッシュから再実行し、LLM は呼び出しません。
  • 50~80% — 代替セレクターにフォールバックします。
  • < 50% — 新たな解決のため、AI に再度処理させます。

繰り返し実行するワークフローが 44% 以上高速化するのは、この仕組みによるものです。

組み込み AI チャット

Oculo には、複数のプロバイダーに直接接続するサイドパネルチャットも付属しています。

プロバイダー認証モデル
ClaudeAPI キーまたは CLI サブスクリプションOpus、Sonnet、Haiku
OpenAIAPI キーまたは Codex CLIGPT-4o、GPT-4o mini、o1、o3
GeminiAPI キー2.0 Flash、1.5 Pro、1.5 Flash
GrokAPI キーGrok 2、Grok 2 Mini
Ollamaローカル(キー不要)プル済みの任意のモデル
OpenClawAPI キーOpenClaw モデル

ソースからビルドする

npm run build          # production build
npm run dist:mac       # macOS DMG + ZIP
npm run dist:win       # Windows NSIS + portable
npm run dist:linux     # Linux AppImage + deb

npm run typecheck      # TypeScript
npm run lint           # ESLint
npm run test           # Vitest

前提条件: Node.js 20 以降、npm(ネイティブモジュールに npm が必要なため、pnpm/yarn は不可)、macOS/Windows/Linux。

プロジェクト構成
src/
  main/                    Electron main process
    ai/agent.ts            Multi-provider AI controller
    captcha/               CAPTCHA detection + solvers
    data/                  Bookmarks, downloads, history, session recording
    engine/                Page describer, extractor, form-detector, pipeline, resolver,
                           selector-cache, dom-differ, tab-manager
    mcp/server.ts          HTTP MCP server (ports 19516–19520, auth token)
    mcp/tools/             act, fill, page, read, run tool handlers
    network/proxy.ts       HTTP/SOCKS proxy manager
    security/              Vault, permissions, redactor, audit, anti-injection
  preload/index.ts         contextBridge API
  renderer/
    App.tsx                Root browser UI component
    components/            TabBar, AddressBar, ChatPanel, WebViewContainer,
                           bookmarks, downloads, find, history, layout, common
  shared/                  Types, constants, IPC channels, AI provider definitions
bin/
  oculo-mcp.mjs            stdio-to-HTTP MCP bridge (for Claude Code / Cursor)
  oculo-headless.mjs       Headless mode launcher
sdk/python/                Python SDK (pip install oculo)
Dockerfile                 Container deployment
docker-compose.yml         Docker Compose for headless mode

貢献

開発環境のセットアップ、アーキテクチャの詳細、新しい MCP ツールの追加方法については、CONTRIBUTING.md をご覧ください。

寄付

Oculo によって時間を節約できた場合は、開発をご支援いただけます — BTC: 12yRGpUfFznzZoz4yVfZKRxLSkAwbanw2B

ライセンス

MIT © 2026 Salakhitdinov Khidayotullo


Salakhitdinov Khidayotullo が開発 · getoculo.com

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。