mcpField
H
horizOn

horizOn

ローカル
horizon.pm開発ツール06 日前に更新

horizOn について

horizOn MCP Serverは、Godot、Unity、Unrealを使うゲーム・アプリ開発者向けに、horizOnバックエンドのドキュメント、ライブAPIツール、ワークフロープロンプトを提供します。ドキュメントはキー不要ですが、バックエンドツールにはAPIキーが必要です。

主な機能

  1. 01バックエンドのドキュメントリソース
  2. 02プレイヤー向けAPIツールの呼び出し
  3. 034種類のワークフロープロンプト
  4. 04読み取り・書き込みの注釈
  5. 05Godot、Unity、Unrealの資料

活用シーン

  1. 01ゲームバックエンドAPIの仕様確認
  2. 02プレイヤーのクラウドセーブの読み書き
  3. 03ランキング、フレンド、実績の確認
  4. 04Godot、Unity、Unrealへのバックエンド統合

MCP 対応

MCPサーバーは29個のドキュメントリソース、120個のプレイヤーツール、4種類のワークフロープロンプトを公開します。リソースはAPIキー不要ですが、ライブAPIツールには有効なキーが必要で、一部はプレイヤーセッションも必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"projectmakersde-horizon": {
"command": "npx",
"args": [
"-y",
"horizon-mcp"
],
"env": {
"HORIZON_API_KEY": "<HORIZON_API_KEY>",
"HORIZON_ACCOUNT_API_KEY": "<HORIZON_ACCOUNT_API_KEY>",
"HORIZON_BASE_URL": "<HORIZON_BASE_URL>"
}
}
}
}
起動コマンドnpx -y horizon-mcp
設定が必要な環境変数
HORIZON_API_KEYシークレットhorizOn project API key for the live API tools. The documentation works without it.
HORIZON_ACCOUNT_API_KEYシークレットhorizOn account key for the dashboard admin tools.
HORIZON_BASE_URLAPI base URL.

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

パッケージ
npmhorizon-mcp1.9.1

ツール

34

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

このツールにパラメーターはありません。

詳細

horizOn MCP サーバー

npm version npm downloads License: MIT

horizOn Backend-as-a-Service 向け MCP サーバー

ゲームやアプリの開発に役立つドキュメント、ライブ API ツール、ワークフロープロンプトを AI コーディングアシスタントに提供します。


クイックインストール

MCP クライアントの設定(Claude Desktop、Cursor など)に追加します。

{
  "mcpServers": {
    "horizOn": {
      "command": "npx",
      "args": ["-y", "horizon-mcp"],
      "env": {
        "HORIZON_API_KEY": "your-api-key-here"
      }
    }
  }
}

機能

このサーバーは、29 個のドキュメントリソース、120 個のプレイヤーツール、4 個のワークフロープロンプトを公開します。Account Key を設定すると、追加のスコープ付き管理ツールを利用できます。これらの数は、登録済みの MCP リソース、ツール、プロンプトに基づいています。

リソース

ドキュメントリソースは MCP サーバーから直接提供されます。API キーは不要です。

