mcpField
Q
QR for Agent

QR for Agent

ローカル
github.com/benswelビジネス・マーケティング320 週間前に更新

QR for Agent について

QR for Agentは、動的QRコードをプログラムで作成・管理するREST APIおよびMCPサーバーです。AIエージェントや開発者向けに、転送先の変更、スキャン分析、37個のMCPツールを提供します。

主な機能

  1. 01転送先を変更できる動的QRコード
  2. 0211種類のQRコード形式
  3. 03カスタムデザインとSVG/PNG出力
  4. 04スキャン・コンバージョン分析
  5. 05条件付きリダイレクトとWebhook
  6. 06QRコードの一括操作

活用シーン

  1. 01印刷済みコードを変えずにキャンペーン先を変更
  2. 02スキャン数とスキャン後のコンバージョンを測定
  3. 03WiFi、連絡先、イベント用QRコードを作成

MCP 対応

`qr-for-agent` MCPサーバーは37個のツールを提供し、エージェントによるQRコードの作成、更新、削除、分析や、関連するWebhookと設定の管理を可能にします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"benswel-qr-for-agent": {
"command": "npx",
"args": [
"-y",
"qr-for-agent"
],
"env": {
"API_KEY": "<API_KEY>",
"BASE_URL": "<BASE_URL>"
}
}
}
}
起動コマンドnpx -y qr-for-agent
設定が必要な環境変数
API_KEYシークレットYour QR for Agent API key
BASE_URLAPI base URL (default: https://api.qrforagent.com)

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

パッケージ
npmqr-for-agent0.12.2

ツール

37

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

パラメーター型必須説明
labelstringいいえこの QR コードを識別するための任意のラベルです。
widthnumberいいえQR コードの幅(ピクセル単位)。デフォルト:400。
formatenumいいえ画像形式。"svg" を推奨します(サイズが小さく、拡大縮小可能で、テキストとして解析できます)。ビットマップが必要な場合に限り "png" を使用してください。svg | png
marginnumberいいえクワイエットゾーンの余白(モジュール単位)。デフォルト:2。
gradientobjectいいえ単色の foreground_color の代わりに、QR コードのドットとコーナーにグラデーションを適用します。
gradient.typeenumはいグラデーションの種類。linear | radial
gradient.anglenumberいいえ角度(度、線形グラデーションのみ)。0=左から右、90=上から下。
gradient.colorsarrayはい2 色以上の 16 進数カラーを均等に配置します。
logo_urlstringいいえロゴ画像の URL(PNG/JPG/SVG)または data:base64 URI。QR コードの中央に配置されます。
dot_styleenumいいえデータモジュールの形状。square=クラシック、rounded=角丸、dots=円形、classy-rounded=有機的な丸み。square | rounded | dots | classy-rounded
logo_sizenumberいいえロゴサイズは QR コード幅に対する比率(0.15-0.3)です。デフォルト:0.2。
expires_atstringいいえISO 8601 の日時。この日時以降にスキャンすると、リダイレクトせず 410 Gone を返します。
frame_textstringいいえフレーム上の CTA テキスト(例:'Scan Me!'、'View Menu')。最大 30 文字。frame_style の指定が必要です。
target_urlstringはいQR コードのリダイレクト先 URL。
frame_colorstringいいえフレーム背景の 16 進数カラー。デフォルト:#000000。
frame_styleenumいいえQR コード周囲の装飾フレーム。'banner_bottom':テキストを下に配置、'banner_top':テキストを上に配置、'rounded':テキスト付きの角丸枠。none | banner_bottom | banner_top | rounded
corner_styleenumいいえファインダーパターン(角の四角形)の形状。square=クラシック、extra-rounded=滑らかな角丸、dot=円形。square | extra-rounded | dot
scheduled_atstringいいえターゲットが scheduled_url に自動で切り替わる ISO 8601 の日時。
scheduled_urlstringいいえscheduled_at に有効になる置換 URL。
background_colorstringいいえQR コード背景の 16 進数カラー。デフォルト:#ffffff(白)。
error_correctionenumいいえ誤り訂正レベル。L=7%、M=15%(デフォルト)、Q=25%、H=30%。ロゴが指定されている場合は H に自動設定されます。L | M | Q | H
foreground_colorstringいいえQR コードのドットの 16 進数カラー。デフォルト:#000000(黒)。
frame_text_colorstringいいえフレームテキストの 16 進数カラー。デフォルト:#ffffff。
gtm_container_idstringいいえGoogle Tag Manager のコンテナ ID(例:'GTM-ABC123')。中間 HTML ページを介して QR スキャンの GTM トラッキングを有効にします。
frame_border_radiusnumberいいえフレームの角丸半径。'rounded' スタイルでのみ使用します。

詳細

QR for Agent

benswel/qr-for-agent-api MCP server

AI エージェント向けに構築された、QR コードのサービスとしての API です。REST API または MCP(37 個のツール)を介して、動的 QR コードをプログラムから作成、更新、追跡できます。

QR コードは短縮 URL(/r/:shortId)を参照し、いつでも転送先を変更できます。QR コードの画像は変わりませんが、スキャンすると新しい転送先に移動します。マルチテナントを前提に設計されており、詳細なスキャン分析機能を備えています。

ライブ API: api.qrforagent.com  |  サイト: qrforagent.com  |  MCP: qr-for-agent

機能

  • 動的 QR コード — 画像を再生成せずに転送先 URL を変更できます
  • 11 種類の QR コード — URL、vCard、WiFi、メール、SMS、電話、イベント、テキスト、位置情報、ソーシャル、アプリストア
  • カスタムスタイル — ドット形状(四角、角丸、ドット、クラシックな角丸)、コーナースタイル、色、グラデーション、ロゴの埋め込み、CTA テキスト付きフレーム
  • SVG と PNG — ベクター形式とビットマップ形式で出力できます
  • 詳細な分析機能 — デバイスの種類、ブラウザー、OS、国、都市、リファラー、日別スキャン数
  • リアルタイムの Webhook — HMAC-SHA256 署名付きペイロードと配信ログ
  • UTM トラッキング — 転送先 URL に UTM パラメーターを自動追加します
  • GTM サポート — Google Tag Manager スニペットを含む中間ページ
  • 条件付きリダイレクト — デバイス、OS、国、言語、時間帯、または A/B 分割によるルーティング
  • カスタムドメイン — Pro ユーザーは独自のドメインで短縮 URL をブランド化できます(qr.yourbrand.com/r/abc123)
  • 有効期限とスケジュール設定 — QR コードを自動で期限切れにするか、URL の切り替えをスケジュールできます
  • コンバージョントラッキング — スキャン後のイベント(購入、登録)を追跡するトラッキングピクセルと API、および ROI 分析
  • フレームとテンプレート — CTA テキスト付きの QR コード装飾フレーム(banner_top、banner_bottom、rounded)
  • 一括操作 — 1 回のリクエストで最大 50 個の QR コードを作成、更新、削除できます。または CSV アップロードで最大 500 個まで対応します(Pro)
  • マルチテナント — 各 API キーからは、そのキー自身のデータのみを参照できます
  • MCP サーバー — Claude Desktop、Cursor など向けに 37 個のツールを備えた qr-for-agent
  • プラン別の使用量上限 — Free(QR コード 10 個、月間スキャン数 1,000 件)と Pro(月額 19 ドル、無制限)
  • セルフサービス登録 — メールアドレスを使った POST /api/register。クレジットカードは不要です
  • Stripe 連携 — チェックアウト、請求ポータル、Webhook によるプラン管理
  • OpenAPI ドキュメント — /documentation にある Swagger UI
  • AI による検出に対応 — /.well-known/ai-plugin.json と /.well-known/mcp.json
  • オープンソース — MIT ライセンス。Docker を使ってセルフホストできます

クイックスタート

git clone https://github.com/benswel/qr-for-agent-api.git
cd qr-for-agent-api
npm install
npm run dev

初回起動時に API キーが自動生成され、コンソールに表示されます。

curl -X POST http://localhost:3100/api/qr \
  -H "Content-Type: application/json" \
  -H "X-API-Key: qr_YOUR_KEY_HERE" \
  -d '{"target_url": "https://example.com", "label": "My first QR"}'

API エンドポイント

QR コード管理(X-API-Key が必要)
メソッドパス説明
POST/api/qrQR コードを作成します(11 種類、カスタムスタイル対応)
GET/api/qrすべての QR コードを一覧表示します(ページネーション対応)
GET/api/qr/:shortIdQR コードの詳細を取得します
PATCH/api/qr/:shortId転送先 URL、ラベル、UTM、GTM、リダイレクトルールを更新します
DELETE/api/qr/:shortIdQR コードとその分析データを削除します
GET/api/qr/:shortId/imageQR コード画像をダウンロードします(保存済みのスタイルで再生成)
POST/api/qr/bulk最大 50 個の QR コードを作成します(全件成功または全件失敗)
PATCH/api/qr/bulk最大 50 個の QR コードを更新します(一部成功に対応)
DELETE/api/qr/bulk最大 50 個の QR コードを削除します(一部成功に対応)
POST/api/qr/bulk/csvCSV から最大 500 個の QR コードを作成します(Pro のみ)
分析(X-API-Key が必要)
メソッドパス説明
GET/api/analytics/:shortIdスキャン統計を取得します。デバイス、ブラウザー、OS、国、都市別の内訳とコンバージョンを確認できます
変換(X-API-Key が必要)
メソッドパス説明
POST/api/conversions所有する QR コードのコンバージョンイベントを記録します
GET/api/conversions/:shortIdコンバージョンの統計(合計、イベント別、日別、最近のデータ)を取得します
Webhook(X-API-Key が必要)
メソッドパス説明
POST/api/webhooksWebhook エンドポイントを登録します(HMAC シークレットを返します)
GET/api/webhooksすべての Webhook を一覧表示します
DELETE/api/webhooks/:idWebhook を削除します
カスタムドメイン(X-API-Key が必要、Pro のみ)
メソッドパス説明
GET/api/domain現在のカスタムドメインと DNS のステータスを取得します
PUT/api/domainカスタムドメインを設定します
DELETE/api/domainカスタムドメインを削除します
アカウント(X-API-Key が必要)
メソッドパス説明
GET/api/usage現在の使用状況とクォータ
POST/api/stripe/checkoutStripe Checkout セッションを作成します(Pro にアップグレード)
POST/api/stripe/portalStripe の請求ポータルを開きます
パブリック(認証不要)
メソッドパス説明
POST/api/registerセルフサービスで API キーを登録します(レート制限あり)
GET/r/:shortIdターゲット URL にリダイレクトします(スキャンを記録)
GET/t/:shortIdコンバージョントラッキングピクセル(1×1 GIF を返します)
GET/i/:shortIdQR 画像を提供します(キャッシュ可能)
GET/healthヘルスチェック
GET/documentationSwagger UI
GET/.well-known/ai-plugin.jsonAI プラグインマニフェスト
GET/.well-known/mcp.jsonMCP 検出マニフェスト
管理者(X-Admin-Secret ヘッダーが必要)
メソッドパス説明
GET/api/admin/keys登録済みのすべての API キーを一覧表示します
GET/api/admin/statsダッシュボードの指標

認証

すべての /api/* エンドポイントには X-API-Key ヘッダーが必要です。

  • 形式:qr_ + 32 文字のランダム文字列
  • 自動生成:キーがない場合、初回起動時に生成されます
  • マルチテナント:各キーからは、そのキーが所有する QR コードのみを参照できます
  • キーの作成:npm run key:create "my-label"
  • キーの一覧表示:npm run key:list

パブリックエンドポイント(/r/*、/i/*、/health、/documentation、/.well-known/*)には認証は不要です。

MCP サーバー

npm で qr-for-agent として公開されています。AI エージェントが QR コードをネイティブに管理するための 37 個のツールを提供します。

npx qr-for-agent
Claude Desktop / Cursor

MCP 設定(claude_desktop_config.json または .cursor/mcp.json)に追加します:

{
  "mcpServers": {
    "qr-for-agent": {
      "command": "npx",
      "args": ["-y", "qr-for-agent"],
      "env": {
        "API_KEY": "your-api-key",
        "BASE_URL": "https://api.qrforagent.com"
      }
    }
  }
}
利用可能なツール(37)
ツール説明
create_qr_codeカスタムスタイルを任意で指定してURLのQRコードを作成します
get_qr_code短縮IDでQRコードの詳細を取得します
update_qr_destinationQRコードのリダイレクト先を変更します
list_qr_codesページネーションを使ってすべてのQRコードを一覧表示します
delete_qr_codeQRコードとその分析データを削除します
get_qr_analyticsスキャン数と内訳を取得します
bulk_create_qr_codes一度に最大50個のQRコードを作成します
bulk_update_qr_codes一度に最大50個のQRコードを更新します
bulk_delete_qr_codes一度に最大50個のQRコードを削除します
create_vcard_qrvCard連絡先のQRコードを作成します
create_wifi_qrWiFi認証情報のQRコードを作成します
create_email_qrメール(mailto:)のQRコードを作成します
create_sms_qrSMSのQRコードを作成します
create_phone_qr電話発信のQRコードを作成します
create_event_qrカレンダーイベントのQRコードを作成します
create_text_qrプレーンテキストのQRコードを作成します
create_location_qr地理的位置情報のQRコードを作成します
create_social_qrソーシャルメディアリンクのQRコードを作成します
create_app_store_qrアプリストアへスマートリダイレクトするQRコードを作成します
update_vcard_qrvCardのQRコードを更新します
update_wifi_qrWiFiのQRコードを更新します
update_social_qrソーシャルメディアのQRコードを更新します
update_app_store_qrアプリストアのQRコードを更新します
create_webhookWebhookエンドポイントを登録します
list_webhooks登録済みのすべてのWebhookを一覧表示します
delete_webhookWebhookを削除します
registerAPIキーを登録します
get_usage現在の使用量とクォータを取得します
upgrade_to_proStripe Checkoutセッションを作成します
manage_billingStripeの請求ポータルを開きます
set_utm_paramsQRコードにUTMトラッキングパラメーターを設定します
set_redirect_rulesQRコードに条件付きリダイレクトルールを設定します
set_custom_domainカスタムドメインを設定または削除します(Pro)
get_custom_domain現在のカスタムドメインとDNSの状態を取得します
bulk_create_from_csvCSVデータから最大500個のQRコードを作成します(Pro)
record_conversionスキャン後のコンバージョンイベントを記録します
get_conversionsQRコードのコンバージョン統計を取得します

設定

.env.exampleを.envにコピーして編集します。

変数デフォルト説明
PORT3100HTTPポート
HOST0.0.0.0バインドアドレス
BASE_URLhttp://localhost:3100公開URL(短縮URLで使用)
DATABASE_URL./data/qr-agent.dbSQLiteファイルのパス
SHORT_ID_LENGTH8生成される短縮IDの長さ
ADMIN_SECRET(なし)管理者エンドポイント用のシークレット(X-Admin-Secretヘッダー)
STRIPE_SECRET_KEY(なし)Stripe APIシークレットキー
STRIPE_WEBHOOK_SECRET(なし)Stripe Webhook署名シークレット
STRIPE_PRICE_ID(なし)ProプランのStripe Price ID

データベース

Drizzle ORMを使用したSQLiteです。テーブルは6つあります。

  • api_keys — ラベル、メールアドレス、プラン(free/pro)、Stripe ID、カスタムドメインを含むキーの保存
  • qr_codes — QRコードのメタデータ、ターゲットURL、タイプ/type_data、スタイルオプション、UTM、GTM、リダイレクトルール、有効期限/スケジュール
  • scan_events — スキャンの追跡:タイムスタンプ、ユーザーエージェント、リファラー、IP、デバイス、ブラウザー、OS、国、都市
  • webhooks — APIキーごとのWebhookエンドポイント、HMACシークレット、購読イベント
  • webhook_deliveries — 配信ログ:ステータス、レスポンスコード、エラーメッセージ
  • conversion_events — コンバージョンの追跡:イベント名、値、メタデータ、リファラー、IP、タイムスタンプ
npm run db:generate   # Generate migration from schema changes
npm run db:migrate    # Apply pending migrations
npm run db:studio     # Open Drizzle Studio (web UI)

マイグレーションはサーバーの起動時に自動実行されます。

デプロイ

Docker
docker compose up -d

データベースはDockerボリュームに保存されます。

Railway

このプロジェクトにはrailway.tomlとマルチステージのDockerfileが含まれています。GitHubリポジトリをRailwayに接続すると、/healthでのヘルスチェックとともにビルドとデプロイが自動的に行われます。

テスト

すべてのエンドポイント、認証、マルチテナント分離、QR タイプ、Webhook、一括操作、カスタムドメイン、フレーム、変換、CSV アップロード、分析を対象とする、195 件の統合テストがあります。

npm test           # Run all tests
npm run test:watch # Watch mode

スクリプト

スクリプト説明
npm run dev自動リロード付きで開発サーバーを起動します
npm run buildTypeScript をコンパイルします
npm start本番サーバーを実行します
npm testテストスイートを実行します
npm run test:watchウォッチモードでテストを実行します
npm run key:createAPI キーを作成します
npm run key:listAPI キーを一覧表示します
npm run db:generateマイグレーションを生成します
npm run db:migrateマイグレーションを実行します
npm run db:studioDrizzle Studio を開きます

ライセンス

MIT

コメント

MCP は初めてですか?

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

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