mcpField
S
SteamStats MCP Server

SteamStats MCP Server

本地服务
github.com/algorhythmic游戏娱乐082 周前更新

关于 SteamStats MCP Server

SteamStats MCP Server 是基于 Python 和 FastAPI 的服务,旨在为 MCP 客户端提供结构化的 Steam Web API 游戏统计与用户信息。README 提示当前实现尚不能运行。

主要功能

  1. 01访问 Steam 游戏与用户数据
  2. 02列出十种 Steam API 命令
  3. 03处理 JSON-RPC 风格请求
  4. 04配置服务与日志设置

适用场景

  1. 01查询游戏玩家人数和详情
  2. 02获取玩家成就及游戏统计

MCP 相关

它在 `/message` 接收 MCP tools/call 请求,并转发至 Steam Web API。README 指出当前实现尚不能运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SteamStats MCP 服务

警告

当前实现无法运行!

概述

本项目使用 Python 和 FastAPI 实现了一个 SteamStats MCP(Model Context Protocol)服务。该服务充当 MCP 客户端(例如 Roo)与 Steam Web API 之间的中介,提供对各种 Steam 游戏统计数据和用户信息的结构化访问。

它提供了一个 /message 端点,用于接收 JSON-RPC 风格的 tools/call 请求,对请求进行验证,与 Steam Web API 交互,并返回格式化结果或相应的错误消息。

技术栈

  • 语言: Python 3.11+
  • 框架: FastAPI
  • 数据验证: Pydantic
  • Web 服务器: Uvicorn
  • HTTP 客户端: Requests
  • 包管理: UV

请求流程

下图展示了典型的请求流程:

sequenceDiagram
    participant Client as MCP Client
    participant Server as SteamStats MCP Server
    participant SteamAPI as Steam Web API

    Client->>Server: POST /message (tools/call, command, args)
    Server->>Server: Validate MCP message format
    alt Invalid Format
        Server-->>Client: Error Response (e.g., Invalid Request)
    else Valid Format
        Server->>Server: Parse command & arguments
        Server->>Server: Validate arguments using Pydantic
        alt Invalid Arguments
            Server-->>Client: Error Response (Validation Error)
        else Valid Arguments
            Server->>SteamAPI: Make API Request(s) (e.g., GET /ISteamUserStats/...)
            SteamAPI-->>Server: API Response (JSON data or error)
            alt Steam API Error
                Server->>Server: Log API Error
                Server-->>Client: Error Response (API Error)
            else Successful API Response
                Server->>Server: Process API data
                Server-->>Client: Success Response (result data)
            end
        end
    end

设置和安装

  1. 先决条件:

    • Python 3.11 或更高版本。
    • 已安装 UV 包管理器(pip install uv)。
  2. 克隆仓库(如果尚未克隆):

    git clone <repository-url>
    cd steamstats_mcp
    
  3. 创建虚拟环境(推荐):

    # Using uv
    uv venv
    source .venv/bin/activate # On Linux/macOS
    # .venv\Scripts\activate # On Windows
    
    # Or using standard venv
    # python -m venv .venv
    # source .venv/bin/activate # On Linux/macOS
    # .venv\Scripts\activate # On Windows
    
  4. 安装依赖项:

    uv pip install -r requirements.txt # Assuming a requirements.txt exists or will be generated from pyproject.toml
    # Or directly from pyproject.toml if using uv for management
    # uv sync
    

    (注意:如果不使用直接的 uv sync,可能需要使用 uv pip freeze > requirements.txt 从 pyproject.toml 生成 requirements.txt。)

  5. 配置环境变量: 请参阅下文。

配置(环境变量)

服务需要设置以下环境变量:

  • STEAM_API_KEY(必需): Steam Web API 密钥。请从 Steam Developer 网站获取。没有此密钥,服务将无法运行。
  • LOG_LEVEL(可选): 设置日志级别。可选值包括 DEBUG、INFO、WARNING、ERROR、CRITICAL。默认为 INFO。
  • HOST(可选): 服务绑定的主机地址。默认为 0.0.0.0(监听所有可用网络接口)。
  • PORT(可选): 服务监听的端口。默认为 8000。

你可以在 shell 环境中设置这些变量,也可以使用 .env 文件(需要 python-dotenv 包并修改代码以加载该文件),或通过部署系统的配置进行设置。

示例(Linux/macOS):

export STEAM_API_KEY="YOUR_API_KEY_HERE"
export LOG_LEVEL="DEBUG"
export PORT="8080"

示例(Windows CMD):

set STEAM_API_KEY=YOUR_API_KEY_HERE
set LOG_LEVEL=DEBUG
set PORT=8080

示例(Windows PowerShell):

$env:STEAM_API_KEY = "YOUR_API_KEY_HERE"
$env:LOG_LEVEL = "DEBUG"
$env:PORT = "8080"

运行服务

安装依赖项并配置环境变量后,使用 Uvicorn 运行服务:

uvicorn main:app --host $HOST --port $PORT --reload
  • 如果 FastAPI 应用实例名称不同或位于其他文件中,请替换 main:app。
  • --reload 标志可在开发期间启用自动重新加载(生产环境中请移除此标志)。
  • 如果设置了 HOST 和 PORT 环境变量,Uvicorn 将使用这些变量;否则使用默认值(0.0.0.0 和 8000)。

现在,服务应该已启动,并在 http://<HOST>:<PORT>/message 监听 MCP 请求。

可用的 MCP 命令

有关可用命令、参数和预期结果的详细信息,请参阅 STEAMSTATS_MCP_SPECIFICATION.md。当前已实现的命令包括:

  • getCurrentPlayers
  • getAppDetails
  • getGameSchema
  • getGameNews
  • getPlayerAchievements
  • getUserStatsForGame
  • getGlobalStatsForGame
  • getSupportedApiList
  • getAppList
  • getGlobalAchievementPercentages

连接本地 MCP 客户端(例如 Roo)

要将本地 MCP 客户端(例如 Roo VS Code 扩展)连接到正在运行的服务,你需要配置客户端的 mcp.json 文件。此文件通常位于项目或用户设置目录下的 .roo 目录中。

该配置会告知客户端如何与服务通信。由于这是一个基于 HTTP 的服务(FastAPI/Uvicorn),你需要使用 sse(Server-Sent Events)类型。

  1. 确保 SteamStats MCP Server 正在运行: 按照上方的“运行服务”说明操作。默认情况下,服务运行在 http://localhost:8000。
  2. 找到或创建 mcp.json 文件: 该文件可能位于工作区的 .roo/mcp.json 中,也可能位于全局配置位置。
  3. 添加服务配置: 在 mcp.json 的 servers 数组中添加一个条目。

mcp.json 条目示例:

{
  "servers": [
    // ... other server configurations ...
    {
      "name": "steamstats-local", // Choose a descriptive name
      "type": "sse",
      "enabled": true,
      "url": "http://localhost:8000/message", // Adjust host/port if you changed defaults
      "readTimeoutSeconds": 60,
      "writeTimeoutSeconds": 60
    }
  ]
}
  • name:此服务连接的唯一标识符。
  • type:对于基于 HTTP 的服务,必须设为 sse。
  • enabled:设为 true 以激活连接。
  • url:正在运行的服务的 /message 端点的完整 URL。请确保主机和端口与服务的运行方式一致(例如,如果你使用了 export PORT=8081,请相应地更改 URL)。
  • readTimeoutSeconds / writeTimeoutSeconds:可选的超时时间。

完成配置并启动服务后,你的 MCP 客户端应该就能连接并使用此 SteamStats 服务提供的工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。