URI説明
horizon://docs/marketplace元アイテムのエスクロー、正確な価格、保護された受信箱への返却、スコープを限定した復旧。
horizon://docs/chatダイレクト/グループ/プロジェクトのテキスト、メタデータのみのリアルタイム通信、増分スナップショット、元の領収記録、スコープを限定したモデレーション。
horizon://docs/matches不透明なターン状態、正確なリビジョン、不変のレポート、期限の上限設定、元のランク付き実行の復旧。
horizon://docs/shared-objects上限付きの不透明なワールドデータ、現在の権限、正確なリビジョン、信頼できる通常のゲーム通知。
horizon://docs/items一意なインベントリ、上限付きアイテムプロパティ、サーバーが所有するアトミックな購入
horizon://docs/groupsギルド、ロール、上限付きのメンバーページ、リビジョンを安全に扱うメンバーシップ操作
horizon://docs/friendsアトミックなソーシャル関係、明示的なリビジョン、正確な公開フレンドコード検索
horizon://docs/achievementsバージョン管理された定義、永続的な達成ビット、即時のアトミックな値報酬
horizon://docs/inboxセッション受信箱、保護された報酬、不変の一斉配信、サーバークロック、安全な公開リトライ
horizon://docs/statisticsアトミックなセッションカウンター、安全な整数バッチ、明示的な元の ID、キャッシュ/UTC による復旧。SDK と管理者向けの例
horizon://docs/player-valuesアトミックな残高とオファー、安定した操作 ID、3 種類すべての SDK、安全なリトライ、サポートによる修正
horizon://overviewhorizOn とは何か、主要な概念(Account と User の違い)、機能、ティアシステム、API 構成、SDK
horizon://docs/auth認証方法(Anonymous、Email、Google)、エンドポイント、SDK のコード例、一般的なエラー
horizon://docs/leaderboardリーダーボードへのスコア送信、上位エントリー、ユーザーの順位、ユーザー周辺のエントリー、各エントリーのプレイヤープロフィール、検証済みのみのボード、SDK の例
horizon://docs/cloud-saveJSON データとバイナリデータのクラウド保存/読み込み、ティアごとのサイズ制限、SDK の例
horizon://docs/remote-configサーバー側のキーと値による設定:機能フラグ、ゲームバランス、A/B テスト。SDK の例
horizon://docs/localization15 言語に対応したサーバー側のローカライズ済み文字列:キーごとの翻訳、単一/一括取得、利用可能な言語。SDK の例
horizon://docs/news言語フィルタリングに対応したゲーム内ニュースとお知らせ。SDK の例
horizon://docs/gift-codesギフトコードの検証と引き換え、コスメティックの付与、サーバーが所有する値報酬、コンパクトな V2 元インテント、正確なカウンター文字列。SDK の例
horizon://docs/player-profileプロジェクトごとのコスメティックカタログに基づくプレイヤーのアバター、フレーム、バッジ、ギフトコードによる付与でのアンロック、リーダーボードエントリー内のプロフィール。SDK の例
horizon://docs/validated-actionsサーバー検証済みの実行:サーバーシード付きの使い捨て実行チケット、SHA-256 入力ログハッシュ、サーバー専用ルール、検証済みのみのリーダーボード、サーバーが所有するプレイヤー状態、開始コンテキスト、証拠のアップロード、sus パッケージを使った管理者による証拠レビューとパッケージのエクスポート、拒否コード。SDK の例
horizon://docs/feedbackバグ報告、機能リクエスト、一般的なフィードバックの送信。SDK の例
horizon://docs/user-logsサーバー側のイベントおよびエラー追跡。BASIC ティア以上が必要です。SDK の例
horizon://docs/crash-reportingクラッシュレポートの送信、セッション追跡、フィンガープリント化、パンくず情報、自動回帰検出。SDK の例
horizon://api/referencehorizOn App API の全エンドポイントを対象とした、リクエスト/レスポンススキーマ付きの完全な API リファレンス
horizon://quickstart/godotGDScript の例を使って Godot に horizOn を統合する手順ガイド
horizon://quickstart/unityC# の例を使って Unity に horizOn を統合する手順ガイド
horizon://docs/email-sending登録ユーザーへのトランザクションメールおよびイベントベースのメール配信。テンプレート、スケジュール設定、ステータス追跡、SMTP 統合。SDK の例
horizon://quickstart/unreal公式 horizOn SDK プラグインを使って Unreal Engine 5.5+ に horizOn を統合する手順ガイド。C++ と Blueprint の例
プレイヤー向けツール

horizOn バックエンドを呼び出すライブ API ツールです。有効な API キーが必要です。

horizon_submit_score、horizon_save_cloud_data、horizon_load_cloud_data、horizon_prepare_gift_code、horizon_redeem_gift_code、horizon_get_profile、horizon_set_profile、horizon_start_run、horizon_submit_validated、horizon_get_state、horizon_upload_evidence では、プレイヤーのセッションも必要です。先にサインインし、返された accessToken を sessionToken として渡してください。

4 つのプレイヤー価値ツールでも、同じプレイヤーセッションが必要です。結果が不確かな場合は、別の操作 ID を自動生成しないでください。

すべてのツールで MCP アノテーション(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)が宣言されているため、クライアントは読み取りと書き込みを判別できます。破壊的なツールの例として、horizon_save_cloud_data(セーブデータを置き換えます)、horizon_set_profile(プロフィール全体を置き換えます)、horizon_submit_validated(チケットを消費し、残高を使用する場合があります)、horizon_cancel_email のほか、horizon_purchase_player_value_offer と horizon_adjust_player_value(保存済みの操作 ID ごとに正確に 1 回、残高を引き落とすか加算します)があります。オブジェクトを返す多くの読み取りツールでは、outputSchema も宣言されており、JSON テキストに加えて structuredContent も返されます。各ツールの説明には、使用する場面、代わりに使う関連ツール、返される内容、エラーからの復旧方法が記載されています。

