mcpField
V
Videogame Encyclopedia MCP Server

Videogame Encyclopedia MCP Server

ローカル
github.com/hcrossメディア・デザイン342 週間前に更新

Videogame Encyclopedia MCP Server について

Videogame Encyclopedia MCP Serverは、ゲーム検索、メタデータ、メディア素材を取得するための構造化ツールを提供します。Steam、SteamGridDB、ScreenScraperの情報を扱い、統合プロフィールの取得にも対応しています。

主な機能

  1. 01Steamとレトロゲームの検索
  2. 02ゲーム詳細、レビュー、ニュースの取得
  3. 03DLC、プレイヤー数、売上上位の照会
  4. 04ロゴ、カバーなどの素材取得
  5. 05ROMチェックサムによるレトロゲーム検索
  6. 06Steam情報とSteamGridDB素材の統合

活用シーン

  1. 01発売日、ジャンル、対応プラットフォームの確認
  2. 02ゲームカタログ用のカバーやロゴ収集
  3. 03レトロゲームの詳細とメディア検索
  4. 04Steam情報とビジュアル素材の統合

MCP 対応

Steam、SteamGridDB、ScreenScraperのゲーム検索、メタデータ、メディア素材取得ツールをMCPクライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"videogame-encyclopedia": {
"command": "npx",
"args": [
"-y",
"videogame-encyclopedia-mcp-server"
],
"env": {
"STEAMGRIDDB_API_KEY": "<STEAMGRIDDB_API_KEY>"
}
}
}
}
起動コマンドnpx -y videogame-encyclopedia-mcp-server
設定が必要な環境変数
STEAMGRIDDB_API_KEYシークレット

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

パッケージ
npmvideogame-encyclopedia-mcp-server

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ビデオゲーム百科事典 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
セットアップ
  1. このリポジトリをクローンまたはダウンロードします

    cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server
    
  2. 依存関係をインストールします

    npm install
    
  3. 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 の認証情報を取得するには:

  1. プロジェクトをビルドします
    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 ID
  • count(数値、任意):取得するニュース項目数(デフォルト: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 のゲーム ID
  • assetTypes(配列、任意):取得するアセットの種類:grid、hero、logo、icon(デフォルト:すべて)

例:

{
  "gameId": 123456,
  "assetTypes": ["logo", "grid"]
}
12. steamgrid_get_best_logo

SteamGridDB から、UI での使用に最適化された、ゲームの最適な透明ロゴを 1 つ取得します。

入力:

  • gameId(数値、任意):SteamGridDB のゲーム ID
  • appid(数値、任意):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 のゲーム ID
  • gameName(string、任意):検索するゲーム名
  • systemId(number、任意):ゲームシステム ID
  • crc(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

コメント

MCP は初めてですか?

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

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