Skip to main content
Glama

touch-browser

Terminal demo

License: MPL-2.0 Status: pilot-ready

主張を投げかけ、ページに基づいたエビデンス、判定、引用を取得しましょう。

touch-browserは、AIエージェントのためのエビデンス検証レイヤーです。単にページを取得したりHTMLをMarkdownに変換したりするだけではありません。ページを開き、構造化されたスナップショットをコンパイルし、現在のページがその主張を裏付けているか、矛盾しているか、あるいはさらなるブラウジングが必要かを判断します。

以下のような場合に利用してください:

  • 生のHTMLダンプではなく、ソースにリンクされたエビデンスが必要な場合

  • エージェントが回答前に確認できるサポートスニペットや判定の解説が必要な場合

  • 曖昧な主張に対して、ブラフではなく安全な未解決パスが必要な場合

  • 盲目的な自動化ではなく、ポリシーで制御されたブラウジングが必要な場合

  • 再生可能で監査可能な複数ページのリサーチセッションが必要な場合

事実の最終決定ではなく、エビデンスを優先:

  • touch-browserは、AIがページ固有のエビデンスを収集し、その出所を追跡するのを支援します

  • ページ間やより広い世界全体で何が真実であるかを決定するのは、依然として上位モデルや人間です

extract が返すもの

現在のエクストラクターからの簡略化された claimOutcome の形状:

{
  "statement": "The Starter plan costs $29 per month.",
  "verdict": "evidence-supported",
  "confidenceBand": "high",
  "reviewRecommended": false,
  "supportSnippets": [
    {
      "blockId": "b4",
      "stableRef": "rmain:table:plan-monthly-price-snapshots-starter-29-10-000-t",
      "snippet": "Starter | $29 | 10,000"
    }
  ],
  "verdictExplanation": "Matched direct support in 3 page block(s). Review the attached snippets before reusing the claim."
}

エクストラクターは4つの判定を返します:

  • evidence-supported: 現在のページが利用可能な裏付けを提示した

  • contradicted: 現在のページが矛盾するエビデンスを提示した

  • insufficient-evidence: 現在のページが十分な直接的裏付けを提供しなかった

  • needs-more-browsing: 現在のページはまだ十分に具体的ではないため、次のステップとして別のページが必要

confidenceBandreviewRecommendedsupportSnippetsverdictExplanationmatchSignals が含まれているため、エージェントは最初のマッチを盲目的に信頼することなく、次に何をすべきかを決定できます。

MCP パッケージ

主要なローカルホストMCPパス:

  • npm パッケージ: @nangman-infra/touch-browser-mcp

  • スコープ: 公開ドキュメントおよびリサーチWeb

  • MCPコントラクト: ヘッドレスのみ、自動検索エンジン選択、チャレンジ/認証/MFAのための監視付きリカバリハンドオフ

推奨されるホスト設定:

{
  "mcpServers": {
    "touch-browser": {
      "command": "npx",
      "args": ["-y", "@nangman-infra/touch-browser-mcp"]
    }
  }
}

初回起動時、パッケージはGitHub Releasesから一致するスタンドアロンランタイムバンドルをダウンロードし、公開されている .sha256 を検証し、~/.touch-browser/npm-mcp/versions/ 配下にインストールしてから touch-browser mcp を開始します。

Claude Desktop、Cursor、CodexなどのローカルMCPホストに、手動でのランタイムインストールなしで接続させたい場合にこのパッケージを使用してください。

スタンドアロンバンドル

タグ付けされた v* プッシュは、現在 Standalone Release ワークフローでスタンドアロンのmacOSおよびLinuxバンドルをビルドします。各バンドルには以下が含まれます:

  • bin/touch-browser

  • runtime/touch-browser-bin 配下の最適化されたRustバイナリ

  • バンドルされたNodeランタイムとPlaywrightアダプター

  • デフォルトのセマンティックランナースクリプトとモデルキャッシュ