ツール説明
horizon_test_connectionhorizOn API への接続をテストします(ヘルスチェック)。
horizon_signup_anonymous新しい匿名ユーザーアカウントを作成します。
horizon_signup_emailメールアドレスとパスワードで新しいユーザーアカウントを作成します。
horizon_signin_emailメールアドレスとパスワードでサインインします。
horizon_signin_anonymous匿名トークンでサインインします。
horizon_check_authユーザーセッションがまだ有効かどうかを確認します。
horizon_list_leaderboards複数のボードを対象とした呼び出しで使用できるリーダーボードを一覧表示します。
horizon_submit_scoreリーダーボードにスコアを送信します(検証済みスコアの送信が必須のボードでは 403 VALIDATED_SUBMIT_REQUIRED が返されます)。
horizon_get_leaderboard_top各プレイヤーのプロフィールを含むリーダーボード上位のエントリーを取得します。ボードキーを指定することもできます。
horizon_get_user_rankユーザーのリーダーボード順位を取得します。ボードキーを指定することもできます。
horizon_get_leaderboard_aroundユーザーの順位の前後にあるリーダーボードエントリーを取得します。ボードキーを指定することもできます。
horizon_save_cloud_dataユーザーのクラウドデータを保存します。必要に応じて expectedRevision の値が一致する場合にのみ保存します(競合時は 409)。
horizon_load_cloud_dataユーザーのクラウドセーブデータを revision とともに読み込みます。
horizon_get_remote_configキーを指定して、単一のリモート設定値を取得します。
horizon_get_all_remote_configsすべてのリモート設定値を取得します。
horizon_get_localizationキーを指定して、ローカライズ済み文字列を1つ取得します。必要に応じて言語も指定できます。
horizon_get_all_localizationsすべてのローカライズ済み文字列を取得します。必要に応じて言語も指定できます。
horizon_get_localization_languagesアプリでローカライズが提供されている言語を一覧表示します。
horizon_get_newsニュース記事を取得します。必要に応じて言語で絞り込めます。
horizon_validate_gift_codeギフトコードを引き換えずに検証します。
horizon_prepare_gift_code読み取り専用の V2 準備処理です。消費する前に、元の7つのインテントフィールドすべてを永続化します。
horizon_redeem_gift_code保存済みの intent を明示的に消費または再試行します。再実行時は現在の状態を返し、自動置換や V1 への変換は行いません。
horizon_get_profileプレイヤーのプロフィール(アバター、フレーム、バッジ)、アンロック項目、およびコスメティックのカタログを取得します。
horizon_set_profileプレイヤーのプロフィール全体(アバター、フレーム、最大3個のバッジ)を置き換えます。
horizon_get_player_valuesアクティブなプレイヤーセッションで残高と操作ウィンドウを読み取ります。
horizon_get_player_value_offersプレイヤー向けに設定されたオファーを読み取ります。
horizon_purchase_player_value_offer呼び出し元が永続化した操作 ID を使って、アトミックに購入します。
horizon_adjust_player_value明示的に有効化された上限内で、安定した ID と理由を指定して値を調整します。
horizon_start_runサーバー検証付きのランを開始します。サーバーシード付きの使い捨てチケットを発行し、必要に応じてボードに紐付けます。また、開始コンテキスト(ゲーム、コンテンツ、シミュレーションおよびリプレイ形式のバージョン、コンテンツダイジェスト、base64 形式の初期状態)を指定できます。
horizon_submit_validatedチケットと入力ログの SHA-256 ハッシュ(指定するか、base64 バイト列またはテキストからローカルで計算)を使ってランの結果を送信します。必要に応じてサーバー管理値の earned も送信できます。sus(受け付けられたものの、ソフトしきい値を超過)を返します。拒否時は code に理由が示されます。
horizon_get_stateプレイヤーのサーバー管理値(残高、今日獲得した値、値キーごとの1日あたり上限)を読み取り専用で取得します。
horizon_upload_evidence結果の送信時に証拠の提出を求められたランについて、入力ログ(テキストまたはローカルでエンコードした base64)をアップロードします。拒否時は code に理由が示されます。
horizon_get_statisticsプレイヤーの統計スナップショットとサーバー操作ウィンドウを読み取ります。
horizon_get_statistics_definitionsプロジェクトの統計カタログを、バージョンに応じて読み取ります。
horizon_update_statistics呼び出し元が永続化した操作 ID を使用して、明示的なセッションバッチを1つアトミックに適用します。
horizon_get_achievements表示可能な実績の定義と、永続的な達成済みフラグを読み取ります。
horizon_unlock_achievement認証済みプレイヤーについて、設定済みの手動実績を1つアンロックします。アンロックは一度だけ行われます。
horizon_deliver_achievement_rewards元の実績キーを最大8個指定して、互換性報酬のステータスを読み取ります。
horizon_get_friendsフレンド、受信・送信したリクエスト、ブロック、および現在の上限を読み取ります。
horizon_find_playerこのプロジェクト内で、UUID または正規形式の H- フレンドコードが完全一致する公開プレイヤーを1人検索します。
horizon_send_friend_request確認済みのプレイヤーリビジョンを使用してフレンドリクエストを送信します。
horizon_accept_friend_request確認済みのプレイヤーリビジョンを使用してフレンドリクエストを承認します。
horizon_decline_friend_request確認済みのプレイヤーリビジョンを使用してフレンドリクエストを拒否します。
horizon_cancel_friend_request確認済みのプレイヤーリビジョンを使用してフレンドリクエストを取り消します。
horizon_remove_friend確認済みのプレイヤーリビジョンを使用してフレンドを削除します。
horizon_block_player確認済みのプレイヤーリビジョンを使用してプレイヤーをブロックします。
horizon_unblock_player確認済みのプレイヤーリビジョンを使用してプレイヤーのブロックを解除します。
horizon_get_groups一致するプレイヤーセッションを使用して、自分のグループを読み取ります。
horizon_get_group一致するプレイヤーセッションを使用してグループを読み取ります。
horizon_get_group_members一致するプレイヤーセッションを使用してグループメンバーを読み取ります。
horizon_get_group_pending一致するプレイヤーセッションを使用して、グループへの保留中のリクエストを読み取ります。
horizon_create_groupサーバーが識別する新しいグループとそのリーダーをアトミックに作成します。
horizon_update_groupグループのメタデータ全体とプライベート JSON オブジェクトを置き換えます。
horizon_join_group確認済みのグループリビジョンを使用して、明示的に指定されたグループ参加アクションを適用します。
horizon_request_group_join確認済みのグループリビジョンを使用して、明示的に指定されたグループ参加リクエストアクションを適用します。
horizon_invite_group_player確認済みのグループリビジョンを使用して、明示的に指定されたプレイヤー招待アクションを適用します。
horizon_accept_group_invite確認済みのグループリビジョンを使用して、明示的に指定されたグループ招待承認アクションを適用します。
horizon_decline_group_invite確認済みのグループリビジョンを使用して、明示的に指定されたグループ招待拒否アクションを適用します。
horizon_cancel_group_invite確認済みのグループリビジョンを使用して、明示的に指定されたグループ招待取り消しアクションを適用します。
horizon_accept_group_request確認済みのグループリビジョンを使用して、明示的に指定されたグループリクエスト承認アクションを適用します。
horizon_decline_group_request確認済みのグループリビジョンを使用して、明示的に指定されたグループリクエスト拒否アクションを適用します。
horizon_cancel_group_request確認済みのグループリビジョンを使用して、明示的に指定されたグループリクエスト取り消しアクションを適用します。
horizon_leave_group確認済みのグループリビジョンを使用して、明示的に指定されたグループ退出アクションを適用します。
horizon_remove_group_member確認済みのグループリビジョンを使用して、明示的に指定されたグループメンバー削除アクションを適用します。
horizon_set_group_member_role確認済みのグループリビジョンを使用して、明示的に指定されたグループメンバーのロール設定アクションを適用します。
horizon_transfer_group_leadership確認済みのグループリビジョンを使用して、明示的に指定されたグループリーダー権限の譲渡アクションを適用します。
horizon_delete_group確認済みのグループリビジョンを使用して、明示的に指定されたグループ削除アクションを適用します。
horizon_get_itemsプレイヤーの上限付き一意アイテムインベントリを読み取ります。
horizon_get_item_catalogアーカイブ済みテンプレートを含む、上限付きアイテムテンプレートページを1つ読み取ります。
horizon_adjust_item確認済みのインベントリリビジョンを使用してアイテムのプロパティを調整します。
horizon_equip_item確認済みのインベントリリビジョンを使用してアイテムの装備状態を設定します。
horizon_discard_item確認済みのインベントリリビジョンを使用してアイテムを破棄します。
horizon_get_shared_collections永続コレクションカタログのページを1つ読み取ります。
horizon_get_shared_usage現在のプレイヤーの数と、1つのコレクションに対する作成前提条件を読み取ります。
horizon_get_shared_object現在の権限の範囲内でオブジェクトを1つ読み取ります。
horizon_query_shared_objectsメタデータで選択された上限付きオブジェクトページを1つ読み取ります。
horizon_create_shared_object元の所有者使用量リビジョンを使って、サーバー ID のオブジェクトを1つ作成します。
horizon_update_shared_object正確に一致するリビジョンのもとで、オブジェクトの不透明なバイト列と設定済みの検索データを置き換えます。
horizon_delete_shared_objectリビジョンが正確に一致するオブジェクトを1つ削除し、保存済みの料金を返金します。
horizon_get_matchesプレイヤーの上限付きアクティブ、招待済み、および最近のマッチ概要を読み取ります。
horizon_get_match_limitsプレイヤーの5段階の上限とプロジェクトの機能を読み取ります。
horizon_find_open_matches現在のブロック状態とアクティブなオーナーの確認のもとで、強さで絞り込まれたオープンロビーのページを1つ読み取ります。
horizon_get_match現在認可されているマッチのスナップショットを1つ読み取ります。
horizon_create_match元のプレイヤー台帳リビジョンを使用して、サーバー ID のロビーを1つ作成します。
horizon_join_match元のリビジョンが正確に一致する場合にマッチ参加を実行します。
horizon_decline_match_invite元のリビジョンが正確に一致する場合にマッチ招待の拒否を実行します。
horizon_start_match元のリビジョンが正確に一致する場合にマッチ開始を実行します。
horizon_submit_match_turn元のリビジョンが正確に一致する場合にマッチターンの送信を実行します。
horizon_advance_match_timeout元のリビジョンが正確に一致する場合にマッチのタイムアウト進行を実行します。
horizon_leave_match元のリビジョンが正確に一致する場合にマッチ退出を実行します。
horizon_cancel_match元のリビジョンが正確に一致する場合にマッチロビーのキャンセルを実行します。
horizon_report_match_result凍結された最終状態について、この参加者の変更不可の報告を記録します。
horizon_start_match_ranked_run合意が完全に成立した後、元のマッチに紐付いた検証済みランを新規作成するか、既存のものを復元します。
horizon_get_chat_limits5段階の上限、現在のモデレーション設定、およびホスト機能を読み取ります。
horizon_open_chat_channel現在の権限の範囲内で、決定論的なダイレクト、グループ、またはプロジェクトチャットを開きます。
horizon_sync_chat_channelサブスクリプションの再同期、イベント、またはユーザーの明示的な操作の後に、認可済みの差分スナップショットを読み取ります。
horizon_send_chat_messageプレーンテキストを一度送信するか、元の操作を明示的に完全再実行します。
horizon_get_chat_operation現在のプレイヤーが保持している、元の送信レシートを読み取ります。
horizon_report_chat_message現在表示可能なメッセージを、元の理由とともに報告します。
horizon_get_marketplace_limits現在の自分のマーケットプレイス状態または設定済みの上限を読み取ります。
horizon_get_marketplace現在の自分のマーケットプレイス状態または設定済みの上限を読み取ります。
horizon_get_marketplace_rulesリビジョン整合性のある上限付きルールページを1つ読み取ります。
horizon_query_marketplace_listingsアイテムと価格で絞り込まれた、上限付きのアクティブな出品ページを1つ読み取ります。
horizon_get_marketplace_listing認可された出品、または自分の元の操作レシートを1つ読み取ります。
horizon_get_marketplace_operation認可された出品、または自分の元の操作レシートを1つ読み取ります。
horizon_create_marketplace_listing明示的に承認された価格と手数料設定で、元の未装備アイテムを1つ出品します。
horizon_buy_marketplace_listing元のリビジョン、通貨、価格を使用して、指定された出品を購入します。
horizon_cancel_marketplace_listing元の出品リビジョンをキャンセルし、保護された保留中のアイテム返却として処理します。
horizon_retry_marketplace_return現在の返却所有者が明示的に要求した、保留中の返却処理を1回試みます。
horizon_get_inbox対象者宛てのメッセージと受信可能なプロジェクト一斉通知、カウンター、およびサーバーのポーリング間隔を読み取ります。
horizon_mark_inbox_read認証済みプレイヤーの受信箱エントリーを既読にします。
horizon_claim_inbox認証済みプレイヤーが受信箱の報酬を一度だけ受け取ります。
horizon_remove_inbox認証済みプレイヤーの受信可能な受信箱エントリーを削除します。
horizon_submit_feedbackユーザーフィードバック(バグ報告、機能リクエスト)を送信します。
horizon_create_logサーバー側のログエントリー(INFO、WARN、ERROR)を作成します。
horizon_create_crash_reportクラッシュレポートを送信します(フィンガープリントでグループ化し、再発検出を実施)。
horizon_create_crash_sessionクラッシュフリー率の算出用にゲームセッションを登録します。
horizon_send_emailテンプレートを使用して、登録済みユーザーにトランザクションメールを送信します。
horizon_cancel_email保留中または予約済みのメールをキャンセルします。
horizon_get_email_status送信済みまたは予約済みのメールのステータスを取得します。
プロンプト(4件)

