PreClick — An MCP-native URL preflight scanning service for autonomous agents (formerly URLCheck). について
PreClickは、AIエージェントや各種クライアント向けのURLセキュリティスキャンMCPサーバーです。アクセス前にフィッシングやマルウェアを検知し、指定された目的と遷移先が合致するかも評価します。
主な機能
- 01フィッシングやマルウェアの検知
- 02指定目的と遷移先の照合
- 03同期・非同期スキャン
- 04タスク状態と結果の取得
活用シーン
- 01AIエージェントが開く前のリンク確認
- 02自動ワークフローでのURLスキャン
- 03メールやメッセージ内のリンク検査
MCP 対応
Streamable HTTP経由で、URLスキャン、任意の目的情報を用いた分析、非同期タスクの状態・結果取得を行うMCPツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://urlcheck.ai/mcpclaude mcp add --transport http ai-urlcheck-urlcheck https://urlcheck.ai/mcp{"mcpServers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}Cursor で開く{"servers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}VS Code で開く{"mcpServers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}{"mcpServers":{"ai-urlcheck-urlcheck":{"serverUrl":"https://urlcheck.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://urlcheck.ai/mcp認証が必要ツール
6| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 分析する URL。HTTP または HTTPS を指定してください。scheme がない場合は https:// が使用されます。 |
詳細
PreClick MCP サーバー
PreClick — 自律型エージェント向けの、MCP ネイティブな URL 事前スキャンサービスです。リンクをスキャンして脅威を検出し、実行前に意図したタスクと一致することを確認します。エージェント型ワークフロー向けに構築されており、適応学習による高精度でコンテキストを考慮したブラウジングガバナンスを提供します。
公開元: CybrLab.ai | サービス: PreClick
ホスト型トライアルプラン: 1 日あたり最大 100 件のリクエストまで、API キーは不要です。より高い上限と安定した割り当てを利用するには、API キーを使用してください([email protected] にお問い合わせください)。
概要
PreClick は、AI エージェントやあらゆるクライアントが、アクセスする前に URL のフィッシング、マルウェア、その他のセキュリティ脅威を分析できるようにする、URL セキュリティスキャナー兼 MCP サーバーです。以下のクライアントライブラリを使って単独の URL スキャナーとして利用することも、MCP プロトコル経由で直接接続することもできます。
インテグレーション
クライアントライブラリ(推奨)
AI エージェント、自動化パイプライン、アプリケーションに URL セキュリティスキャンを追加する最も簡単な方法です。これらの単独で使える URL スキャナークライアントは、接続、ポーリング、エラー復旧をすぐに利用できる形で処理します。MCP プロトコルの知識や準拠は必要ありません。
| パッケージ | 言語 | インストール | リポジトリ |
|---|---|---|---|
preclick | Python(非同期、3.10+) | pip install preclick | preclick-python |
@cybrlab/preclick-mcp-client | JavaScript/Node.js(20+) | npm install @cybrlab/preclick-mcp-client | preclick-mcp-client |
どちらのライブラリも、スキャンに特化したシンプルな URL セキュリティスキャン API(scan(url) / scanWithIntent(url, intent))を提供し、フィッシング検出、脅威分析、意図との整合性を 1 回の呼び出しで直接返します。プロトコル用語の知識や connect() の定型コードは不要で、一般的なケースでは手動のポーリングも必要ありません。
フレームワークアダプター
| インテグレーション | リポジトリ |
|---|---|
| OpenClaw プラグイン | preclick-openclaw |
MCP の手動設定
プロトコルを直接扱う MCP ネイティブなクライアントについては、以下のクイックスタートをご覧ください。
認証モード
| デプロイメント | X-API-Key の要件 | 備考 |
|---|---|---|
ホスト型(https://preclick.ai/mcp) | 1 日あたり 100 件までは任意 | 上限を増やすには API キーを推奨します |
ホスト型(https://preclick.ai/mcp) | トライアル枠を超える場合は必須 | 発行済みキーについてはサポートにお問い合わせください |
重要なお知らせ
このツールは、許可を得たセキュリティ評価のみを目的としています。ご自身が所有するシステムやウェブサイト、または評価の明示的な許可を得たものに限って使用してください。許可のない使用、違法な使用、悪意のある使用は固く禁じられています。適用されるすべての法律、規制、契約上の義務を遵守する責任はお客様にあります。
ユースケース
- AI エージェント向けの URL 事前検証
- ワークフローでの URL セキュリティスキャンの自動化
- メールやメッセージ内の悪意あるリンクの検出
クイックスタート
1. MCP クライアントを設定する
次のいずれかを選択してください。
トライアル(ホスト型、API キーなしで 1 日あたり最大 100 件のリクエスト):
{
"mcpServers": {
"preclick-mcp": {
"transport": "streamable-http",
"url": "https://preclick.ai/mcp"
}
}
}
認証あり(安定した大量利用におすすめ):
{
"mcpServers": {
"preclick-mcp": {
"transport": "streamable-http",
"url": "https://preclick.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
2. 任意:セッションを初期化する(ステートフルモードのみ)
ホスト型のデフォルトの利用方法はステートレスです。クライアントは POST /mcp で JSON-RPC メッセージを送信します。
一部の Streamable HTTP クライアントは、SSE ストリームを取得するために GET /mcp を試す場合もあります。ステートレスのホスト型デプロイでは、/mcp は SSE ストリームを提供せず、HTTP 405 Method Not Allowed を返します。クライアントは 405 を「このエンドポイントに SSE ストリームはない」として扱い、引き続き POST /mcp を使用してください。
クライアントは引き続き、標準の MCP HTTP ヘッダーを送信してください。
- POST では
Accept: application/json, text/event-stream - 初期化以外のすべてのリクエストでは
MCP-Protocol-Version
現在、ホスト型デプロイでは互換性のため、POST の Accept ヘッダーがない場合や不完全な場合に正規化します。また、レジストリとの互換性のため、検出のみを行う POST のリストリクエスト(tools/list、resources/list、prompts/list)では、MCP-Protocol-Version がなくても許可します。クライアントは、いずれの動作にも依存しないでください。
# Only required if the server is running in stateful mode
curl -X POST https://preclick.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {"name": "my-client", "version": "1.0"}
}
}'
# Response includes Mcp-Session-Id header - save it for subsequent requests
3. スキャンを開始する
url_scanner_scan は 2 つの実行モードに対応しています(同じモードが url_scanner_scan_with_intent にも適用されます)。
- タスク拡張(推奨):非同期実行の場合は
taskパラメーターを指定します - 直接実行:同期実行の場合は
taskパラメーターを省略します
curl -X POST https://preclick.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "url_scanner_scan",
"arguments": {
"url": "https://example.com"
},
"task": {
"ttl": 720000
}
}
}'
# If stateful mode is enabled, include: -H "Mcp-Session-Id: YOUR_SESSION_ID"
レスポンス(タスク送信済み):
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"task": {
"taskId": "550e8400-e29b-41d4-a716-446655440000",
"status": "working",
"statusMessage": "Queued for processing",
"createdAt": "2026-01-18T12:00:00Z",
"lastUpdatedAt": "2026-01-18T12:00:00Z",
"ttl": 720000,
"pollInterval": 2000
}
}
}
任意:追加のコンテキストとして、URL の訪問目的を指定します(推奨ですが必須ではありません)。
curl -X POST https://preclick.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "url_scanner_scan_with_intent",
"arguments": {
"url": "https://example.com",
"intent": "Book a hotel room"
},
"task": {
"ttl": 720000
}
}
}'
推奨:目的を明示できる場合(ログイン、購入、予約、支払い、ファイルのダウンロード)は url_scanner_scan_with_intent を使用してください。目的とコンテンツの不一致を追加のシグナルとして考慮できます。それ以外の場合は url_scanner_scan を使用してください。
目的の最大文字数:248 文字。
情報量の少ない目的文字列や指示のような目的文字列は、指定されていないものとして扱われます。
結果には intent_alignment(misaligned、no_mismatch_detected、inconclusive、または not_provided)が含まれます。
no_mismatch_detected が返されるのは、目的の分析に十分な証拠がある場合のみです。目的の分析が利用できない場合や証拠が限られている場合、結果は inconclusive になります。
intent_alignment が misaligned であり、信頼度の高い分析で確認された場合、レスポンスのディレクティブは、理由 intent_inconsistent_destination を伴う DENY になります(ポリシーゲート。リスクスコアは変わりません)。
信頼度の低いコンテキストで、未検証の影響が大きいサービスに関する主張があり、身元を裏付ける情報が乏しいことを信頼度の高い分析で確認した場合も、レスポンスのディレクティブは、理由 insufficient_service_verification を伴う DENY になります(ポリシーゲート。リスクスコアは変わりません)。
証拠の少ない追加のコンテキストに関するポリシーケースでは、理由に insufficient_service_verification や insufficient_trust_signals などを伴う DENY が返される場合があります(ポリシーゲート。リスクスコアは変わりません)。
直接呼び出しのタイムアウトに関する注意:同期ツール呼び出しでは、直接呼び出しのみを行うクライアント向けに設定された、上限付きのサーバー待機時間が使用されます(ホスト型のデフォルトは 90 秒です)。タイムアウトに達すると、サーバーは error.data.taskId と error.data.pollInterval を含む JSON-RPC -32603 を返します。これらを使って tasks/get / tasks/result で処理を続行できます。
互換性に関する注意:MCP クライアントがネイティブの Tasks メソッド(tasks/get / tasks/result)を呼び出せない場合は、url_scanner_async_scan または url_scanner_async_scan_with_intent を使って処理を送信し、その後 url_scanner_async_task_status / url_scanner_async_task_result でポーリングしてください。これらの互換ツールは通常のツールとしてのみ呼び出し、ネイティブの MCP task パラメーターは指定しないでください。
4. 結果をポーリングする
tasks/result は、より短いホスト型のブロッキング待機(デフォルト 30s)を使用します。この待機時間を超えると、サーバーは error.data.taskId と error.data.pollInterval を含む JSON-RPC -32603 を返します。ネイティブの Tasks クライアントでは、ステータスが completed になるまで tasks/get でポーリングし、その後 tasks/result を呼び出して最終結果をすぐに取得することをおすすめします。
curl -X POST https://preclick.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tasks/result",
"params": {
"taskId": "550e8400-e29b-41d4-a716-446655440000"
}
}'
# If stateful mode is enabled, include: -H "Mcp-Session-Id: YOUR_SESSION_ID"
レスポンス(完了したタスク — tools/call の同期呼び出しと同じ CallToolResult 形式):
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\"risk_score\":0.05,\"confidence\":0.95,\"analysis_complete\":true,\"agent_access_directive\":\"ALLOW\",\"agent_access_reason\":\"no_immediate_risk_detected\",\"intent_alignment\":\"not_provided\"}"
}
],
"isError": false
}
}
利用可能なツール
| ツール | 説明 | 実行モード |
|---|---|---|
url_scanner_scan | URL のセキュリティ上の脅威を分析します | 直接(同期)、タスク(非同期) |
url_scanner_scan_with_intent | 任意の意図コンテキストを使用して URL を分析します | 直接(同期)、タスク(非同期) |
url_scanner_async_scan | 互換性のための非同期送信ツール | ツールベースの非同期 |
url_scanner_async_scan_with_intent | 意図を指定した、互換性のための非同期送信 | ツールベースの非同期 |
url_scanner_async_task_status | 互換性のためのステータスポーリングツール | ツールベースの非同期 |
url_scanner_async_task_result | 互換性のための結果ポーリングツール | ツールベースの非同期 |
詳細なスキーマと例については、完全な API ドキュメントをご覧ください。
認証
認証要件はデプロイモードによって異なります。
- ホスト型エンドポイント(
https://preclick.ai/mcp):1 日あたり最大 100 件のリクエストまでは API キーは任意です。 - 上記のホスト型エンドポイントで試用枠を超える場合:API キーが必要です。
API キーの取得方法については、認証ガイドをご覧ください。
技術仕様
| プロパティ | 値 |
|---|---|
| レジストリ ID | ai.preclick/preclick-mcp |
| MCP 仕様 | 2025-06-18 |
| クライアントプロトコル | 2025-06-18 |
| トランスポート | ストリーム可能な HTTP |
| エンドポイント | https://preclick.ai/mcp |
| 標準的なスキャン時間 | 対象により異なります |
| 対応スキーム | HTTP、HTTPS |
| URL の最大長 | サーバーによって適用されます |
サポート
- 公開元:CybrLab.ai
- サービス:PreClick
- メール:[email protected]
ライセンス
Apache License 2.0 - 詳細は LICENSE をご覧ください。
Copyright CybrLab.ai
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。