视频游戏百科全书MCP服务器
一种模型上下文协议(MCP)服务器,提供来自Steam和SteamGridDB的结构化视频游戏信息。此服务器公开了用于搜索游戏和检索全面元数据的工具,包括描述、类别、发布日期、玩家数量以及徽标、盒子和图标等视觉资产。
特性
Steam集成
- steam_search_game:在Steam上按名称搜索游戏
- steam_get-details:获取全面的游戏信息,包括:
- 说明和详细信息 - 类别和流派 - 支持的平台(Windows、Mac、Linux) - 多人/单人游戏功能 - 发布日期 - 定价信息 - 开发人员和发布者详细信息
- steam_get-dlc_list:列出特定游戏的所有可用DLC
- steam_get_评论_总结:获取社区评级和热门评论片段
- steam_get-game_news:获取游戏的最新新闻和公告
- steam_get-player_count:获取游戏的当前在线玩家数量
- steam_get_top_seller:获取当前全球最畅销的游戏
- steam_get_top_games:按流派或类别浏览热门游戏
- steam_get-generals:获取常见Steam流派列表以供探索
SteamGridDB集成
- steamgrid_search名称:在SteamGridDB上搜索游戏
- steamgrid_getassets:检索视觉资源,包括:
- 透明徽标 - Boxart/网格图像 - 英雄/横幅图片 - 图标 - 元数据的多种变体(维度、MIME类型、作者)
- steamgrid_getbest_logo:获得游戏中最好的透明标志
屏幕刮刀集成
- screenscraper_get_systems:获取所有支持的复古游戏系统的列表
- screenscraper_search_game:通过可选的系统过滤按名称搜索复古游戏
- screenscraper_get_game_info:获取详细的游戏信息和媒体资产,包括:
- 游戏元数据(开发者、发行商、发布日期、评级) - 截图、封面和包装盒 - 车轮徽标和标志 - 视频预览 - 风扇艺术和墨盒图像 - 通过校验和(CRC、MD5、SHA1)支持ROM识别
统一工具
- game_get_full_profile:在单个请求中获取全面的游戏配置文件,聚合来自Steam的元数据和来自SteamGridDB的社区视觉资产。这是 推荐工具 用于提供游戏的完整概述。
安装
先决条件
- Node.js 18或更高版本
- npm或纱线
设置
- 克隆或下载此存储库
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 | 否 | 软件标识符(默认为“游戏百科全书mcp服务器”) |
设置
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配置文件中:
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以加载服务器。
快速安装/启动
通过史密瑟里
您可以使用一个命令将此服务器安装到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,您必须设置 NPM_TOKEN GitHub存储库设置中的秘密。可用工具
1.steam_search_game
在Steam上按名称搜索游戏。
输入:
query(字符串,必填):要搜索的游戏名称limit(数字,可选):最大结果(默认值:10)
例子:
{
"query": "Elden Ring",
"limit": 5
}2.steam_get-details
获取有关Steam游戏的详细信息。
输入:
appid(数字,必填):Steam应用程序ID
例子:
{
"appid": 1245620
}3.steam_get-dlc_list
获取特定Steam游戏的所有可用DLC列表。
输入:
appid(数字,必填):Steam应用程序ID
例子:
{
"appid": 1245620
}4.steam_get_评论_总结
获取特定Steam游戏的用户评论和评级摘要。
输入:
appid(数字,必填):Steam应用程序ID
例子:
{
"appid": 1245620
}5.steam_get_game_news
获取特定Steam游戏的最新消息和公告。
输入:
appid(数字,必填):游戏的Steam应用程序IDcount(number,可选):要获取的新闻条目数(默认值:5)
例子:
{
"appid": 1245620,
"count": 3
}6.steam_get-player_count
获取特定Steam游戏的当前在线玩家数量。
输入:
appid(数字,必填):游戏的Steam应用程序ID
例子:
{
"appid": 1245620
}7.steam_get-generals
获取常见Steam流派和类别的列表以供探索。
例子:
{}8.steam_get_top_seller
在Steam上获取当前全球最畅销的游戏。
输入:
limit(数字,可选):最大结果(默认值:10)
例子:
{
"limit": 5
}9.steam_get_top_games
浏览特定Steam类别或流派的热门游戏(例如,“动作”、“RPG”、“战略”)。
输入:
genreId(字符串,可选):要浏览的流派名称limit(数字,可选):最大结果(默认值:10)
例子:
{
"genreId": "RPG",
"limit": 5
}10.蒸汽网格搜索名称
在SteamGridDB上搜索游戏。
输入:
query(字符串,必填):要搜索的游戏名称
例子:
{
"query": "Elden Ring"
}11.steamgrid_get_assets
从SteamGridDB获取游戏的视觉资源。
输入:
gameId(数字,必填):SteamGridDB游戏IDassetTypes(数组,可选):要检索的资产类型:grid,hero,logo,icon(默认值:全部)
例子:
{
"gameId": 123456,
"assetTypes": ["logo", "grid"]
}12.蒸汽网格_get_best_logo
从SteamGridDB获得针对UI使用进行优化的最佳游戏透明徽标。
输入:
gameId(数字,可选):SteamGridDB游戏IDappid(数字,可选):Steam应用程序ID
例子:
{
"appid": 1245620
}13.game_get_full_profile
获取一个综合的游戏配置文件,将Steam的元数据和SteamGridDB的视觉资产结合起来。此工具自动处理Steam和SteamGridDB之间的映射。
输入:
query(字符串,必填):要搜索的游戏名称
例子:
{
"query": "Elden Ring"
}14.屏幕抓取系统
从ScreenScraper.fr获取所有支持的复古游戏系统的列表。
输入: 无需。
例子:
{}退货: 具有ID、名称、制造商、发布日期和支持的文件扩展名的系统列表。
15.屏幕截图_搜索_名称
在ScreenScraper.fr上按名称搜索复古游戏。
输入:
gameName(字符串,必填):要搜索的游戏名称systemId(数字,可选):按游戏系统ID筛选(使用screenscraper_get_systems查找ID)language(字符串,可选):游戏名称和描述的语言代码(默认值:“en”)
例子:
{
"gameName": "Super Mario Bros",
"systemId": 4,
"language": "en"
}退货: 带有元数据的匹配游戏列表,包括系统、开发者、发行商、流派和概要。
16.屏幕截图_获取_名称_信息
从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
}退货: 全面的游戏信息,包括所有可用媒体(屏幕截图、封面、轮子、字幕、视频、fanart、盒子、墨盒、地图)。
发展
脚本
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故障排除
启动时出现“配置错误”
确保您已创建 .env 具有有效API密钥的文件:
- 检查
.env存在于项目根目录中 - 验证
STEAMGRIDDB_API_KEY已设置 - 确保密钥周围没有引号
.env文件
“找不到游戏”错误
- 对于SteamGridDB:确保游戏ID来自SteamGridDB,而不是Steam
未返回视觉资产
有些游戏可能没有所有可用的资产类型。服务器只返回SteamGridDB中存在的资产。
许可证
麻省理工学院