タグ付けされたリリースが公開されたら、GitHub Releasesから一致するtarballをダウンロードし、解凍して以下を実行します:

./touch-browser-<version>-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check

同じポータブルバンドルをローカルでビルドするには:

pnpm install --frozen-lockfile
pnpm run build:standalone-bundle -- v0.1.0-rc1

# Then install the bundled command into PATH
./dist/standalone/touch-browser-v0.1.0-rc1-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check

スタンドアロンパスは、依然として公式のCLI、運用、オフライン、およびフォールバックインストールパスです:

  1. スタンドアロンバンドルを解凍する

  2. install.sh を実行する

  3. すべてのCLIおよびサーバー操作にインストールされた touch-browser コマンドを使用する

インストーラーは現在、管理されたインストールを実行します:

  • 管理されたバージョンは ~/.touch-browser/install/versions/<bundle-name> 配下に配置されます

  • アクティブなバージョンは ~/.touch-browser/install/current です

  • PATHコマンドは ~/.touch-browser/install/current/bin/touch-browser を指します

  • touch-browser updatecurrent を新しく検証されたリリースバンドルに切り替えます

  • touch-browser uninstall --purge-all --yes は、管理されたインストールとすべての保存データを削除します

初回実行

これは、インストールされたユーザーエクスペリエンスと一致するコマンドのみの証明パスです:

touch-browser open https://www.iana.org/help/example-domains --browser --session-file /tmp/tb-first-run.json
touch-browser session-read --session-file /tmp/tb-first-run.json --main-only
touch-browser session-extract --session-file /tmp/tb-first-run.json \
  --claim "As described in RFC 2606 and RFC 6761, a number of domains such as example.com and example.org are maintained for documentation purposes."
touch-browser session-synthesize --session-file /tmp/tb-first-run.json --format markdown
touch-browser session-close --session-file /tmp/tb-first-run.json

インストールされた検索は、デフォルトでエンジンレベルの永続的な信頼プロファイルを保持します:

  • Google: ~/.touch-browser/browser-search/profiles/google-default

  • Brave: ~/.touch-browser/browser-search/profiles/brave-default

  • プロファイル状態メタデータ: ~/.touch-browser/browser-search/<engine>.profile-state.json

ソースからのコントリビュータービルド

前提条件: rustup、Node.js 18+、pnpm

bash scripts/bootstrap-local.sh
cargo build --release -p touch-browser-cli
pnpm run build:standalone-bundle -- local-dev
./dist/standalone/touch-browser-local-dev-<platform>-<arch>/install.sh

ソースチェックアウトはコントリビューターのワークフローです。リリースおよび運用ドキュメントは、スタンドアロンバンドルからインストールされた touch-browser コマンドを前提としています。

bootstrap-local.sh は、デフォルトのセマンティックモデルを以下にインストールします:

  • ~/.touch-browser/models/evidence/embedding

  • ~/.touch-browser/models/evidence/nli

TOUCH_BROWSER_EVIDENCE_EMBEDDING_MODEL_PATH または TOUCH_BROWSER_EVIDENCE_NLI_MODEL_PATH は、それらのデフォルトの場所を上書きする必要がある場合にのみ使用してください。

なぜMarkdownだけではいけないのか?

touch-browser は、すべてのクローラーやブラウザツールを置き換えようとしているわけではありません。その仕事はページ取得後に始まります。

ニーズ

Markdownのみの取得

touch-browser

ページを読む

はい

はい

ソースリンクされたブロック参照を保持

部分的

はい

ページが主張を裏付けているか判断

いいえ

はい

矛盾や未解決の状態を返す

いいえ

はい

サポートスニペットと判定の解説を提供

いいえ

はい

エージェントに回答ではなくエスカレーションを指示

いいえ

はい

プロダクトサーフェス

主要なサーフェス:

  • extract: 現在のページに対して主張を検証し、構造化された主張結果を返す

