关于 SteamStats MCP Server
SteamStats MCP Server 是基于 Python 和 FastAPI 的服务,旨在为 MCP 客户端提供结构化的 Steam Web API 游戏统计与用户信息。README 提示当前实现尚不能运行。
主要功能
- 01访问 Steam 游戏与用户数据
- 02列出十种 Steam API 命令
- 03处理 JSON-RPC 风格请求
- 04配置服务与日志设置
适用场景
- 01查询游戏玩家人数和详情
- 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
设置和安装
-
先决条件:
- Python 3.11 或更高版本。
- 已安装 UV 包管理器(
pip install uv)。
-
克隆仓库(如果尚未克隆):
git clone <repository-url> cd steamstats_mcp -
创建虚拟环境(推荐):
# 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 -
安装依赖项:
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。) -
配置环境变量: 请参阅下文。
配置(环境变量)
服务需要设置以下环境变量:
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。当前已实现的命令包括:
getCurrentPlayersgetAppDetailsgetGameSchemagetGameNewsgetPlayerAchievementsgetUserStatsForGamegetGlobalStatsForGamegetSupportedApiListgetAppListgetGlobalAchievementPercentages
连接本地 MCP 客户端(例如 Roo)
要将本地 MCP 客户端(例如 Roo VS Code 扩展)连接到正在运行的服务,你需要配置客户端的 mcp.json 文件。此文件通常位于项目或用户设置目录下的 .roo 目录中。
该配置会告知客户端如何与服务通信。由于这是一个基于 HTTP 的服务(FastAPI/Uvicorn),你需要使用 sse(Server-Sent Events)类型。
- 确保 SteamStats MCP Server 正在运行: 按照上方的“运行服务”说明操作。默认情况下,服务运行在
http://localhost:8000。 - 找到或创建
mcp.json文件: 该文件可能位于工作区的.roo/mcp.json中,也可能位于全局配置位置。 - 添加服务配置: 在
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 服务提供的工具。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。