使用说明
Steam MCP服务器
A. 模型上下文协议(MCP) 让像Claude这样的人工智能助手与Steam API对话的服务器。询问你的游戏、成就、游戏时间等。
它能做什么?
设置完成后,您可以向Claude询问以下问题:
- “我拥有哪些游戏?”
- “展示我在《反恐精英2》中的成就”
- “Elden Ring最罕见的成就是什么?”
- “这周我玩了几个小时?”
- “《堡垒2》的最新消息是什么?”
- “显示我的待定交易报价”
- “AK-47红线目前的价格是多少?”
该服务器包括36个工具,涵盖玩家资料、游戏库、成就、统计数据、评论、愿望清单、新闻、社区指南、交易/市场数据、家庭共享和Steam Workshop。
快速入门(非开发人员)
只是想让它运行吗?这是使用Docker的最快途径。
你需要什么
- 码头工人 - 获取Docker桌面
- 蒸汽API密钥 - 在这里拿一个 (免费)
- 您的SteamID64 -在以下网址找到它 steamid.io 通过粘贴您的个人资料URL
设置
- 创建一个名为的文件
.env你会记得的地方(比如你的Documents文件夹):
STEAM_API_KEY=your_api_key_here
STEAM_USER_ID=your_steamid64_here
- 将此添加到您的Claude Desktop配置中:
配置位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"steam": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/full/path/to/your/.env",
"ghcr.io/codekeanu/steam-mcp:latest"
]
}
}
}
请注意: 替换
/full/path/to/your/.env与您的实际路径.env文件。在Windows上,使用正斜杠,如C:/Users/YourName/Documents/.env.
- 重新启动Claude Desktop,您就可以开始了!
开发人员设置
想从源代码构建、贡献或破解代码吗?这部分是给你的。
先决条件
- Python 3.12+
- Git
- 蒸汽API密钥(在这里买一个)
安装
# Clone it
git clone https://github.com/CodeKeanu/steam-mcp.git
cd steam-mcp
# Set up a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install in dev mode
pip install -e ".[dev]"
# Configure your keys
cp .env.example .env
# Edit .env with your STEAM_API_KEY and STEAM_USER_ID
本地运行
对于开发,请将Claude Desktop直接指向您的本地安装:
{
"mcpServers": {
"steam": {
"command": "/path/to/steam-mcp/.venv/bin/steam-mcp",
"env": {
"STEAM_API_KEY": "your_api_key_here",
"STEAM_USER_ID": "your_steamid64_here"
}
}
}
}
开发命令
# Run tests
source .venv/bin/activate
pytest
# Run tests with coverage
pytest --cov=src/steam_mcp --cov-report=term-missing
Docker(本地构建)
# Build from source
docker compose --profile local build steam-mcp-local
# Run your local build
docker compose --profile local up steam-mcp-local
# Dev mode with volume mount (reflects code changes on restart)
docker compose --profile dev up steam-mcp-dev
添加新端点
在中创建新文件 src/steam_mcp/endpoints/ -它会被自动发现:
from steam_mcp.endpoints import BaseEndpoint, endpoint
from steam_mcp.utils import normalize_steam_id
class INewInterface(BaseEndpoint):
"""Your new Steam API interface."""
@endpoint(
name="my_new_tool",
description="What this tool does",
params={
"steam_id": {
"type": "string",
"description": "Steam ID in any format",
"required": True,
},
},
)
async def my_new_tool(self, steam_id: str) -> str:
normalized_id = await normalize_steam_id(steam_id, self.client)
result = await self.client.get("INewInterface", "Method", version=1, params={...})
return "Formatted result"
无需注册-只需放入文件并重新启动即可。
贡献
- 分叉回购
- 创建要素分支(
git checkout -b feature/cool-thing) - 进行更改
- 运行测试和梳理
- 推送并打开PR
可用工具(共36个)
玩家配置文件(ISteamUser)-6个工具
| 工具 | 它做什么 |
|---|---|
get_my_steam_id |
验证您的Steam ID是否配置正确 |
get_player_summary |
获取个人资料信息(姓名、头像、状态) |
get_player_summaries |
批量查找多个玩家 |
resolve_vanity_url |
将虚荣URL转换为SteamID64 |
get_friend_list |
获取某人的好友列表 |
get_player_bans |
检查VAC/游戏禁令状态 |
游戏库(IPlayerService)-4个工具
| 工具 | 它做什么 |
|---|---|
get_owned_games |
包含游戏时间统计的游戏库 |
get_recently_played_games |
过去两周你玩了什么 |
get_steam_level |
你的蒸汽水平 |
find_unplayed_games_with_friends |
找到你们都有但没有玩过的游戏 |
成就与统计(ISteamUserStats)-6个工具
| 工具 | 它做什么 |
|---|---|
get_player_achievements |
您在游戏中的成就进度 |
get_game_schema |
游戏中可用的所有成就 |
get_global_achievement_percentages |
每一项成就都是多么罕见 |
get_user_stats_for_game |
详细的游戏统计数据(击杀、死亡等) |
get_current_players |
现在有多少玩家在线 |
get_global_stats_for_game |
所有玩家的汇总统计数据 |
游戏信息(ISteamApps)-6个工具
| 工具 | 它做什么 |
|---|---|
get_app_list |
按名称搜索游戏 |
get_app_details |
游戏详细信息(价格、描述等) |
get_full_game_details |
一次通话即可获得全面的游戏信息(详细信息、评论、玩家、成就、新闻) |
get_similar_games |
查找与您喜欢的游戏相似的游戏 |
get_game_reviews |
带有Steam评级和示例文本的用户评论 |
check_app_up_to_date |
检查游戏版本是否为最新版本 |
游戏新闻(ISteamNews)-1个工具
| 工具 | 它做什么 |
|---|---|
get_news_for_app |
最新新闻和补丁说明 |
愿望清单和定价(ISteamWishlist)-3个工具
| 工具 | 它做什么 |
|---|---|
get_wishlist |
获取用户当前价格的愿望清单 |
check_wishlist_sales |
在您的愿望清单上找到打折游戏 |
compare_prices |
比较多个游戏的价格 |
社区指南(ISteamGuides)-2个工具
| 工具 | 它做什么 |
|---|---|
search_game_guides |
在Steam社区指南中搜索游戏 |
get_guide_content |
获取指南摘要和元数据(完整内容需要访问Steam) |
交易与市场(IEconService)-4个工具
| 工具 | 它做什么 |
|---|---|
get_trade_offers |
获取包含商品详细信息的进出口交易优惠 |
get_trade_history |
查看已完成的交易历史记录 |
get_market_listings |
查看商品的当前市场价格 |
check_market_eligibility |
检查用户是否可以使用Steam Market |
家庭共享(IFamilyGroupsService)-2个工具
| 工具 | 它做什么 |
|---|---|
get_family_group |
获取家庭组成员资格、成员和角色 |
get_shared_library_apps |
通过家庭共享获得游戏 |
Steam工作室(IPublishedFileService)-4个工具
| 工具 | 它做什么 |
|---|---|
search_workshop_items |
按游戏搜索工作室模组,使用文本/标签过滤器和排序 |
search_workshop_collections |
按游戏排序搜索工作室收藏(策划的项目列表) |
get_workshop_item_details |
获取研讨会项目的完整详细信息(描述、订阅者、依赖关系) |
get_workshop_collection |
从Workshop收藏中获取物品 |
配置参考
| 变量 | 必填 | 描述 |
|---|---|---|
STEAM_API_KEY |
是 | 您的Steam Web API密钥 |
STEAM_USER_ID |
否 | 您的SteamID64用于“我的个人资料”查询 |
STEAM_RATE_LIMIT |
否 | 每秒请求数(默认值:10) |
STEAM_TIMEOUT |
否 | 请求超时(秒)(默认值:30) |
STEAM_MAX_RETRIES |
否 | 最大重试次数(默认值:3) |
Steam ID格式
服务器理解所有这些格式:
76561198000000000(SteamID64)STEAM_0:0:19867136(SteamID)[U:1:39734272](SteamID3)https://steamcommunity.com/id/username(虚荣网址)https://steamcommunity.com/profiles/76561198000000000(配置文件URL)username(只是虚荣的名字)
许可证
麻省理工学院-随心所欲。