Steam API集成服务器

一个使用FastMCP框架集成Steam Web API的综合MCP服务器,提供用户数据、游戏信息和社区功能。

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

使用说明

mcp服务器蒸汽

人工智能 使用创建的项目。

使用FastMCP与Steam Web API集成的综合模型上下文协议(MCP)服务器。

主要功能

  • 用户配置文件和统计信息

    • 配置文件信息(昵称、头像、账号详细信息)
    • 好友列表
    • 拥有的游戏库
    • 游戏时间数据
    • 最近玩的游戏
    • Steam级别
    • 业绩进展情况
  • 游戏信息和商店

    • 游戏详细信息和元数据
    • 商店价格和折扣信息
    • 新闻和更新
    • 搜索游戏
    • 特定游戏的业绩数据
  • 社区功能

    • Steam研讨会物品
    • 用户评论
    • VAC和游戏货车状态

在PyPI中安装

发布到PyPI后,可以安装以下内容:

pip install mcp-server-steam

安装后执行以下操作:

mcp-server-steam

从源安装

或者,直接从源代码安装:

  1. 存储库克隆:
git clone <repository-url>
cd mcp-server-steam
  1. uv依赖性安装:
uv sync
  1. 安装软件包:
uv pip install -e .
  1. Steam Web API密钥发放:

    • https://steamcommunity.com/dev/apikey 방문
    • 使用Steam帐户登录
    • 注册域后复制API密钥
  2. 首选参数:

重要: .env 必须在文件中设置API密钥。

# .env.example을 복사해서 .env 파일 생성
cp .env.example .env

# .env 파일을 텍스트 편집기로 열어서 STEAM_API_KEY 추가
# 예: STEAM_API_KEY=YOUR_API_KEY_HERE

# (선택사항) Steam ID를 기본값으로 설정하려면:
# STEAM_USER_ID=76561198XXXXXXXXXXX

API密钥发放: https://steamcommunity.com/dev/apikey

使用方法

运行服务器

# PyPI에서 설치한 경우
mcp-server-steam

# 소스에서 개발 중인 경우
uv run python -m mcp_server_steam

服务器以STDIO传输方式启动,可在MCP客户端(如Claude Desktop)上使用。

Claude桌面配置

📖 详细设置指南: CLAUDE_CONFIG.md

在PyPI上安装(推荐)

添加到Claude Desktop配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "steam": {
      "command": "uvx",
      "args": ["mcp-server-steam"],
      "env": {
        "STEAM_API_KEY": "${STEAM_API_KEY}",
        "STEAM_USER_ID": "${STEAM_USER_ID}"
      }
    }
  }
}

或 pip如果安装为:

{
  "mcpServers": {
    "steam": {
      "command": "mcp-server-steam",
      "env": {
        "STEAM_API_KEY": "${STEAM_API_KEY}",
        "STEAM_USER_ID": "${STEAM_USER_ID}"
      }
    }
  }
}

如果是从源开发

{
  "mcpServers": {
    "steam": {
      "command": "uv",
      "args": ["run", "python", "-m", "mcp_server_steam"],
      "cwd": "/path/to/mcp-server-steam",
      "env": {
        "STEAM_API_KEY": "${STEAM_API_KEY}",
        "STEAM_USER_ID": "${STEAM_USER_ID}"
      }
    }
  }
}

使用环境变量(建议)

使用环境变量,而不是直接输入API密钥:

# ~/.zshrc 또는 ~/.zprofile에 추가
export STEAM_API_KEY="your_steam_api_key_here"

在设置中:

"env": {
  "STEAM_API_KEY": "${STEAM_API_KEY}"
}

重新启动Claude Desktop

要应用设置,请完全退出并重新启动Claude Desktop。

MCP客户端设置

通常建议使用PyPI版本:

{
  "mcpServers": {
    "steam": {
      "command": "uvx",
      "args": ["mcp-server-steam"],
      "env": {
        "STEAM_API_KEY": "${STEAM_API_KEY}",
        "STEAM_USER_ID": "${STEAM_USER_ID}"
      }
    }
  }
}

使用FastMCP CLI进行测试

# 사용 가능한 도구 목록 보기
uv run fastmcp list src/mcp_server_steam/server.py

# 도구 호출 테스트
uv run fastmcp call src/mcp_server_steam/server.py get_user_profile steam_id=76561198000000000

