Skip to main content
Glama
tfuru

steam-store-search-mcp

by tfuru
README.md
# steam-store-search-mcp
Steam Storeの情報を取得するためのMCP(Model Context Protocol)サーバー

## 環境
- podman compose
- python 3.12

## 構成
- src/mcp-server.py: MCPサーバー本体
- src/tools/: MCPツール
- Dockerfile: Dockerイメージ
- requirements.txt: Pythonパッケージ
- compose.yml: Podman Compose設定

## 使い方
### コンテナのビルドと起動
```bash
# ビルド
podman compose build

# 起動
podman compose up -d
```

### 動作確認(ログ)
```bash
podman compose logs -f
```

### デバッグ実行(ローカル)
ローカル環境で直接実行して、標準入力経由でJSON-RPCのやり取りを確認できます。
```bash
pip install -r requirements.txt
python src/mcp_server.py
```

## MCPクライアント設定例
Claude Desktop 等の MCP クライアントで利用するための設定例です。

### Claude Desktop (Desktop App)
`~/Library/Application Support/Claude/claude_desktop_config.json` に以下を追加します。

**Podman を使用する場合:**
```json
{
  "mcpServers": {
    "steam-search-mcp": {
      "command": "podman",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/library/steam-store-search-mcp-mcp-server:latest"
      ]
    }
  }
}
```

## ツール
LLMに提供する機能(Tools)として、以下の3つを実装しています。

- `search_games(query)`: キーワードからゲームID(AppID)およびサムネイル画像を取得する。
- `get_game_details(appid)`: 価格、リリース日、ジャンル、説明文、およびヘッダー画像URLを取得する。
- `get_player_reviews(appid)`: 最近の評価(レビュー数、ポジティブ率など)を確認する。

## パフォーマンス
APIリクエストの削減と高速化のため、簡易的なインメモリキャッシュを実装しています。
- **キャッシュ期間 (TTL)**: 1時間
- **対象**: `search_games`, `get_game_details`, `get_player_reviews` のすべての出力結果