一般的な horizOn タスクを AI アシスタントが進めるためのワークフロープロンプトです。

プロンプト説明
integrate-featureゲームエンジンで特定の horizOn 機能を利用するための統合コードを生成します
setup-authプロジェクトで horizOn 認証を設定するための手順を説明します
debug-connectionhorizOn の接続問題を診断して修正します
explain-feature任意の horizOn 機能について詳しく説明します

設定

変数必須説明
HORIZON_API_KEYはい(ツール用)horizOn API キーです。horizon.pm で取得できます
HORIZON_BASE_URLいいえAPI のベース URL です。デフォルトは https://horizon.pm です
HORIZON_ACCOUNT_API_KEYいいえ追加のスコープ付きダッシュボード管理ツール用の Account Key です

リソース(ドキュメント)は API キーなしで利用できます。認証が必要なのはライブ API ツールのみです。セッションに紐づくツールには、対応するプレイヤーセッションも必要です。また、入力スキーマで userId と sessionToken を宣言します。

機能の利用可否は、選択したバックエンドとプロジェクト設定によって異なります。リアルタイム機能、チャット、Validated Actions、ランクマッチの検証には、ホスト型 horizOn が必要です。セルフホスト型 simpleServer は、一部の REST API をサポートします。MCP ツールは明示的に HTTP 呼び出しを行い、バックグラウンドの WebSocket 接続、ポーリングループ、自動取引/再試行プロセスは作成しません。

