关于 Videogame Encyclopedia MCP Server
Videogame Encyclopedia MCP Server 为游戏搜索、资料查询和媒体素材获取提供结构化工具,适合游戏信息检索与目录整理。它汇总 Steam、SteamGridDB 和 ScreenScraper 的数据,并提供整合游戏档案的工具。
主要功能
- 01搜索 Steam 与复古游戏
- 02获取游戏资料、评价与新闻
- 03查询 DLC、玩家数和畅销游戏
- 04获取标志、封面及其他素材
- 05按 ROM 校验和查询复古游戏
- 06整合 Steam 与 SteamGridDB 档案
适用场景
- 01查找游戏发行日期、类型及平台信息
- 02为游戏目录获取封面和标志
- 03查询复古游戏资料及媒体素材
- 04汇总 Steam 游戏信息与视觉素材
MCP 相关
通过 MCP 工具提供 Steam、SteamGridDB 和 ScreenScraper 的游戏搜索、元数据与媒体素材查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
电子游戏百科 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
设置
-
克隆或下载此仓库
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
只需运行一条命令,即可将此服务安装到 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 分类或类型中的热门游戏(例如,“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 游戏 IDassetTypes(数组,可选):要获取的素材类型:grid、hero、logo、icon(默认值:全部)
示例:
{
"gameId": 123456,
"assetTypes": ["logo", "grid"]
}
12. steamgrid_get_best_logo
从 SteamGridDB 获取最适合 UI 使用的单个最佳透明游戏标志。
输入:
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(字符串,必填):要搜索的游戏名称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 游戏 IDgameName(字符串,可选):要搜索的游戏名称systemId(数字,可选):游戏平台 IDcrc(字符串,可选):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 编译为 JavaScriptnpm 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。