Nullprint について
Nullprint MCPは、Nullprintのブラウザープロファイルを管理し、セッション内のページを自動操作するAIエージェント向けのサーバーです。ローカルdaemonの操作を公開し、フィンガープリントの整合性チェックにも対応します。
主な機能
- 01プロファイルの作成、起動、停止、復元
- 02フィンガープリントの整合性チェック
- 03プロキシのテストと情報確認
- 04ページの移動、確認、操作
- 05タブとJavaScriptダイアログの管理
活用シーン
- 01エージェントのタスクごとにプロファイルを作成
- 02ブラウジング前の整合性確認
- 03ページ移動やフォーム入力の自動化
- 04削除済みプロファイルの確認と復元
MCP 対応
MCPサーバーは、ローカルのNullprint daemonのHTTP APIエンドポイントにツールを対応させます。Nullprintデスクトップアプリの起動が必要で、MCPクライアントにプロファイル管理とブラウザーセッション操作を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
17掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
nullprint-mcp
Nullprint 向けの MCP サーバーです。Nullprint はマルチプロファイルブラウザーです。MCP に対応した AI エージェント(Claude Code、Claude Desktop、OpenAI Codex、Kimi など)であれば、ブラウザープロファイルの作成や起動、整合性チェックの実行、起動中のプロファイル内のページ操作ができます。
このサーバーは、ローカルの Nullprint デーモンの HTTP API を利用する薄いレイヤーです。各ツールはデーモンの各エンドポイントに対応しています。デーモン、ブラウザーカーネル、フィンガープリントエンジンは Nullprint デスクトップアプリに同梱されており、このパッケージには含まれません。
要件
- Nullprint デスクトップアプリがインストールされ、起動していて、サインイン済みであること(Windows または macOS)。ダウンロード先:https://nullprint.ai
- 同じマシンに Python 3.11 以降がインストールされていること。サーバーを実行する最も簡単な方法は uv です。初回使用時にパッケージがインストールされます。
インストール
# Claude Code
claude mcp add nullprint -- uvx nullprint-mcp
# OpenAI Codex
codex mcp add nullprint -- uvx nullprint-mcp
Claude Desktop、Kimi、および mcpServers 設定ファイルを使用するその他のクライアント:
{
"mcpServers": {
"nullprint": {
"command": "uvx",
"args": ["nullprint-mcp"]
}
}
}
uv を使わない場合:pip install nullprint-mcp を実行し、コマンドとして nullprint-mcp を引数なしで使用します。
ポートやキーの設定は不要です。サーバーは、デスクトップアプリの起動時に書き込まれる ~/.nullprint/daemon.json から、起動中のデーモンのポートと API キーを読み取ります。別の場所にあるデーモンを指定するには、--daemon-url http://host:port(または localhost では --port 7801)を渡し、NULLPRINT_API_KEY を設定してください。優先順位の高い順に、次のように解決されます。
--daemon-url/--portNULLPRINT_DAEMON_URLNULLPRINT_PORT~/.nullprint/daemon.json(NULLPRINT_HOMEでディレクトリを変更できます)
デーモンが起動していない場合、接続トレースを出力する代わりに、ツールがその旨を明確に伝えます。
ツール
| ツール | 機能 | デーモンのエンドポイント |
|---|---|---|
profiles_list | すべてのプロファイルと、ステータス(実行中/アイドル)、終了情報、台帳メタデータを一覧表示します | GET /profiles |
profile_start | プロファイルのブラウザーセッションを開き、操作用のエンドポイントを返します | POST /sessions/{name} |
profile_stop | プロファイルのブラウザーを停止します(セッションまたはアプリから起動したウィンドウ) | DELETE /sessions/{name} → 失敗した場合は POST /profiles/{name}/stop |
profile_create | プロファイルを作成します(フィンガープリントは生成され、固定されます)。プロキシ、台帳、開始ページも指定できます | POST /profiles |
profile_settings | 既存のプロファイルの表示設定を変更します。現在は force_dark(ウェブページを強制的にダーク表示します。デフォルトではオフで、起動設定に統合されます)に対応しています | GET + PATCH /profiles/{name} |
profile_checkup | 整合性チェックを行い、{summary, checks} を返します | GET /profiles/{name}/checkup?live= |
proxy_check | ステートレスなプロキシテストを行います:出口 IP、国、レイテンシ | POST /proxy-check |
profile_delete | プロファイルをごみ箱にソフト削除します(復元可能)。実行中の場合は拒否されます | DELETE /profiles/{name} |
trash_list | ごみ箱内の復元可能なプロファイルを読み取り専用で一覧表示します | GET /trash |
profile_restore | フィンガープリント、プロキシ、ログイン情報を保持したまま、ごみ箱から復元します | POST /trash/{name}/restore |
session_goto | セッションの現在のページを移動します | POST /sessions/{name}/goto |
session_snapshot | 現在のページのアクセシビリティツリーを取得します(セレクターの検索、状態の確認) | GET /sessions/{name}/snapshot |
session_click_selector | CSS セレクターで要素をクリックします | POST /sessions/{name}/click_selector |
session_fill_selector | CSS セレクターで入力欄に値を入力します | POST /sessions/{name}/fill_selector |
session_press | キーを送信します(例:Enter) | POST /sessions/{name}/press |
session_eval | ページ上で JavaScript を実行し、{ok, result} を返します | POST /sessions/{name}/eval |
session_tabs | セッションのタブとアクティブなタブを一覧表示します | GET /sessions/{name}/tabs |
session_switch_tab | タブを前面に表示します | POST /sessions/{name}/switch_tab |
session_dialog | ページ上に開いている JavaScript ダイアログ(alert / confirm / prompt / beforeunload)に accept または dismiss で応答します | POST /sessions/{name}/dialog |
プロンプトを書く際に重要な注意事項:
session_*ツールには、開いているセッションが必要です。profile_startで開いたウォームセッションを操作します。セッションがないプロファイルで呼び出すと 409 が返されます。セレクターは CSS であり、XPath やロール/名前ではありません。セレクターが分からない場合は、先にsession_snapshotを呼び出してください。- ダイアログは通常のブラウザーと同じように開いたままになります。 alert/confirm/prompt が開いている間はページがブロックされ、
session_*ツールはダイアログ名を示す 409 を返して失敗します。session_dialogで応答してから再試行してください。独自のsession_gotoまたはクリックによって発生した beforeunload は、自動的に受け入れられます。 session_evalはエンベロープを返します。 ページ側の JavaScript エラーはツールの失敗ではなく、データ({ok: false, error, error_type})として返されます。resultは式の型に従います。profile_stopには 2 つのレベルがあります。 プロファイルの「実行中」状態には、ウォームセッションとしての実行と、アプリから起動されたウィンドウとしての実行があります。このツールはまずセッションを停止しようとし、失敗した場合はアプリレベルの停止に切り替えます。アイドル状態のプロファイルに対しては冪等です。{name, stopped, closed}を返します。profile_createはカーネルを固定しません。 アプリのデフォルトを使用するには、engineを空のままにしてください。不明な値を指定すると、選択肢を一覧表示する 422 が返されます。proxy_checkの失敗はデータとして返されます。 到達できないプロキシは{ok: false, error}を返します。到達できないデーモンの場合にのみ例外が発生します。profile_startはcdp_endpoint(ws://DevTools アドレス)を返します。 これは、アプリで外部デバッグが有効になっている Chrome カーネルに限られます(デフォルトでは無効です。有効にするには、Edit → Advanced → External debugging から設定し、2 回目の認証を行ってからプロファイルを開き直してください)。これにより、外部ツールが接続できます。それ以外の場合はnullとなり、理由コードのcdp_unavailableと理由を示すcdp_noteが返されます。外部から操作するセッションでは、Nullprint の整合性チェックが回避されます。外部ツールがプロファイルの固定済みフィンガープリントと矛盾するビューポート、言語、タイムゾーンを設定すると、検出される可能性があります。session_*ツールを使用してください。接続が必要な場合も、プロファイルで宣言されていない設定は変更しないでください。
意図的に公開していない機能
プロファイルを完全に削除(DELETE /trash/{name})すると、ログイン情報が破棄され、元に戻せません。これは意図的にツールとして提供していません。ごみ箱を空にする操作は、デスクトップアプリで人が行います。profile_delete の説明では、このことを回避せずに伝えるようエージェントに指示しており、すべてのツールのソースをスキャンして完全削除エンドポイントが含まれていないことを確認するテストもあります。スクリーンショットのディスクへの保存やファイル書き込みのツールも、同じ理由(ローカルパスの安全性)で提供していません。
開発
pip install -e ".[dev]"
pytest tests
nullprint-mcp --help
ツールは nullprint_mcp/tools.py(TOOLS タプル)にあります。ツールを追加しても、server.py と __main__.py は変更しません。標準出力には何も出力してはいけません。標準出力は MCP のチャネルです。
ライセンス
MIT。Copyright (c) 2026 HENGCHENG LLC.
中国語の説明
これは Nullprint(マルチアイデンティティフィンガープリントブラウザー)の MCP サービスです。Claude Code、Claude Desktop、OpenAI Codex、Kimi など、MCP に対応するあらゆる AI から、アイデンティティの作成、ブラウザーの起動、一貫性チェック、アイデンティティ内のウェブページの操作を行えます。これはローカルのデーモン HTTP インターフェイスを利用する薄いラッパーにすぎず、各ツールはデーモンのエンドポイントに対応しています。デーモン、ブラウザーエンジン、フィンガープリントエンジンは Nullprint デスクトップアプリとともに配布され、このパッケージには含まれていません。
前提条件:ローカルマシンに Nullprint デスクトップアプリをインストールしてログインしておく必要があります。また、Python 3.11+ が必要です。uv の使用を推奨します(初回実行時にパッケージが自動でインストールされます)。
接続:
claude mcp add nullprint -- uvx nullprint-mcp # Claude Code
codex mcp add nullprint -- uvx nullprint-mcp # OpenAI Codex
Claude Desktop、Kimi などの設定ファイルを使うクライアントでは、mcpServers に {"command": "uvx", "args": ["nullprint-mcp"]} を追加してください。uv がない場合は pip install nullprint-mcp を実行し、コマンドを nullprint-mcp に変更してください。
ポートやキーの設定は不要です。サービスは、デスクトップアプリが ~/.nullprint/daemon.json に書き込んだポートと API Key を自動で読み込みます。別のマシンにあるデーモンに接続するには、--daemon-url を渡し、NULLPRINT_API_KEY を設定してください。
18 個のツール:profiles_list、profile_start、profile_stop、profile_create、profile_settings、profile_checkup、proxy_check、profile_delete、trash_list、profile_restore と、8 つのセッションツール session_goto / snapshot / click_selector / fill_selector / press / eval / tabs / switch_tab(先に profile_start を実行してください)。アイデンティティの完全削除は、意図的にツールとして提供していません。ごみ箱を空にする操作は、デスクトップアプリで人が行う必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。