Skip to main content
Glama
megabaka404

steam-personal-mcp

by megabaka404

Steam Personal + Store MCP

Un servidor MCP de Steam que se ejecuta localmente. Expone por defecto 12 herramientas compuestas organizadas por dominio.

Qué puede hacer

Datos personales

player consulta el perfil, el juego actual y la visibilidad; library consulta la biblioteca de juegos, horas de juego, juegos recientes, backlog, juegos abandonados y candidatos a retomar; achievements consulta los detalles de logros, el porcentaje de finalización y los logros recientes; friends consulta los amigos y los juegos en común visibles públicamente.

Tienda, descuentos y lista de deseos

store busca detalles, compara juegos y consulta los DLC; deals consulta ofertas, descuentos profundos y rebajas; wishlist consulta la lista de deseos, el historial de precios, bajadas de precio, cambios de fecha de lanzamiento y recomendaciones fundamentadas de comprar / esperar / descartar.

Recomendaciones y perfil unificado de juegos

recommendations recupera candidatos de la tienda, juegos similares, novedades, backlog y análisis de duplicados en la biblioteca. El candidate_score de un candidato solo indica la prioridad de recuperación, no es la idoneidad final ni la confianza de compra; la decisión final la toma la IA que lo invoca.

game_intel(action="snapshot") resume de un juego:

  • Estado de propiedad personal, horas totales, horas recientes, última sesión y logros.

  • Precio actual, precio original, descuento e historial de precios observado por el MCP.

  • Reseñas generales, reseñas recientes, número de reseñas y tendencias disponibles a 7/30/90 días.

  • Estado en Steam Deck, soporte de Workshop, jugadores actuales e indicadores de popularidad interpretables.

  • Fecha de lanzamiento, información de actualizaciones/builds, DLC, DLC en propiedad y DLC que faltan.

  • Ruta de instalación local, SizeOnDisk, tamaño real del directorio y shadercache; en Windows, compatdata se marca explícitamente como not_applicable.

Steam local y limpieza segura

local_steam lee libraryfolders.vdf, archivos appmanifest, juegos instalados y ocupación de disco en Windows. storage_cleanup se divide en tres pasos: scan, preview y clean; scan nunca elimina nada; clean exige especificar claramente appids y targets, y pasar confirm=true. shadercache es de bajo riesgo; compatdata es de alto riesgo por defecto y no aplica en la primera versión para Windows.

Related MCP server: gamelibs-mcp

Herramientas compuestas / acciones

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

El proyecto no invoca LLM externos. Se encarga de leer, agregar, registrar observaciones y devolver evidencia estructurada; la decisión final de recomendación la toma el modelo de nivel superior.

Inicio rápido

Los siguientes comandos son para Windows PowerShell.

Paso 1: Entrar en el directorio del proyecto

Descargar desde GitHub:

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

Si el proyecto ya está en local:

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

Paso 2: Crear el entorno e instalar dependencias

El proyecto requiere Python 3.10 o superior.

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

Paso 3: Configurar Steam

Copiar el archivo de configuración y editarlo:

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

Rellenar como mínimo:

STEAM_API_KEY=你的Steam_Web_API_Key
STEAM_ID=你的SteamID64

Obtener una API Key:

https://steamcommunity.com/dev/apikey

Nota:

  • STEAM_ID debe ser un SteamID64.

  • El perfil de Steam y los detalles del juego deben ser visibles públicamente; de lo contrario, los datos personales podrían no poder leerse.

  • La tienda predeterminada es la de China; el precio de la tienda depende de STEAM_STORE_COUNTRY y STEAM_STORE_LANGUAGE.

Configuración opcional:

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

Las 12 herramientas compuestas están habilitadas por defecto. Si necesitas seguir usando las herramientas granulares antiguas, puedes configurar:

STEAM_MCP_COMPACT_TOOLS=false
STEAM_MCP_LEGACY_TOOLS=true

Cambiar la región de la tienda de Steam

La región de la tienda usa el código de país de dos letras de Steam, que se modifica mediante STEAM_STORE_COUNTRY en el archivo .env. El cambio solo se aplica tras reiniciar el servicio MCP. La región predeterminada es China.

China:

STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schinese

Estados Unidos:

STEAM_STORE_COUNTRY=us
STEAM_STORE_LANGUAGE=english

Japón:

STEAM_STORE_COUNTRY=jp
STEAM_STORE_LANGUAGE=japanese