管理ツール(v1.2 以降)

Account Key(horizOn ダッシュボード -> API Keys -> Create -> Account Key で作成可能)がある場合、MCP サーバーに追加のツールが公開され、Claude でダッシュボードを管理できます。管理対象は、プロジェクト、リモート設定、ニュース、メールテンプレート、ギフトコード、ユーザー、リーダーボード、クラウドセーブデータ、クラッシュレポート、フィードバック、ユーザーログ、SMTP、Validated Actions(ルール、実行、プレイヤー値、証拠のレビュー)です。

Account Key の取得方法
  1. horizOn ダッシュボードにログインします
  2. サイドバーで API Keys に移動します
  3. Create API Key をクリックします
  4. キーの種類として Account Key を選択します
  5. アカウント全体、単一の Project API Key、または選択した機能グループのいずれにキーがアクセスできるかを選択します
  6. Create をクリックします。キーが表示されるのは一度だけです。すぐにコピーしてください。
  7. MCP 設定にキーを追加します(下記のセットアップを参照)
セットアップ

MCP クライアントの設定に両方のキーを追加します。

{
  "mcpServers": {
    "horizOn": {
      "command": "npx",
      "args": ["-y", "horizon-mcp"],
      "env": {
        "HORIZON_API_KEY": "your-project-key (for player-facing tools)",
        "HORIZON_ACCOUNT_API_KEY": "your-account-key (for dashboard tools)"
      }
    }
  }
}

