Videogame Encyclopedia MCP Server について
Videogame Encyclopedia MCP Serverは、ゲーム検索、メタデータ、メディア素材を取得するための構造化ツールを提供します。Steam、SteamGridDB、ScreenScraperの情報を扱い、統合プロフィールの取得にも対応しています。
主な機能
- 01Steamとレトロゲームの検索
- 02ゲーム詳細、レビュー、ニュースの取得
- 03DLC、プレイヤー数、売上上位の照会
- 04ロゴ、カバーなどの素材取得
- 05ROMチェックサムによるレトロゲーム検索
- 06Steam情報とSteamGridDB素材の統合
活用シーン
- 01発売日、ジャンル、対応プラットフォームの確認
- 02ゲームカタログ用のカバーやロゴ収集
- 03レトロゲームの詳細とメディア検索
- 04Steam情報とビジュアル素材の統合
MCP 対応
Steam、SteamGridDB、ScreenScraperのゲーム検索、メタデータ、メディア素材取得ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ビデオゲーム百科事典 MCP サーバー
Steam と SteamGridDB から構造化されたビデオゲーム情報を提供する Model Context Protocol(MCP)サーバーです。このサーバーは、ゲームを検索するツールと、説明、カテゴリ、発売日、プレイヤー数、ロゴ、ボックスアート、アイコンなどのビジュアル素材を含む包括的なメタデータを取得するツールを公開します。
機能
Steam 連携
- steam_search_game: Steam でゲーム名から検索します
- steam_get_details: 以下を含む包括的なゲーム情報を取得します:
- 説明と詳細情報
- カテゴリとジャンル
- 対応プラットフォーム(Windows、Mac、Linux)
- マルチプレイヤー/シングルプレイヤーの対応状況
- 発売日
- 価格情報
- 開発元とパブリッシャーの詳細
- steam_get_dlc_list: 特定のゲームで利用可能なすべての DLC を一覧表示します
- steam_get_reviews_summary: コミュニティの評価と、レビューの抜粋を取得します
- steam_get_game_news: ゲームの最新ニュースとお知らせを取得します
- steam_get_player_count: ゲームの現在のオンラインプレイヤー数を取得します
- steam_get_top_sellers: 現在の世界の売上上位ゲームを取得します
- steam_get_top_games: ジャンルまたはカテゴリ別に人気ゲームを閲覧します
- steam_get_genres: ゲームを探すための一般的な Steam ジャンルの一覧を取得します
SteamGridDB 連携
- steamgrid_search_game: SteamGridDB でゲームを検索します
- steamgrid_get_assets: 以下を含むビジュアル素材を取得します:
- 透明なロゴ
- ボックスアート/グリッド画像
- ヒーロー画像/バナー画像
- アイコン
- メタデータ(寸法、MIME タイプ、作者)付きの複数のバリエーション
- steamgrid_get_best_logo: ゲームに最適な透明ロゴを 1 つ取得します
ScreenScraper 連携
- screenscraper_get_systems: 対応するレトロゲームシステムの一覧を取得します
- screenscraper_search_game: システムによる絞り込みを任意で指定して、ゲーム名からレトロゲームを検索します
- screenscraper_get_game_info: 以下を含む、ゲームの詳細情報とメディア素材を取得します:
- ゲームのメタデータ(開発元、パブリッシャー、発売日、評価)
- スクリーンショット、カバー画像、ボックスアート
- ホイールロゴとマーキー
- 動画プレビュー
- ファンアートとカートリッジ画像
- チェックサム(CRC、MD5、SHA1)による ROM の識別に対応
統合ツール
- game_get_full_profile: Steam のメタデータと SteamGridDB のコミュニティ提供ビジュアル素材を集約し、1 回のリクエストで包括的なゲームプロフィールを取得します。ゲームの全体像を把握するために推奨されるツールです。
インストール
前提条件
- Node.js 18 以降
- npm または yarn
セットアップ
-
このリポジトリをクローンまたはダウンロードします
cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server -
依存関係をインストールします
npm install -
API キーを設定します
環境ファイルのサンプルをコピーします:
cp .env.example .env.envを編集して API キーを追加します:- SteamGridDB API キー: 高品質なゲーム素材(グリッド、ヒーロー画像、ロゴ)に必要です。steamgriddb.com で取得できます。
設定
サーバーには以下の環境変数が必要です:
| 変数 | 必須 | 説明 |
|---|---|---|
STEAMGRIDDB_API_KEY | はい | SteamGridDB API キー |
SCREENSCRAPER_DEV_ID | いいえ | ScreenScraper の開発者 ID(レトロゲーム用) |
SCREENSCRAPER_DEV_PASSWORD | いいえ | ScreenScraper の開発者パスワード |
SCREENSCRAPER_USER_ID | いいえ | ScreenScraper のユーザー名(任意。API 利用枠が増えます) |
SCREENSCRAPER_USER_PASSWORD | いいえ | ScreenScraper のユーザーパスワード |
SCREENSCRAPER_SOFTWARE_NAME | いいえ | ソフトウェア識別子(デフォルトは 'game-encyclopedia-mcp-server') |
セットアップ
1. 環境変数
ルートディレクトリに .env ファイルを作成します:
STEAMGRIDDB_API_KEY=your_steamgriddb_key_here
# Optional: For retro game support via ScreenScraper
SCREENSCRAPER_DEV_ID=your_dev_id_here
SCREENSCRAPER_DEV_PASSWORD=your_dev_password_here
SCREENSCRAPER_USER_ID=your_username_here
SCREENSCRAPER_USER_PASSWORD=your_password_here
ScreenScraper の認証情報を取得するには:
- screenscraper.fr に登録します
- 開発者フォーラム で開発者認証情報を申請します
- プロジェクトをビルドします
npm run build
使い方
Claude Desktop の場合
このサーバーを Claude Desktop の設定ファイルに追加します。
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"game-encyclopedia": {
"command": "node",
"args": ["/Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server/dist/index.js"],
"env": {
"STEAMGRIDDB_API_KEY": "your_steamgriddb_api_key_here"
}
}
}
}
サーバーを読み込むため、Claude Desktop を再起動します。
クイックインストール/起動
Smithery 経由
1 つのコマンドで、このサーバーを MCP クライアント(Claude Desktop など)にインストールできます。
npx -y @smithery/cli@latest install videogame-encyclopedia-mcp-server --client claude
uvx 経由
uv がインストールされている場合は、サーバーを直接実行できます(ローカルに Node.js が必要です)。
uvx --from node videogame-encyclopedia-mcp-server
npx 経由
npx videogame-encyclopedia-mcp-server
メモ
このパッケージを NPM に公開するには、GitHub リポジトリの設定で
NPM_TOKENシークレットを設定する必要があります。
利用可能なツール
1. steam_search_game
Steam でゲーム名を指定して検索します。
入力:
query(文字列、必須):検索するゲーム名limit(数値、任意):結果の最大数(デフォルト:10)
例:
{
"query": "Elden Ring",
"limit": 5
}
2. steam_get_details
Steam ゲームの詳細情報を取得します。
入力:
appid(数値、必須):Steam App ID
例:
{
"appid": 1245620
}
3. steam_get_dlc_list
特定の Steam ゲームで利用可能なすべての DLC のリストを取得します。
入力:
appid(数値、必須):Steam App ID
例:
{
"appid": 1245620
}
4. steam_get_reviews_summary
特定の Steam ゲームのユーザーレビューと評価の概要を取得します。
入力:
appid(数値、必須):Steam App ID
例:
{
"appid": 1245620
}
5. steam_get_game_news
特定の Steam ゲームの最新ニュースとお知らせを取得します。
入力:
appid(数値、必須):ゲームの Steam App IDcount(数値、任意):取得するニュース項目数(デフォルト:5)
例:
{
"appid": 1245620,
"count": 3
}
6. steam_get_player_count
特定の Steam ゲームで現在オンライン中のプレイヤー数を取得します。
入力:
appid(数値、必須):Steam App ID
例:
{
"appid": 1245620
}
7. steam_get_genres
ゲームを探す際に使える、Steam の一般的なジャンルとカテゴリのリストを取得します。
例:
{}
8. steam_get_top_sellers
Steam の現在の世界売上トップゲームを取得します。
入力:
limit(数値、任意):結果の最大数(デフォルト:10)
例:
{
"limit": 5
}
9. steam_get_top_games
Steam の特定のカテゴリまたはジャンル(例:「アクション」、「RPG」、「ストラテジー」)の人気ゲームを表示します。
入力:
genreId(文字列、任意):表示するジャンル名limit(数値、任意):結果の最大数(デフォルト:10)
例:
{
"genreId": "RPG",
"limit": 5
}
10. steamgrid_search_game
SteamGridDB でゲームを検索します。
入力:
query(文字列、必須):検索するゲーム名
例:
{
"query": "Elden Ring"
}
11. steamgrid_get_assets
SteamGridDB からゲームのビジュアルアセットを取得します。
入力:
gameId(数値、必須):SteamGridDB のゲーム IDassetTypes(配列、任意):取得するアセットの種類:grid、hero、logo、icon(デフォルト:すべて)
例:
{
"gameId": 123456,
"assetTypes": ["logo", "grid"]
}
12. steamgrid_get_best_logo
SteamGridDB から、UI での使用に最適化された、ゲームの最適な透明ロゴを 1 つ取得します。
入力:
gameId(数値、任意):SteamGridDB のゲーム IDappid(数値、任意):Steam App ID
例:
{
"appid": 1245620
}
13. game_get_full_profile
Steam のメタデータと SteamGridDB のビジュアルアセットを組み合わせた、ゲームの包括的なプロフィールを取得します。このツールは Steam と SteamGridDB 間の対応付けを自動的に処理します。
入力:
query(文字列、必須):検索するゲーム名
例:
{
"query": "Elden Ring"
}
14. screenscraper_get_systems
ScreenScraper.fr でサポートされているレトロゲームシステムをすべて一覧で取得します。
入力: 不要です。
例:
{}
戻り値: ID、名前、メーカー、発売日、対応ファイル拡張子を含むシステムのリスト。
15. screenscraper_search_game
ScreenScraper.fr で名前を指定してレトロゲームを検索します。
入力:
gameName(string、必須):検索するゲーム名systemId(number、任意):ゲームシステム ID で絞り込みます(ID を調べるにはscreenscraper_get_systemsを使用してください)language(string、任意):ゲーム名と説明に使用する言語コード(デフォルト:「en」)
例:
{
"gameName": "Super Mario Bros",
"systemId": 4,
"language": "en"
}
**戻り値:**システム、開発元、パブリッシャー、ジャンル、概要などのメタデータを含む、一致したゲームのリストです。
16. screenscraper_get_game_info
ScreenScraper.fr からレトロゲームの詳細情報とメディアアセットを取得します。
入力:
gameId(number、任意):ScreenScraper のゲーム IDgameName(string、任意):検索するゲーム名systemId(number、任意):ゲームシステム IDcrc(string、任意):ROM の CRC チェックサムmd5(string、任意):ROM の MD5 チェックサムsha1(string、任意):ROM の SHA1 チェックサムromName(string、任意):ROM のファイル名romSize(number、任意):ROM ファイルのサイズ(バイト単位)language(string、任意):言語コード(デフォルト:「en」)
例(ゲーム ID を指定):
{
"gameId": 12345,
"systemId": 4
}
例(ROM チェックサムを指定):
{
"md5": "a31ec74822f6e93f848ac58d9c85716c",
"systemId": 4
}
**戻り値:**利用可能なすべてのメディア(スクリーンショット、カバー、ホイール、マーキー、動画、ファンアート、ボックス、カートリッジ、マップ)を含む、ゲームの包括的な情報です。
開発
スクリプト
npm run build- TypeScript を JavaScript にコンパイルしますnpm start- コンパイル済みサーバーを実行しますnpm run dev- 1 つのコマンドでビルドして実行します
プロジェクト構成
game-encyclopedia-mcp-server/
├── src/
│ ├── index.ts # Main server entry point
│ ├── config.ts # Configuration management
│ ├── types.ts # TypeScript type definitions
│ └── tools/
│ ├── steam.ts # Steam API integration
│ ├── steamgrid.ts # SteamGridDB API integration
│ ├── screenscraper.ts # ScreenScraper API integration
│ └── unified.ts # Unified search tool implementation
├── package.json
├── tsconfig.json
└── .env.example
トラブルシューティング
起動時の「Configuration error」
有効な API キーを含む .env ファイルを作成したことを確認してください。
.envがプロジェクトのルートに存在することを確認してくださいSTEAMGRIDDB_API_KEYが設定されていることを確認してください.envファイル内のキーが引用符で囲まれていないことを確認してください
「Game not found」エラー
- SteamGridDB の場合:ゲーム ID が Steam ではなく、SteamGridDB のものであることを確認してください
ビジュアルアセットが返されない
ゲームによっては、すべての種類のアセットが利用できるとは限りません。サーバーは SteamGridDB に存在するアセットのみを返します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。