Otros códigos comunes incluyen gb (Reino Unido), de (Alemania), fr (Francia). El proyecto no realiza conversión automática de divisas; al cambiar de región, el precio, la moneda, los descuentos y parte de los resultados de búsqueda de la tienda pueden variar.

Paso 4: Probar primero con el modo Mock

Iniciar el servicio Mock:

python server.py --mock

Abrir otra ventana de PowerShell para comprobar:

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

Cuando veas que la comprobación de salud funciona, puedes iniciar el modo real de Steam.

Paso 5: Iniciar el servicio real

Modo HTTP:

python server.py

Dirección MCP:

http://127.0.0.1:8789/mcp

Modo stdio:

python server.py --stdio

Cuando necesites datos Mock:

python server.py --stdio --mock

Nota: la región predeterminada es China. Para cambiar la región antes de iniciar el MCP en la terminal, introduce: $env:STEAM_STORE_COUNTRY="cn" $env:STEAM_STORE_LANGUAGE="schinese" Para otros países o regiones, modifica el código de la misma manera.

Configuración del cliente MCP

Si el cliente es compatible con Streamable HTTP, añade:

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

No uses /health como dirección MCP; es solo el endpoint de comprobación de salud.

Para clientes stdio, configura el comando para iniciar python server.py --stdio y usa el entorno virtual del proyecto.

Tras conectar correctamente, puedes preguntar directamente:

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

Fuentes de datos y limitaciones

  • Los datos personales provienen principalmente de la API web de Steam; los datos de la tienda provienen de la interfaz de la tienda de Steam.

  • La configuración de privacidad del perfil de Steam, de los detalles del juego o de las estadísticas puede provocar que falten datos.

  • Algunos juegos no admiten logros, estadísticas de jugadores o reseñas públicas; los campos correspondientes estarán vacíos.

  • La interfaz de la tienda no es un catálogo completo y estable de Steam; los resultados de búsqueda pueden verse limitados por región, idioma e interfaz.

  • El precio, la moneda y los descuentos se devuelven según la región de tienda configurada.

  • Los datos de reseñas solo se rellenan cuando la interfaz de Steam los proporciona de forma fiable; no se hacen suposiciones para completar.

  • Si falla la lectura de logros, no se falsifican como "todos desbloqueados".

  • El historial de precios, las sesiones de juego y el resumen anual son observaciones locales del MCP, no el historial oficial completo de Steam.

Estructura del proyecto

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

Licencia

Consulta el archivo de licencia del repositorio. Los datos de Steam pertenecen a los servicios de Steam/Valve; este proyecto solo lee interfaces públicas y los organiza y analiza localmente.


¿Por qué los resultados de búsqueda de la tienda están incompletos?

El endpoint público de búsqueda / destacados de la tienda no es la base de datos completa de productos de Steam.

Por lo tanto, las herramientas devuelven un conjunto acotado de candidatos:

search_store
search_sales
new_releases_for_me
recommend_store_for_me

Si necesitas consultar un juego concreto, usa preferentemente su AppID.

La región de precios no es la correcta

Comprueba la región y el idioma en el archivo .env, por ejemplo:

STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schinese

También puedes cambiarlo a:

us
jp
...

Tras modificar, reinicia el servicio. El proyecto no realiza conversión automática de divisas.

Seguridad

  • No se envía .env

  • No se envía la API Key de Steam

  • No se guarda la contraseña de Steam

  • No se guarda Steam Guard

  • No se requiere cookie de Steam

  • La API Key no se imprime en los registros

  • El endpoint de depuración no devuelve secretos

  • No se omiten los ajustes de privacidad de Steam

  • No se compran, intercambian ni modifican cuentas de Steam automáticamente

  • Por defecto solo se vincula a 127.0.0.1

Si se despliega en una red pública, se debe configurar adicionalmente:

  • HTTPS

  • Autenticación Bearer / OAuth / proxy inverso

  • Límites de peticiones razonables

  • Ofuscación de datos sensibles en los registros


Pruebas

Las pruebas deben usar clientes mock o httpx.MockTransport para evitar depender del estado real de Steam.

Ejecutar:

pytest

Prueba de humo del MCP Mock:

python server.py --mock

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

Este proyecto ha sido asistido por ChatGPT y Codex.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    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.
    1
    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
    546
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/megabaka404/steam-personal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server