可用工具

配置文件工具

  • get_user_profile -查看Steam用户配置文件
  • get_friends_list -查看好友列表
  • get_owned_games -查看所有游戏
  • get_recently_played_games -查看最近玩的游戏
  • get_steam_level -查看Steam级别
  • get_player_achievements -查看特定游戏的业绩进展情况

游戏工具

  • get_game_details -在商店中查看游戏信息
  • get_game_news -查看游戏新闻和更新
  • get_global_achievement_percentages -查看完整的业绩统计数据
  • search_games -在Steam上搜索游戏
  • get_game_schema -查看业绩和统计模式

社区工具

  • get_workshop_items -查看Steam研讨会项目
  • get_workshop_item_details -研讨会项目详情
  • get_user_reviews -查看游戏用户评论
  • get_player_bans -查看VAC和游戏货车状态

实用工具

  • resolve_vanity_url -将Vanity URL转换为Steam ID

资源

  • steam://config -服务器设置
  • steam://supported-games -常见游戏App ID列表

Steam ID与应用程序ID

  • Steam ID(SteamID):64位用户帐户ID(例如7656119800000000)
  • 应用程序ID(appid):Steam商店中的游戏标识符(例如CS2为730)

将自定义配置文件URL转换为Steam ID的步骤 resolve_vanity_url请使用。

速度限制(Rate Limiting)

服务器实施速度限制以符合Steam API限制:

  • 每分钟请求100次
  • 发生错误时自动恢复指数
  • 正确处理速度限制响应错误

项目结构

mcp-server-steam/
├── src/
│   └── mcp_server_steam/
│       ├── __init__.py
│       ├── __main__.py        # 메인 진입점
│       ├── server.py          # MCP 서버
│       ├── steam_client.py    # Steam API 클라이언트
│       ├── config.py          # 설정
│       └── tools/             # 도구 모듈
│           ├── __init__.py
│           ├── profile.py     # 사용자 프로필 도구
│           ├── games.py       # 게임 정보 도구
│           └── community.py   # 커뮤니티 도구
├── pyproject.toml             # 프로젝트 설정 및 의존성
├── README.md                  # 이 파일
├── .env                       # API 키 (git에 포함되지 않음)
└── .env.example               # 환경변수 템플릿

错误处理

服务器在以下情况下会提供明确的错误消息:

  • 无效的Steam ID或App ID
  • 缺少API密钥
  • 超过速度限制
  • 网络错误
  • Steam API错误

AI使用示例

示例1:查看用户配置文件

사용자: "내 Steam 프로필 조회해줘"
AI: resolve_vanity_url을 호출하여 vanity URL을 Steam ID로 변환
AI: get_user_profile을 호출하여 프로필 정보 조회

示例2:分析游戏库

사용자: "내 게임 목록 보여줘"
AI: get_user_profile로 Steam ID 획득
AI: get_owned_games로 소유 게임 목록 조회
AI: 플레이타임 기준으로 정렬하고 상위 게임 요약

示例3:游戏搜索和详细信息

사용자: "엘든 링 GO 정보 알려줘"
AI: search_games로 "ELDEN RING" 검색
AI: get_game_details로 상세 정보, 가격, 장르 조회

示例4:业绩确认

사용자: "내 염완의 왕 게임 업적이 어떻게 돼?"
AI: get_owned_games로 게임 목록 확인
AI: get_player_achievements로 염완의 왕 업적 조회
AI: get_global_achievement_percentages로 전체 플레이어 대비 비교

示例5:查找研讨会模式

사용자: "스카이림 모드 추천해줘"
AI: search_games로 스타필드 스카이림(Skyrim, App ID: 72850) 검색
AI: get_workshop_items로 인기 모드 목록 조회
AI: get_workshop_item_details로 특정 모드 상세 정보 확인

AI技巧

  1. 工具使用顺序: resolve_vanity_url → get_user_profile →其他工具
  2. 数据效率: include_app_info=True一次获取游戏信息
  3. 错误处理:如果Steam ID无效,请先尝试转换vanity URL
  4. 语言设置:面向韩国用户 language="korean" 或 language="english" 利用参数

贡献

欢迎您的贡献!请自由提交问题或完整请求。

参考资料

许可证

MIT License-有关详细信息,请参阅LICENSE文件