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. 01搜索 Steam 与复古游戏
  2. 02获取游戏资料、评价与新闻
  3. 03查询 DLC、玩家数和畅销游戏
  4. 04获取标志、封面及其他素材
  5. 05按 ROM 校验和查询复古游戏
  6. 06整合 Steam 与 SteamGridDB 档案

适用场景

  1. 01查找游戏发行日期、类型及平台信息
  2. 02为游戏目录获取封面和标志
  3. 03查询复古游戏资料及媒体素材
  4. 04汇总 Steam 游戏信息与视觉素材

MCP 相关

通过 MCP 工具提供 Steam、SteamGridDB 和 ScreenScraper 的游戏搜索、元数据与媒体素材查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 服务

一个 Model Context Protocol(MCP)服务,提供来自 Steam 和 SteamGridDB 的结构化电子游戏信息。此服务提供用于搜索游戏和获取全面元数据的工具,包括描述、类别、发布日期、玩家人数,以及徽标、封面图和图标等视觉素材。

功能

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:获取游戏最佳的单个透明徽标
ScreenScraper 集成
  • screenscraper_get_systems:获取所有受支持的复古游戏平台列表
  • screenscraper_search_game:按名称搜索复古游戏,可选按系统筛选
  • screenscraper_get_game_info:获取详细的游戏信息和媒体素材,包括:
    • 游戏元数据(开发者、发行商、发布日期、评分)
    • 截图、封面和封面图
    • 轮盘徽标和标题栏
    • 视频预览
    • 粉丝艺术和卡带图片
    • 支持通过校验和(CRC、MD5、SHA1)识别 ROM
统一工具
  • game_get_full_profile:在单个请求中获取全面的游戏档案,汇总 Steam 的元数据和来自 SteamGridDB 的社区视觉素材。这是提供游戏完整概览的推荐工具。

安装

前置条件
  • 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

只需运行一条命令,即可将此服务安装到 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 分类或类型中的热门游戏(例如,“Action”“RPG”“Strategy”)。

输入:

  • 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 使用的单个最佳透明游戏标志。

输入:

  • 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(字符串,必填):要搜索的游戏名称
  • systemId(数字,可选):按游戏平台 ID 筛选(使用 screenscraper_get_systems 查找 ID)
  • language(字符串,可选):游戏名称和描述的语言代码(默认值:"en")

示例:

{
  "gameName": "Super Mario Bros",
  "systemId": 4,
  "language": "en"
}

**返回:**匹配游戏列表及其元数据,包括系统、开发商、发行商、类型和简介。

16. screenscraper_get_game_info

从 ScreenScraper.fr 获取复古游戏的详细信息和媒体资源。

输入:

  • gameId(数字,可选):ScreenScraper 游戏 ID
  • gameName(字符串,可选):要搜索的游戏名称
  • systemId(数字,可选):游戏平台 ID
  • crc(字符串,可选):ROM CRC 校验和
  • md5(字符串,可选):ROM MD5 校验和
  • sha1(字符串,可选):ROM SHA1 校验和
  • romName(字符串,可选):ROM 文件名
  • romSize(数字,可选):ROM 文件大小,单位为字节
  • language(字符串,可选):语言代码(默认值:"en")

示例(按游戏 ID 查询):

{
  "gameId": 12345,
  "systemId": 4
}

示例(按 ROM 校验和查询):

{
  "md5": "a31ec74822f6e93f848ac58d9c85716c",
  "systemId": 4
}

**返回:**全面的游戏信息,包括所有可用媒体(截图、封面、滚轮图、招牌、视频、同人艺术图、盒子、卡带、地图)。

开发

脚本
  • npm run build - 将 TypeScript 编译为 JavaScript
  • npm start - 运行编译后的服务
  • npm run dev - 使用一条命令完成构建并运行
项目结构
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 来自 SteamGridDB,而非 Steam
未返回视觉资源

有些游戏可能没有所有类型的资源。服务只会返回 SteamGridDB 中存在的资源。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。