両方を同時に設定することも、個別に設定することもできます。アカウントキーが設定されている場合にのみ管理ツールが登録されます。設定されていない場合、サーバーには従来のプレイヤー向けツールのみが公開されます。

スコープ

Account Key はアカウントのプラン(FREE/BASIC/PLUS/PRO/ENTERPRISE)を引き継ぎ、追加の権限は付与しません。キーのスコープは、アカウント全体、単一の Project API Key、選択した機能グループ、またはその両方に制限できます。プラットフォーム管理者専用のエンドポイント(Blog、Banner、System-Config)には自動的にアクセスできません。アカウント削除、認証情報の変更、キー管理自体、サブスクリプションのキャンセルなど、特に機密性の高い一部のエンドポイントではダッシュボードセッションが必要であり、Account Key では呼び出せません。

キーがプロジェクトスコープの場合、バックエンドは直接の HTTP 呼び出しに対してもそのスコープを適用します。アカウント全体を対象とするエンドポイントや、プロジェクトのコンテキストを確認できない ID のみのエンドポイントは、プロジェクトスコープのキーでは拒否されます。

ツールグループ

管理者ツールには、プレイヤーツールと同じアノテーションが付いています。list、get、statistics ツールは読み取り専用で、update と delete ツールには破壊的操作のマークが付いています。

プレフィックス説明
horizon_admin_statistics_*, horizon_admin_achievements_*定義を設定し、所有プレイヤーの進行状況を確認
horizon_admin_friends_*, horizon_admin_groups_*スコープが設定された関係、グループ、設定済みの上限を確認
horizon_admin_items_*, horizon_admin_shared_*アイテムカタログ、所有コレクション、明示的なクリーンアップを管理
horizon_admin_match_*, horizon_admin_matches_*, horizon_admin_chat_*非同期マッチを確認し、ホスト型チャット/モデレーションを管理
horizon_admin_marketplace_*, horizon_admin_inbox_*マーケットプレイスのルール、スコープが設定された操作、永続的な受信トレイ通知を管理
horizon_admin_localization_*スコープが設定されたローカライズ項目を管理
horizon_admin_player_values_*If-Match を使用してカタログを読み取り/置換し、最小限のガードを確認し、元のメモ/ハッシュを使って残高を修正
horizon_admin_projects_*プロジェクト API キーの管理(作成/更新/再生成/取り消し/削除)
horizon_admin_remoteconfig_*リモート設定の CRUD
horizon_admin_news_*多言語ニュース(タイトル/メッセージは {lang: content})
horizon_admin_emailtemplates_*変数を含む多言語メールテンプレート
horizon_admin_giftcodes_*ギフトコードの CRUD と取り消し
horizon_admin_users_*ユーザー管理と統計(全件一覧は不要)
horizon_admin_leaderboard_*リーダーボードのエントリと統計
horizon_admin_cloudsave_*クラウドセーブデータと統計
horizon_admin_crashes_*クラッシュグループ、レポート、統計
horizon_admin_feedback_*ユーザーフィードバックの読み取り
horizon_admin_userlogs_*ユーザーログの読み取り
horizon_admin_smtp_*アカウントの SMTP 設定(パスワードは常にマスクして返されます)
horizon_admin_validated_evidence_*Validated Actions の証拠レビュー:一覧表示(上位 N 件のレコード、または sus: true を指定した場合は sus パッケージ)、クォータ、メタデータ(susPackage を含む)、ログのダウンロード(base64 またはハッシュのみ)、パッケージのエクスポート(整合性ヘッダー付きの ZIP をローカルファイルに書き込み)、削除
horizon_admin_validated_rules_*, _usage_get, _runs_list, _state_*Validated Actions の設定:プロジェクト API キーごとのルールセット(取得、置換、削除)、1 時間あたりの実行容量、拒否コード付きの最近の実行(sus でフィルタリング)、サーバー所有のプレイヤー値(読み取り、修正をサポート)

