Skip to main content
Glama
megabaka404

steam-personal-mcp

by megabaka404

Steam Personal + Store MCP

Локально запускаемый Steam MCP-сервер. По умолчанию предоставляет 12 составных инструментов, сгруппированных по областям.

Возможности

Личные данные

player — запрос профиля, текущей игры и видимости; library — запрос библиотеки, времени в играх, недавней активности, бэклога, заброшенных игр и кандидатов на возвращение; achievements — запрос деталей достижений, процента завершения и недавно полученных; friends — запрос друзей и общих игр с открытым профилем.

Магазин, скидки и список желаемого

store — поиск деталей, сравнение игр и просмотр DLC; deals — запрос скидок, глубоких распродаж и акций; wishlist — просмотр списка желаемого, истории цен, снижений цен, изменений дат выхода, а также рекомендаций buy / wait / skip с обоснованием.

Рекомендации и единый игровой профиль

recommendations — подбор кандидатов из магазина, похожих игр, новинок, бэклога и анализ дубликатов в библиотеке. candidate_score у кандидатов означает лишь приоритет поиска, а не итоговую оценку соответствия или уверенность в покупке — окончательное решение принимает вызывающий его ИИ.

game_intel(action="snapshot") — сводка по игре:

  • Наличие в библиотеке, общее время, время за последний период, последний запуск и достижения.

  • Текущая цена, цена без скидки, скидка, история цен по наблюдениям MCP.

  • Общие оценки, недавние оценки, количество оценок и доступные тренды за 7/30/90 дней.

  • Статус Steam Deck, поддержка Workshop, текущее количество игроков и понятные показатели популярности.

  • Дата выхода, информация об обновлениях/сборках, DLC, приобретённые DLC и отсутствующие DLC.

  • Локальный путь установки, SizeOnDisk, фактический размер каталога и shadercache; для Windows compatdata явно помечается как not_applicable.

Локальный Steam и безопасная очистка

local_steam — чтение libraryfolders.vdf, файлов appmanifest, установленных игр и занятого места на диске. storage_cleanup — три этапа: scan, preview, clean; scan никогда не удаляет данные; для clean необходимо явно указать appids, targets и передать confirm=true. shadercache — низкий риск; compatdata по умолчанию высокий риск и неприменим в первой версии для Windows.

Related MCP server: gamelibs-mcp

Составной инструмент / действие

player: profile | currently_playing | visibility
library: search | stats | most_played | recent | abandoned | never_played | low_playtime | backlog | return_to | game
achievements: details | summary | recent | almost_completed | completion_candidates
friends: list | playing | activity | shared
store: search | details | compare | dlc
deals: specials | deep_discounts | search_sales | summary
wishlist: list | sales | best_deals | price_history | price_drops | release_watch | buy_advice | purchase_candidates
recommendations: store | similar | new_releases | library | backlog | return_to | next | overlap | pick
activity: record | sessions | recent_sessions | year_review | game_change_history
game_intel: snapshot | update_impact
local_steam: scan | installed | disk_usage
storage_cleanup: scan | preview | clean

Проект сам по себе не вызывает внешние LLM. Он отвечает за чтение, фильтрацию, агрегацию, запись наблюдений и возврат структурированных доказательств; итоговую рекомендацию формирует вышестоящая модель.

Быстрый старт

Следующие команды предназначены для Windows PowerShell.

Шаг 1: перейдите в каталог проекта

Скачайте с GitHub:

git clone https://github.com/megabaka404/steam-personal-mcp.git
Set-Location steam-personal-mcp

Если проект уже локально:

Set-Location -LiteralPath '你的项目目录\steam-personal-mcp'

Шаг 2: создайте окружение и установите зависимости

Требуется Python 3.10 или новее.

py -3 -m venv .venv
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt

Шаг 3: настройте Steam

Скопируйте файл конфигурации и отредактируйте его:

Copy-Item .env.example .env
notepad .env

Заполните как минимум:

STEAM_API_KEY=你的Steam_Web_API_Key
STEAM_ID=你的SteamID64

Получите API Key:

https://steamcommunity.com/dev/apikey

Примечания:

  • STEAM\_ID должен быть в формате SteamID64.

  • Профиль Steam и данные об играх (Game Details) должны быть открытыми, иначе личные данные могут быть недоступны.

  • По умолчанию используется магазин для Китая; цена в магазине зависит от STEAM\_STORE\_COUNTRY и STEAM\_STORE\_LANGUAGE.

Дополнительные опции:

STEAM_MCP_HOST=127.0.0.1
STEAM_MCP_PORT=8789
STEAM_MCP_COMPACT_TOOLS=true
STEAM_MCP_LEGACY_TOOLS=false
STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=english
STEAM_HISTORY_DB=data/steam_history.sqlite3

По умолчанию включены 12 составных инструментов. Если необходимо продолжать использовать старые узкоспециализированные инструменты, установите:

STEAM_MCP_COMPACT_TOOLS=false
STEAM_MCP_LEGACY_TOOLS=true

Смена региона магазина Steam

Регион магазина задаётся двухбуквенным кодом страны Steam через STEAM\_STORE\_COUNTRY в файле .env. Изменения вступают в силу только после перезапуска MCP-сервера. По умолчанию — Китай.

Китай:

STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schinese

США:

STEAM_STORE_COUNTRY=us
STEAM_STORE_LANGUAGE=english

Япония:

