Steam API服务

一个Model Context Protocol (MCP)服务器,允许AI助手如Claude与Steam API交互,查询游戏、成就、游戏时间等信息。

  • by CodeKeanu
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 CodeKeanu/steam-mcp

使用说明

Steam MCP服务器

A. 模型上下文协议(MCP) 让像Claude这样的人工智能助手与Steam API对话的服务器。询问你的游戏、成就、游戏时间等。

它能做什么?

设置完成后,您可以向Claude询问以下问题:

  • “我拥有哪些游戏?”
  • “展示我在《反恐精英2》中的成就”
  • “Elden Ring最罕见的成就是什么?”
  • “这周我玩了几个小时?”
  • “《堡垒2》的最新消息是什么?”
  • “显示我的待定交易报价”
  • “AK-47红线目前的价格是多少?”

该服务器包括36个工具,涵盖玩家资料、游戏库、成就、统计数据、评论、愿望清单、新闻、社区指南、交易/市场数据、家庭共享和Steam Workshop。


快速入门(非开发人员)

只是想让它运行吗?这是使用Docker的最快途径。

你需要什么

  1. 码头工人 - 获取Docker桌面
  2. 蒸汽API密钥 - 在这里拿一个 (免费)
  3. 您的SteamID64 -在以下网址找到它 steamid.io 通过粘贴您的个人资料URL

设置

  1. 创建一个名为的文件 .env 你会记得的地方(比如你的Documents文件夹):
STEAM_API_KEY=your_api_key_here
STEAM_USER_ID=your_steamid64_here
  1. 将此添加到您的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.

  1. 重新启动Claude Desktop,您就可以开始了!

开发人员设置

想从源代码构建、贡献或破解代码吗?这部分是给你的。

先决条件

安装

# 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"

无需注册-只需放入文件并重新启动即可。

贡献

  1. 分叉回购
  2. 创建要素分支(git checkout -b feature/cool-thing)
  3. 进行更改
  4. 运行测试和梳理
  5. 推送并打开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 (只是虚荣的名字)

许可证

麻省理工学院-随心所欲。