SkanQRCode について
SkanQRCodeは、信頼できないリンクを開いたり取得したりする前に、AIエージェントがURLやIPアドレスを確認するためのMCPサーバーです。判定と対応指示を返し、月間利用状況を調べるツールも備えています。
主な機能
- 01URLとIPアドレスの安全確認
- 02判定、理由、対応指示の返却
- 03月間利用枠の確認
- 04ユーザー単位のチェック結果キャッシュ
活用シーン
- 01メールのリンクを開く前の確認
- 02チャットやウェブページ上のURLの評価
- 03悪意あるアドレスの取得防止
- 04残りのチェック利用枠の確認
MCP 対応
ローカルのstdioで動作し、check_urlとget_usageツールを提供します。URLの確認は利用枠を消費しますが、使用状況の照会は消費しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@skanqrcode/mcp-server
公式の SkanQRCode MCP サーバーです。信頼できないソース(QR コード、メール、チャットメッセージ、ウェブページ、または別のツールの出力)から取得したリンクを AI エージェントがフェッチ、開く、またはユーザーに渡す前に、URL の安全性をチェックできます。
stdio を介してローカルで実行されるため、Claude Desktop、Claude Code、Cursor、Windsurf、およびローカルプロセスを起動するその他の MCP クライアントで動作します。
セットアップ
- app.skanqrcode.com で API キーを作成します。無料プランでは、カード登録不要で、月 1,000 回チェックできる
sk_test_キーが提供されます。 - MCP クライアントにサーバーを追加します。
Claude Desktop(claude_desktop_config.json)、Cursor、およびその他ほとんどのクライアント:
{
"mcpServers": {
"skanqrcode": {
"command": "npx",
"args": ["-y", "@skanqrcode/mcp-server"],
"env": { "SKANQRCODE_API_KEY": "sk_test_..." }
}
}
}
Claude Code:
claude mcp add skanqrcode --env SKANQRCODE_API_KEY=sk_test_... -- npx -y @skanqrcode/mcp-server
Node.js 20 以降が必要です。
ツール
check_url
URL または IP アドレスを分類します。入力:
| フィールド | 必須 | 説明 |
|---|---|---|
target | はい | スキームを含む完全な URL、または IP アドレス(最大 4,096 文字)。 |
userId | いいえ | ユーザーごとのキャッシュに使用する、チェック対象のエンドユーザーを識別する不透明な ID。メールアドレスや名前は使用しないでください。 |
API の判定結果を構造化コンテンツとして返します:
{
"verdict": "malicious",
"action": "block",
"mode": "url",
"reasons": ["ACTIVE_THREAT_FEED_MATCH", "KNOWN_MALWARE_MATCH"],
"finalUrl": null,
"cached": false,
"executionTimeMs": 38,
"environment": "production",
"licensedForProduction": true,
"requestId": "req_01j9z8qaenp0s2c4d6f8g0h1jk"
}
エージェントは action に基づいて分岐します。block はフェッチも開くこともしないこと、warn はまずユーザーに確認すること、allow は続行してよいことを意味します。呼び出しごとに月間クォータを 1 単位消費します。
get_usage
月間クォータ、使用済みリクエスト数、残りのリクエスト数を返します(month は省略可能で、形式は YYYY-MM です)。クォータは消費しません。
エラー
呼び出しに失敗すると、isError: true と
{ "error": { "code": "...", "message": "...", "requestId": "...", "retryAfterSeconds": 12 } }
が返されます。rate_limited の場合は retryAfterSeconds の時間だけ待ち、quota_exceeded の場合は処理を停止してユーザーに伝えてください。
リストツールがない理由
このサーバーは読み取り専用です。エージェントが読むテキストはエージェントの誘導を試みる可能性があり、許可リストに項目を追加できるエージェントは、フィッシングドメインを承認するように誘導されるおそれがあります。許可リストとブロックリストはダッシュボードで管理してください。
環境変数
| 変数 | 必須 | デフォルト |
|---|---|---|
SKANQRCODE_API_KEY | はい | — |
SKANQRCODE_BASE_URL | いいえ | https://api.skanqrcode.com(https:// が必要) |
キーは HTTPS 経由で API にのみ送信され、ログに記録されることはありません。
サンドボックスキー
sk_test_ キーでは、結果に environment: "sandbox" と
licensedForProduction: false が表示されます。判定結果は実際のものですが、無料プランのライセンスはテスト用途に限られています。本番環境では、有料プランの sk_live_ キーを使用してください。
開発
npm install
npm test # unit tests and an MCP client/server round trip
npm run build
SKANQRCODE_API_KEY=sk_test_... npx @modelcontextprotocol/inspector node dist/index.js
API リファレンス:docs.skanqrcode.com。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。