STEAM_STORE_COUNTRY=jp
STEAM_STORE_LANGUAGE=japanese

Другие распространённые коды: gb (Великобритания), de (Германия), fr (Франция). Проект не выполняет автоматическую конвертацию валют; после смены региона могут измениться цены, валюта, скидки и часть результатов поиска по магазину.

Шаг 4: сначала проверьте работу в режиме Mock

Запустите Mock-сервис:

python server.py --mock

В отдельном окне PowerShell проверьте:

Invoke-WebRequest http://127.0.0.1:8789/health | Select-Object -ExpandProperty Content
Invoke-WebRequest http://127.0.0.1:8789/debug/status | Select-Object -ExpandProperty Content

Убедитесь, что проверка работоспособности (health check) проходит, и только затем запускайте реальный режим Steam.

Шаг 5: запустите реальный сервис

Режим HTTP:

python server.py

Адрес MCP:

http://127.0.0.1:8789/mcp

Режим stdio:

python server.py --stdio

Если нужны Mock-данные:

python server.py --stdio --mock

Примечание: по умолчанию регион — Китай. Чтобы сменить регион, перед запуском MCP в терминале выполните: $env:STEAM\_STORE\_COUNTRY="cn" $env:STEAM\_STORE\_LANGUAGE="schinese" Для других стран и регионов измените код аналогичным образом.

Настройка MCP-клиента

Если клиент поддерживает Streamable HTTP, добавьте:

{
  "mcpServers": {
    "steam-personal": {
      "url": "http://127.0.0.1:8789/mcp"
    }
  }
}

Не используйте /health в качестве адреса MCP — это только интерфейс проверки работоспособности.

Для клиентов stdio настройте запуск команды python server.py --stdio, используя Python из виртуального окружения проекта.

После подключения можно сразу задавать вопросы:

我的游戏库里有哪些几乎没玩过的游戏?
Darkest Dungeon 现在值得买吗?
把我的愿望单按当前折扣列出来。
根据我最近玩过的游戏召回 15 个候选,但只给证据,不要直接替我下结论。

Источники данных и ограничения

  • Личные данные в основном поступают из Steam Web API; данные магазина — из интерфейса Steam Store.

  • Если профиль Steam, данные об играх или статистика закрыты, часть данных может отсутствовать.

  • Некоторые игры не поддерживают достижения, статистику игроков или публичные оценки — соответствующие поля будут пустыми.

  • Интерфейс магазина не является полным и стабильным каталогом Steam; результаты поиска могут зависеть от региона, языка и ограничений интерфейса.

  • Цены, валюта и скидки возвращаются в соответствии с регионом магазина из конфигурации.

  • Данные об оценках заполняются только тогда, когда интерфейс Steam их надёжно предоставляет; проект не додумывает значения ради полноты.

  • При сбое чтения достижений они не помечаются как «все не получены».

  • История цен, игровые сессии и годовые отчёты — это локальные наблюдения MCP, а не официальная полная история Steam.

Структура проекта

server.py          服务入口
config.py          环境变量和启动参数
runtime.py         HTTP/stdio 运行时
clients/           Steam API 和 Store 客户端
services/          业务逻辑、推荐、历史记录
tools/             MCP 工具实现
models/            Pydantic 数据模型
tests/             自动化测试
data/              本地历史数据库目录

Лицензия

Руководствуйтесь файлом лицензии в репозитории. Данные Steam принадлежат сервисам Steam/Valve; этот проект лишь читает публичные интерфейсы и выполняет локальную обработку и анализ.


Почему результаты поиска по магазину неполные?

Публичные конечные точки search / featured в Store не являются полной базой данных всех товаров Steam.

Поэтому инструменты возвращают ограниченный набор кандидатов:

search_store
search_sales
new_releases_for_me
recommend_store_for_me

Если нужно проверить конкретную игру, используйте её AppID.

Почему цена/регион не совпадают?

Проверьте регион и язык в файле .env, например:

STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schinese

Можно также изменить:

us
jp
...

После изменений перезапустите сервис. Проект не выполняет автоматическую конвертацию валют.

Безопасность

  • Файл .env не передаётся наружу

  • Steam API Key не передаётся наружу

  • Пароль Steam не сохраняется

  • Steam Guard не сохраняется

  • Cookie Steam не требуются

  • API Key не выводится в логи

  • debug-эндпоинты не возвращают секреты

  • Приватные настройки Steam не обходятся

  • Нет автоматических покупок, обменов или изменений аккаунта

  • По умолчанию сервер привязан только к 127.0.0.1

При публичном развёртывании обязательно настройте:

  • HTTPS

  • Bearer / OAuth / reverse proxy аутентификацию

  • Разумные ограничения запросов

  • Маскирование секретов в логах


Тестирование

Тесты должны использовать mock-клиенты или httpx.MockTransport, чтобы не зависеть от реального Steam.

Запуск:

pytest

Mock MCP smoke-тест:

python server.py --mock

Invoke-WebRequest http://127.0.0.1:8789/health
Invoke-WebRequest http://127.0.0.1:8789/debug/status

Этот проект создан при содействии ChatGPT и Codex.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that exposes your Steam, Epic Games Store, and IGDB game data as tools, enabling game library queries, install status checks, and metadata enrichment.
    12
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that connects AI assistants to the Steam Web API and storefront, enabling game library analysis, mood-based backlog recommendations, wishlist evaluation, and storefront searches.
    8
    6 npm
    MIT