AttriKit について
AttriKitは、iOS・AndroidアプリのWeb-to-Appアトリビューションを管理するチーム向けのstdio MCPサーバーです。AttriKitの公開APIを通じて、キャンペーン、広告費、判断、連携、データエクスポートを操作できます。
主な機能
- 01アプリとキャンペーンリンクの管理
- 02広告費の取り込みと確認
- 03キャンペーン判断の取得と記録
- 04広告連携の管理
- 05インストールとイベントのエクスポート
活用シーン
- 01アプリ広告のキャンペーンリンク作成
- 02広告費とキャンペーン判断の確認
- 03アトリビューションイベントのエクスポート
MCP 対応
stdioのMCPサーバーとして、AttriKit公開Management APIに基づく39個のツールを提供します。APIキーとそのスコープによって、クライアントが実行できる読み取りや変更が決まります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @attrkit/mcpATTRKIT_API_KEYシークレットAttriKit management key (sk_...), created in Dashboard > Settings > API keys & MCP. On macOS, `npx -y @attrkit/mcp login` can store it in the Keychain instead.ATTRKIT_API_URLAttriKit API base URL.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
39掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@attrkit/mcp
iOS および Android アプリ向けのウェブからアプリへのアトリビューションを提供する AttriKit 用の stdio MCP サーバーです。広告を出稿するアプリで利用できます。Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、VS Code、Windsurf から、キャンペーンリンクの作成、広告費のインポート、各キャンペーンの拡大・停止・継続の判断の確認、インストールとイベントのエクスポートを行えます。AttriKit の公開 API を利用する薄いクライアントです。データベースにはアクセスせず、テナントの範囲はシークレット管理キーから解決されます。
ソース:KamyarTaher/attrikit-mcp。問題はそちら、または [email protected] まで報告してください。MIT ライセンスです。
提供する機能
サーバーは 39 個のツールを提供します。
| 分野 | ツール |
|---|---|
| キーの範囲 | whoami |
| ワークスペースの使用状況 | get_usage_cap, set_usage_cap |
| アプリ | list_apps, create_app, get_app, update_app, archive_app |
| SDK キー | get_publishable_key, rotate_publishable_key |
| 管理キー | list_api_keys, create_api_key, revoke_api_key |
| キャンペーンリンク | list_links, create_campaign_link, update_link_status |
| 判断とレポート | list_campaigns, list_ads, list_recent_events, list_event_deliveries, get_campaign_decision, record_campaign_decision, get_attribution_rollup, lookup_customer_attribution |
| 広告費とコスト | get_spend, import_spend, set_cost_model, pull_network_spend |
| 広告連携 | list_integrations, create_integration, update_integration, delete_integration |
| RevenueCat | get_revenuecat, configure_revenuecat |
| アウトバウンド Webhook | list_webhooks, create_webhook, delete_webhook |
| データエクスポート | export_events |
| サーバーイベント | send_server_event |
get_campaign_decision は、エンジンの判断をそのまま返します。モデルはその判断を報告し、再計算は行いません。
Meta または TikTok との連携には、2 つの配信オプションがあります。delivery_scope は all(デフォルト。測定への同意があるすべてのインストール。オーガニックのインストールも含みます)または attributed(AttriKit がそのネットワークにアトリビューションするインストールのみ。クリック ID、リンクトークン、または配信下限以上の Matched インストール)です。renewal_event は purchase(デフォルト。更新を Purchase として送信します)または custom(値とともにカスタムイベント subscription_renewed として送信します)です。これらは create_integration で設定するか、後から update_integration とアクション set_delivery_options を使って設定できます。このアクションでは、認証情報とステータスは変更されません。Google 連携では attributed と custom は指定できません。
接続する前に
Node.js 22 以降をインストールしてください。npx -y @attrkit/mcp コマンドでサーバーが自動的にダウンロードされて起動するため、グローバルインストールは不要です。
2.0.0 以降では Node.js 22 が必要です。
engines.nodeは>=22です。1.x では Node.js 18 が利用可能でした。 クライアントが古い Node.js でサーバーを起動する場合は、Node.js をアップグレードするか、@attrkit/mcp@1を固定してください。ツール、その入力、出力に変更はありません。
最初のワークスペース管理キーは、 ダッシュボード → 設定 → API キーと MCP で作成します。この初回セットアップにはダッシュボードが必要です。
最初のキーを作成すると、ワークスペースにスコープされた読み書きキーで、Management API から利用できるすべての顧客操作を管理できます。アプリ、委任キー、使用上限、連携、エクスポートが含まれます。
クライアントに必要なアクセス権が少ない場合は、読み取り専用キーまたはアプリにスコープされたキーを使用してください。アプリにスコープされたキーでは、ワークスペースの使用上限の読み取りや変更、同じ階層のアプリの作成、ワークスペース全体の連携管理はできません。
サーバーにキーを設定する
macOS では、キーを一度だけキーチェーンに保存します。
npx -y @attrkit/mcp login
エコーをオフにしてキーの入力を求め、AttriKit に対して検証し(プランとスコープを表示します)、その後キーをキーチェーン項目 attrkit-mcp に保存します。キーがプロセス一覧に表示されることはありません。
npx -y @attrkit/mcp logout を実行すると、この項目が削除されます。
どのシステムでも、代わりに MCP クライアントを起動するプロセスの環境変数として ATTRKIT_API_KEY を設定するか、クライアント独自のシークレットストアに保存できます。
サーバーは起動時に、次の順序でキーを解決します。
- 実際の値が設定されている場合は、
ATTRKIT_API_KEY。 - macOS の場合は、キーチェーン項目
attrkit-mcp。空のATTRKIT_API_KEY、またはクライアントによって展開されずに残った値($ATTRKIT_API_KEY、${ATTRKIT_API_KEY}、${ATTRKIT_API_KEY:-}、${env:ATTRKIT_API_KEY}、${input:attrkit-key})は、未設定として扱われます。 - それ以外の場合は、修正方法を示すエラーを出して終了します。
Codex
このサーバーを ~/.codex/config.toml に追加します。
[mcp_servers.attrkit]
command = "npx"
args = ["-y", "@attrkit/mcp"]
env = { ATTRKIT_API_URL = "https://attrikit.io" }
env_vars = ["ATTRKIT_API_KEY"]
codex mcp get attrkit
Codex のセットアップガイドを参照してください。
Cursor
1 つのプロジェクトに適用する場合は .cursor/mcp.json に、すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json にサーバーを追加します。
{
"mcpServers": {
"attrkit": {
"command": "npx",
"args": ["-y", "@attrkit/mcp"],
"env": {
"ATTRKIT_API_KEY": "${env:ATTRKIT_API_KEY}",
"ATTRKIT_API_URL": "https://attrikit.io"
}
}
}
}
次に、有効にして使用可能なツールを確認します。
cursor-agent mcp list
cursor-agent mcp list-tools attrkit
Cursor のセットアップガイドを参照してください。
Gemini CLI
このサーバーを ~/.gemini/settings.json に追加します。
{
"mcpServers": {
"attrkit": {
"command": "npx",
"args": ["-y", "@attrkit/mcp"],
"env": {
"ATTRKIT_API_KEY": "$ATTRKIT_API_KEY",
"ATTRKIT_API_URL": "https://attrikit.io"
}
}
}
}
gemini mcp list
Gemini のセットアップガイドを参照してください。
その他の MCP クライアント
コマンドを npx、引数を ["-y", "@attrkit/mcp"] とし、環境変数 ATTRKIT_API_KEY を設定した stdio サーバーを構成します。
環境変数の展開方法はクライアントによって異なるため、クライアントのシークレット管理に関するドキュメントに従ってください。ATTRKIT_API_URL は任意で、デフォルト値は https://attrikit.io です。
フィールド名
ツールの入力スキーマは snake_case(bundle_id、store_url、campaign_id)で、REST のドキュメントとしても利用できます。Management API では、クエリ文字列と JSON リクエスト本文に同じ snake_case のフィールド名を使用できます(camelCase も使用可能です)。レスポンスは常に snake_case です。検証エラーを特定のフィールドに関連付けられる場合、フィールド単位の詳細は error.fields の下に返されます。不正な JSON の場合は、名前を示すフィールドがありません。invalid_cursor、invalid_url、ssrf_blocked など、コード自体で内容を示す拒否では、コードのみが返されます。
ローカルでテストする
ATTRKIT_API_KEY=sk_... npx @modelcontextprotocol/inspector npx -y @attrkit/mcp
Inspector にはツールの一覧が表示され、稼働中のワークスペースに対してツールを呼び出せます。
アクセス範囲
| 制御 | Management API と MCP |
|---|---|
| 最初のキー取得後の顧客向け操作 | ワークスペース単位の読み書きキーで利用可能 |
| 最初のワークスペース管理キー | ダッシュボードでの初期設定のみ |
| 請求とサブスクリプション | 利用不可 |
| サインインと組織メンバーシップ | 利用不可 |
| ワークスペースの削除 | 利用不可 |
| 内部管理 | 利用不可 |
HTTP の全機能については、Management API ガイドと OpenAPI コントラクトを参照してください。
注意事項
- stdio のみです。このパッケージはネットワークポートを開きません。
- キーのスコープによって、読み取りと書き込みが制限されます。読み取り専用キーで変更を行うと、すべての操作で
403 forbidden_scopeが返されます。 - アプリスコープのキーでは、ほかのアプリを作成したり、同じ階層にある別のアプリにアクセスしたり、ワークスペース全体のインテグレーションを管理したりすることはできません。
- アプリの作成、管理キーの作成、Webhook の作成では、シークレット値が一度だけ返されます。ツールの結果から取得してください。リスト表示ツールが返すのは、マスクされたメタデータのみです。
- 削除以外の変更ツールでは、任意の
idempotency_keyを指定できます。同じ値を再利用できるのは、まったく同じ内容で再試行する場合のみです。一度限りのシークレット応答は保存時に暗号化され、安全に再送されます。削除ツールではこのパラメーターを受け付けません。DELETE 操作では削除を複数回適用できないためです。 - 管理キーには、キーごとのグローバル制限、変更操作の制限、負荷の高い操作の分散制限が適用されます。
429応答にはRetry-Afterが含まれます。再試行する前に、少なくとも指定された秒数だけ待ってください。 - すべての診断メッセージは stderr に出力されます。stdout は MCP トランスポート専用です。
- MCP クライアントは環境変数の値をローカル設定に保存します。キーを含む設定を絶対にコミットしないでください。ファイルへのアクセスを制限し、キーが漏えいした場合は失効させてください。
1.0.0 への移行
バージョン 1.0.0 ではツールの入力スキーマが正式化され、ランタイム設定の検証が改善されました。また、バージョン 0.4.6 からの破壊的変更として、次の 3 つの制限が導入されています。
import_spendでの広告 ID のペア指定:adset_idとad_id(および camelCase エイリアスのadsetIdとadId)は、両方を指定するか、両方とも省略する必要があります。バージョン 0.4.6 のスキーマではどちらか一方のフィールドのみでも受け付けていましたが、基盤となる API ではペアになっていない呼び出しが拒否されていました。バージョン 1.0.0 ではこの検証をクライアント側で行うようになりました。record_campaign_decisionのcampaign_idに対する厳密な UUID 形式の検証:campaign_idは、有効な RFC 4122 UUID である必要があります。バージョン 0.4.6 では、空でなければ任意の文字列を受け付けていました。readConfigの API ベース URL(ATTRKIT_API_URL)に対する厳密な検証:readConfigでは、起動時に致命的エラーとなる次の 4 つの条件で拒否されます(違反時は stderr に出力され、終了コード 1 で終了します)。- プロトコルの拒否:ループバック以外の HTTP エンドポイントは拒否されます(
protocol must be HTTPS, except HTTP is allowed for localhost development)。HTTP はループバックインターフェース(localhost、127.0.0.1、[::1])でのみ許可されます。リモートホストではhttps:を使用する必要があります。 - 認証情報の拒否:URL に埋め込まれた基本認証の認証情報は拒否されます(
credentials are not allowed in ATTRKIT_API_URL)。API 認証にはATTRKIT_API_KEYを指定してください。 - クエリ文字列の拒否:ベース URL にクエリパラメーターが含まれている場合は拒否されます(
query strings are not allowed in ATTRKIT_API_URL)。 - フラグメントの拒否:ベース URL にフラグメント識別子が含まれている場合は拒否されます(
fragments are not allowed in ATTRKIT_API_URL)。 (さらに、URL の解析に失敗する不正な文字列はInvalid URLをスローし、終了コード 1 で終了します。)
- プロトコルの拒否:ループバック以外の HTTP エンドポイントは拒否されます(
また、バージョン 0.4.6 形式のエンコードでは、ドットセグメントの ID がアプリのルートから逸脱していました。バージョン 1.0.0 では、次の 7 つのアプリツールすべてで、ドットセグメントの ID がルート内にとどまるようになりました(get_app、update_app、archive_app、get_publishable_key、rotate_publishable_key、get_revenuecat、configure_revenuecat)。
リリースの詳細については、CHANGELOG.md を参照してください。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。