返回市场
蒸汽-MCP

蒸汽-MCP

作者:algorhythmic2 星标更新:2025-04-04

项目介绍

Steam MCP Server (Node.js/TypeScript)

概述

该项目使用Node.js、TypeScript以及@modelcontextprotocol/sdk实现了一个Steam MCP(模型上下文协议)服务器。该服务器作为MCP客户端(如Roo)与Steam Web API之间的中介,提供对各种Steam游戏统计数据和用户信息的结构化访问。

它通过标准输入输出(stdio)与MCP客户端通信,使用@modelcontextprotocol/sdk中的StdioServerTransport。它监听tools/call请求,验证这些请求,使用Axios与Steam Web API交互,并返回格式化的结果或适当的错误消息。

技术栈

  • 语言: TypeScript
  • 运行时: Node.js(推荐v18及以上)
  • HTTP客户端: Axios
  • 环境变量: Dotenv
  • MCP SDK: @modelcontextprotocol/sdk
  • 包管理: npm

安装和设置

  1. 前提条件:

    • Node.js(推荐v18或更高版本)。
    • npm(通常随Node.js一起安装)。
  2. 克隆仓库(如果尚未完成):

    git clone <repository-url> # 替换为你的仓库URL
    cd steam-mcp
    
  3. 安装依赖项:

    npm install
    
  4. 配置环境变量: 请参阅以下部分。

  5. 构建项目:

    npm run build
    

    这会将TypeScript代码编译到build目录中。

配置(环境变量)

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

  • STEAM_API_KEY(必需): 你的Steam Web API密钥。从Steam开发者网站获取一个。没有此密钥,服务器无法运行。

该项目在项目根目录下使用.env文件加载API密钥。在steam-mcp目录下创建一个名为.env的文件,并添加以下行:

STEAM_API_KEY=YOUR_API_KEY_HERE

YOUR_API_KEY_HERE替换为你实际的Steam Web API密钥。

运行服务器(独立模式)

在构建项目(npm run build)并配置.env文件后,你可以直接使用Node运行服务器:

node build/index.js

服务器将启动并监听标准输入输出上的MCP消息。

可用的MCP命令

基于Steam Web API,此服务器提供了以下工具:

  • getCurrentPlayers:检索给定AppID的当前玩家数量。
  • getAppList:检索Steam上所有公开应用的完整列表。
  • getGameSchema:检索给定AppID的游戏架构(统计信息、成就)。
  • getAppDetails:检索一个或多个AppID的商店页面详情。
  • getGameNews:检索给定AppID的最新新闻条目。
  • getPlayerAchievements:检索特定游戏中玩家的成就状态。
  • getUserStatsForGame:检索特定游戏中用户的详细统计信息。
  • getGlobalStatsForGame:检索特定游戏的聚合全球统计信息。
  • getSupportedApiList:检索支持的Steam Web API接口和方法列表。
  • getGlobalAchievementPercentages:检索游戏的全局成就完成百分比。

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

要连接本地MCP客户端,如Roo VS Code扩展,你需要配置客户端的mcp.json文件。此文件通常位于项目或用户设置中的.roo目录内。

配置告诉客户端如何使用标准输入输出启动并与服务器通信。

  1. 确保项目已构建: 运行npm run build
  2. 定位或创建你的mcp.json文件: 这可能位于工作区的.roo/mcp.json或全局配置位置。
  3. 添加服务器配置:mcp.jsonservers数组中添加一个条目。

示例mcp.json条目:

{
  "servers": [
    // ... 其他服务器配置 ...
    {
      "name": "steam-local-stdio", // 选择一个描述性名称
      "type": "stdio",
      "enabled": true,
      "command": "node", // 要执行的命令
      "args": [
        // 编译索引.js文件的绝对路径
        "C:\\Users\\<username>\\AppData\\Roaming\\Roo-Code\\MCP\\steam-mcp\\build\\index.js"
        // 如果你的项目位置不同,请调整路径
      ],
      "cwd": "C:\\Users\\<username>\\AppData\\Roaming\\Roo-Code\\MCP\\steam-mcp" // 工作目录(项目根目录)
    }
  ]
}
  • name:此服务器连接的唯一标识符(例如steam)。
  • type:必须是stdio
  • enabled:设置为true以激活连接。
  • command:运行Node.js运行时的命令(node)。
  • args:包含编译服务器脚本(build/index.js)绝对路径的数组。重要:确保此路径对你系统正确。在Windows的JSON字符串中使用双反斜杠(\\)。
  • cwd:服务器应从中运行的项目的根目录的绝对路径。重要:确保此路径对你系统正确。

一旦配置并启用,你的MCP客户端应该能够通过stdio启动并与此服务器通信。