horizOn とは?

horizOn は、ゲームおよびアプリ開発者向けに構築されたマルチテナントの Backend-as-a-Service プラットフォームです。開発者がサーバーインフラではなく、ゲームやアプリの構築に集中できるよう、マネージドバックエンドを提供します。

主な機能:

  • 認証(Anonymous、Email、Google、Apple)
  • リーダーボード
  • クラウドセーブ
  • リモート設定
  • ローカライズ
  • ニュースとお知らせ
  • ギフトコード
  • プレイヤープロフィール(アバター、フレーム、バッジ)
  • プレイヤー値(設定済みの購入のアトミック処理、安全な調整、最小限の公開リプレイガード)
  • 統計、受信トレイ報酬、実績
  • フレンド、ブロックリスト、グループ
  • アイテムカタログ、ユニークなインベントリ、マーケットプレイスのエスクロー/トレード
  • スコープ付き権限と非同期マッチに対応した共有オブジェクト
  • ホスト型チャット(リアルタイムマネージャーはネイティブ SDK が提供)
  • Validated Actions(サーバー検証済みの実行、検証済みリーダーボード限定、サーバー所有の通貨)
  • ユーザーフィードバック
  • ユーザーログ
  • クラッシュレポート
  • メール送信

詳しくは horizon.pm をご覧ください。この MCP サーバーは npm からインストールできます。

対応エンジン

  • Godot 4.5+ -- GDScript SDK
  • Unity 6 -- C# SDK
  • Unreal Engine 5.5+ -- C++ および Blueprint SDK

開発

# Clone the repository
git clone https://github.com/ProjectMakersDE/horizOn-mcp.git
cd horizOn-mcp

# Install dependencies
npm install

# Start the server (development mode)
npm run dev

# Build for production
npm run build

# Run tests
npm test

ライセンス

MIT

統計ツール

horizon_get_statistics、horizon_get_statistics_definitions、horizon_update_statistics は、明示的なセッションカウンターを公開します。投稿する前に、元の timestamp:UUID と不変のバッチを保存してください。タイムアウト後は同じインテントを再利用し、ID を自動的に置き換えないでください。エンジンのガイダンスは horizon://docs/statistics を読むか、feature=statistics を指定して integrate-feature を使用してください。4 つの Account Key ツールでは、If-Match を使用した定義の確認と置換、所有するプレイヤー 1 人の確認、ティア制限の確認ができます(horizon_admin_statistics_*)。統計はプレイヤー値とは別です。

受信箱ツール

4 つのプレイヤーツールで、アクティブなセッションを使用して受信箱の項目を読み取り、既読にし、受け取り、削除できます。4 つの horizon_admin_inbox_* ツールでは、INBOX スコープの Account Key を使用して、不変の一斉配信を管理したり、所有するプレイヤーを確認したりできます。公開する前に horizon://docs/inbox を読んでください。インテントを正確に保存し、新しいタイムスタンプには serverTime を使用し、不確かな応答の後も元の ID を保持してください。保護された報酬が、通知なしに期限切れになったり消えたりすることはありません。

実績

horizon_get_achievements、horizon_unlock_achievement、horizon_deliver_achievement_rewards は、恒久的な達成状況と、Player Values への即時かつアトミックな報酬付与を公開します。互換性のための配布ツールは、レガシーのステータスを読み取るだけです。4 つの horizon_admin_achievements_* ツールでは、バージョン管理されたカタログを管理し、ACHIEVEMENTS スコープで所有するプレイヤーを確認できます。非公開定義のキャッシュ、元のキーを使った再実行、レガシーの元データの検証済みコールド決済については、horizon://docs/achievements を読んでください。新しいアンロックによって、個人用の受信箱報酬/履歴コピーは作成されません。 エンジンプロンプトでは feature=achievements を指定できます。

フレンド

horizon_get_friends、horizon_find_player、7 つの明示的なソーシャルアクションツールでは、確認済みリビジョンと保留中のリクエスト ID が保持されます。読み取り専用の horizon_admin_friends_* ツールが 2 つあり、所有する状態と現在の制限を確認できます。horizon://docs/friends を読んでください。どちらのエンジンプロンプトでも feature=friends を指定できます。不確かな応答の後は、プレイヤーが確認した新しいアクションを行う前に、スナップショットを読み取って照合してください。

グループ