サポートする読み取りサーフェス:

  • read-view: 人間のレビュアーや検証モデルのための読みやすいMarkdown

  • compact-view: エージェントループのための低トークンセマンティック状態

  • search: 候補ページを開く前の構造化された発見

安全性と監査サーフェス:

  • policy: ページとアクションを許可、レビュー、またはブロックに分類する

  • session-synthesize: 複数ページのセッションを引用付きのJSONまたはMarkdownに変換する

  • serve: MCPまたはエージェント統合のためにstdio JSON-RPC経由でランタイムを公開する

touch-browser とは

  • エビデンス優先のエクストラクター

  • 選択的な予測サーフェス

  • 検証者フレンドリーなルーティングレイヤー

touch-browser ではないもの

  • 普遍的な真実のオラクル

  • 汎用的なクローラーの代替品

  • 裏付けのないすべての主張が誤りであるという保証

MCP の例

ローカルホスト向けの推奨MCP設定:

{
  "mcpServers": {
    "touch-browser": {
      "command": "npx",
      "args": ["-y", "@nangman-infra/touch-browser-mcp"]
    }
  }
}

MCPパッケージは、完全なCLIよりも意図的に狭い範囲に絞られています:

  • スコープは公開ドキュメントとリサーチWeb

  • 推奨されるループは tb_search -> tb_search_open_top -> tb_read_view -> tb_extract

  • engine はMCP経由で公開されません

  • headed はMCP経由で公開されません

  • ページがチャレンジ、認証、MFA、またはその他の監視付きリカバリを要求する場合、異なるブラウザ設定で再試行するのではなく、停止して人間に引き継いでください

インストールされたスタンドアロンコマンドのための代替MCPブリッジ設定:

{
  "mcpServers": {
    "touch-browser": {
      "command": "touch-browser",
      "args": ["mcp"]
    }
  }
}

ブリッジは内部で touch-browser serve を開始し、tb_searchtb_search_open_toptb_opentb_read_viewtb_extracttb_tab_opentb_session_synthesize などのツールを公開します。

リポジトリチェックアウト統合アセット:

{
  "mcpServers": {
    "touch-browser": {
      "command": "node",
      "args": ["integrations/mcp/bridge/index.mjs"]
    }
  }
}

スタンドアロンバンドルには touch-browser mcptouch-browser serve が同梱されています。チェックインされたNodeランチャーは、リポジトリチェックアウトやコンテナイメージのためのリポジトリ統合アセットとして残ります。

デフォルトでは、ブリッジは明示的な TOUCH_BROWSER_SERVE_COMMAND を優先し、次に明示的なバイナリパス、次にインストール済みまたはパッケージ化された touch-browser バイナリ、次にリポジトリローカルの target/{release,debug} バイナリを優先します。どれも利用できない場合は、cargo run にフォールバックするのではなく、インストール/ビルド手順を表示して即座に失敗します。

特定のビルド済みバイナリやラッパーコマンドを強制したい場合は、TOUCH_BROWSER_SERVE_COMMAND を使用してください。

アーキテクチャ

Query / URL / fixture / browser tab
  -> browser-first search result parsing
  -> Acquisition
  -> Observation compiler
  -> read-view / compact-view
  -> extract (evidence + citations + optional verifier)
  -> policy
  -> session synthesis / replay
  -> CLI / JSON-RPC serve / MCP

ドキュメントと証明

ライセンス

このリポジトリは現在 MPL-2.0 を使用しています。

  • 商用および非商用利用が許可されています

  • 変更されたMPL対象ファイルを配布する場合、それらの対象ファイルは MPL-2.0 の下に留まります

  • より大きな作品内の個別のファイルは、異なる条件を使用できます

  • 完全な法的テキスト: LICENSE

  • 平易な言葉によるポリシー: LICENSE-POLICY.md

Install Server
A
security – no known vulnerabilities
A
license - permissive license
B
quality - B tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nangman-infra/touch-browser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server