$ ./tcg-discord-bot --start
Discord サーバーに
リアルタイムTCG価格を
完全なセルフホスト型、オープンソースのDiscordボットです。8つのTCGゲームすべてにわたり、価格検索、アラート、ポートフォリオ追跡、リーダーボードのスラッシュコマンドを提供します。
サーバーに必要なすべての機能
6つの機能カテゴリ、多数のコマンド。セルフホストなのでデータは自分で管理できます。
価格検索
オートコンプリートによる名前検索、UUID指定取得、クロスゲーム検索、横並び比較、ランダムカード、セット一覧表示。
価格履歴
7日・30日・90日・1年の価格履歴チャート。Discord内に埋め込み画像として直接レンダリング。Traderプランで利用可能。
価格アラート
カードを監視し、価格の閾値を超えたときに通知。1時間ごとにポーリング、24時間のクールダウン、アラートを削除せずに一時停止・再開が可能。
ポートフォリオ追跡
ライブ評価、総価値、購入価格との損益比較でコレクションを追跡。ユーザーとサーバーごとにスコープ設定。
リーダーボード
ライブ総価値によるサーバー全体のポートフォリオリーダーボード、アラート数による最も監視されたカードリーダーボード。コミュニティ競争を内蔵。
サーバー管理
デフォルトゲームを設定、9言語でのローカライズ、UTC 09:00に日次マーケットレポートを有効化、新セットのリリース通知を受信。
コマンドリファレンス
› 検索コマンド
| コマンド | 説明 |
|---|---|
| /price <card> [game] | オートコンプリート + ページネーションボタン付き名前検索 |
| /card <id> | UUIDで完全な価格ブロック(全コンディション、eBay、PSA/BGS/CGC)を取得 |
| /find <card> | クロスゲーム検索 — 8ゲーム全てに対して並行クエリ |
| /compare <card1> <card2> | パーセンテージ差分付きの横並び価格比較 |
| /random [game] | ランダムカードを取得、オプションでゲームフィルター |
| /set <set> | オートコンプリート + ページネーション付きセット内カード一覧 |
› 履歴 Traderプラン
| コマンド | 説明 |
|---|---|
| /history <card> [period] | 価格履歴チャート(7日 / 30日 / 90日 / 1年)を埋め込み画像としてレンダリング |
› アラートコマンド
| コマンド | 説明 |
|---|---|
| /alert add card:<name> price:<usd> direction:[above|below] [channel] | カードを監視し、価格の閾値を超えたときに通知 |
| /alert list | ユーザーのすべてのアクティブなアラートを表示 |
| /alert remove id:<n> | IDでアラートを削除 |
| /alert pause id:<n> | 削除せずにアラートを一時停止 |
| /alert resume id:<n> | 一時停止したアラートを再開 |
アラートは1時間ごとにポーリング(ALERTS_CRONで設定可能)。1カードあたり通知間の24時間クールダウン。
› ポートフォリオコマンド
| コマンド | 説明 |
|---|---|
| /portfolio add card:<name> [qty] [purchase_price] | 数量と購入価格をオプションでカードを追加 |
| /portfolio show | ライブ評価、総価値、購入価格との損益を表示 |
| /portfolio remove card:<name> | ポートフォリオからカードを削除(オートコンプリート付き) |
ポートフォリオは(ユーザー、ギルド)ごとにスコープされます — 各サーバーはメンバーごとに独自のポートフォリオを持ちます。
› サーバー全体コマンド
| コマンド | 説明 |
|---|---|
| /leaderboard portfolios | ライブ総価値でランク付けされたポートフォリオ上位者 |
| /leaderboard cards | アラート数でランク付けされた最も監視されたカード |
| /games | 対応するすべてのゲームとカタログサイズの一覧 |
› 管理コマンド サーバー管理権限が必要
| コマンド | 説明 |
|---|---|
| /config show | 現在のサーバー設定を表示 |
| /config default-game <game> | すべてのコマンドのデフォルトゲームフィルターを設定 |
| /config locale <locale> | レスポンス言語を設定: en, pl, fr, de, es, it, ja, nl, pt-BR |
| /config daily-report channel:<ch> enabled:<bool> | 選択したチャンネルにUTC 09:00に日次マーケットレポートを投稿 |
| /config notify-set-releases channel:<ch> | 新セットがリリースされたときにメッセージを投稿 |
実際の表示例
/price charizardのボットレスポンス例
Charizard — Base Set (PSA 10)
Pokemon · Base Set · Holo Rare
クイックスタート
ゼロから動作するボットまで3ステップ。
Botトークンを取得
discord.com/developersでアプリを作成、Botを追加し、トークンをコピー。Message ContentとServer Membersインテントを有効化。
APIキーを取得
tcgpricelookup.comで無料キー(1日200リクエスト)またはTraderプラン(月額$14.99)に登録。環境変数にTCG_API_KEYとして設定。
デプロイ
リポジトリをクローン、.env.exampleを.envにコピー、キーを追加し、DockerまたはRailway/Render/fly.ioで実行。
# クローンして設定 $ git clone https://github.com/TCG-Price-Lookup/tcg-discord-bot $ cd tcg-discord-bot && cp .env.example .env # .envを編集: DISCORD_TOKENとTCG_API_KEYを設定 # Dockerで実行 $ docker compose up -d
デプロイオプション
Docker
Dockerfileが含まれています。Dockerが動く場所ならどこでも。
docker compose up -d Railway
GitHubリポジトリを接続、環境変数を設定してデプロイ。
Render
無料プランあり。バックグラウンドワーカーサービスタイプ。
fly.io
グローバルエッジデプロイ。fly launchで完了。
- ›価格検索コマンド
- ›アラートとポートフォリオ
- ›リーダーボード
- ›無料プランのすべて
- ›/historyコマンド
- ›7日 / 30日 / 90日 / 1年チャート
- ›Traderのすべて
- ›優先サポート
- ›SLA対応