20 個のプレイヤーツールで、グループのスナップショット、上限付きのメンバーページ、保留中の項目、作成、メタデータ、14 個の明示的なメンバーシップ/ロール操作を扱えます。読み取り専用の horizon_admin_groups_* ツールが 6 つあり、所有するプロジェクトを確認できます。すべての書き込みで、確認済みリビジョンと保留中の ID が保持されます。horizon://docs/groups を読んでください。どちらのエンジンプロンプトでも feature=groups を指定できます。不確かな書き込みは自動的に再試行されません。

アイテム

5 つのプレイヤーツールで、インベントリ/カタログを読み取り、インスタンスを明示的に調整、装備、または破棄できます。4 つの horizon_admin_items_* ツールでは、所有する状態の確認、カタログのページ表示、If-Match を使用したテンプレート 1 件の編集、ティア制限の確認ができます。Player Values のオファーでは、上限付きの itemRewards を受け付け、デビットと同時にアトミックに付与します。horizon://docs/items を読んでください。どちらのエンジンプロンプトでも feature=items を指定できます。

共有オブジェクト

7 つのプレイヤーツールで、上限付きの不透明な共有オブジェクト、型指定されたクエリ、正確なリビジョン指定の書き込みを扱えます。10 個の horizon_admin_shared_* ツールでは、所有するコレクションと明示的なクリーンアップを管理できます。別の horizon_admin_inbox_send_ordinary ツールでは、信頼されたバックエンドの永続的な通知インテントに INBOX スコープを使用します。horizon://docs/shared-objects を読んでください。どちらのエンジンプロンプトでも feature=shared-objects を指定できます。ネイティブ SDK/PHP/デプロイの準備状況は、インストール済みバージョンに照らして確認する必要があります。

設定済みポリシーと技術的な上限

新しい機能ツールは、ティアのデフォルト値を上限として扱うのではなく、現在の System Config ポリシーの上限・下限を引き継ぎます。Groups では11個のポリシーが公開されます。明示的に指定するページサイズは50を超えることができ、デフォルトのページ1は、上限を引き下げた後も使用できます。PV は有効期間中のIDを256個までサポートし、設定可能なオファー数は1000を超え、修正キーは最大256個です。Achievement カタログは、現在のアクティブ/有効期間ポリシーと1 MiBのフレーム内で、以前のデフォルトである500キーを超えることができます。保持されたレスポンスは、上限引き下げ後も完全な状態で渡されます。MCP が現在のクォータに合わせて結果を切り詰めることはありません。

技術的な上限は別途適用されます。Shared には、デコード後のオブジェクト/クエリエンベロープとして1 MiB、書き込みフレームとして1402200バイトの上限があります。Matches は、20003500バイトの作成/ターンフレーム内で、デコード後の状態データを最大14999552バイト(14648KiB)受け付けます。Groups は、完全な16 MiBのBSONエンベロープと、100663296バイトの作成/更新HTTPフレームを使用し、名前/説明/データ/深さのポリシーが設定されます。固定のアイテムプロパティ/テンプレート/差分/付与形式、3つのShared検索フィールド、現在のChatテキスト/ウィンドウ上限は引き続き適用されます。検証のために、上限の取得、ページネーション、再試行、データベースリクエストが追加されることはありません。これらはデータ表現上の上限であり、スループット、メモリ使用量、クラスターへの受け入れを保証するものではありません。

非同期Matches

14個のプレイヤーツールと7個のスコープ付き管理者ツールで、上限付きロビー、不透明なターン、不変の結果レポート、元のマッチに紐づくランク付きランの復旧に対応します。書き込みでは正確なリビジョンを維持し、HTTPリクエストを1回だけ試行します。コンセンサスによって自動報酬が付与されることはありません。simpleServer は通常のRESTをサポートし、ランク付きの検証/リアルタイム機能は明示的に除外します。horizon://docs/matchesを参照してください。エンジンプロンプトではfeature=matchesを指定できます。

ホステッドChat(TASK-1014)

6個のアプリツールで、機能の確認、決定論的なチャネルのオープン、差分同期、元の送信、受信確認の照合、レポートに対応します。CHATスコープの管理者ツール12個で、ワードフィルター、メタデータ/メッセージ、レポートのモデレーション、ミュート/バン、上限付きクリーンアップを公開します。horizon://docs/chatを参照してください。エンジンプロンプトではfeature=chatを指定できます。simpleServer はChatに対して明示的に501 NOT_SUPPORTEDを返します。これらのHTTPツールは、バックグラウンドのWebSocket接続やポーリングループを作成しません。対話型フィードには、既存のネイティブリアルタイムマネージャーを使用してください。

Marketplace

10個のプレイヤーツールと14個のスコープ付きオペレーターツールで、元のアイテムのエスクロー、通貨のアトミックな決済、元のインテントの厳密な維持、Inboxからの損失のない返却に対応します。ルート、元のリビジョン、5段階の上限、復旧についてはhorizon://docs/marketplaceを参照してください。エンジンプロンプトではfeature=marketplaceを指定できます。自動取引、価格のポーリング、再試行はありません。

コメント

MCP は初めてですか?

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

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