Steam MCP (read-only)

Steam de solo lectura: tienda, reseñas, ofertas, precios, conteo de jugadores y compatibilidad con Steam Deck sin clave de API, además de biblioteca, tiempo de juego, amigos, logros, lista de deseos y planificación de noches de cooperativo con una clave gratuita de Steam Web API.

Documentación

Steam MCP

PyPI Python CI License: MIT MCP Registry

Un servidor de Model Context Protocol de solo lectura para la API web pública de Steam y la tienda — 41 herramientas, 5 prompts y 2 recursos que permiten a cualquier cliente MCP (Claude Desktop, Claude Code, Cursor, …) responder preguntas sobre Steam: tus amigos, juegos, horas de juego y logros, además de cosas independientes de la cuenta como ofertas, reseñas, jugadores activos en tiempo real, compatibilidad con Steam Deck, descubrimiento, recomendaciones y planificación de cooperativo.

Solo lectura · solo APIs oficiales de Steam · código abierto. Nadie inicia sesión, y el servidor nunca escribe, intercambia, publica, inicia juegos ni realiza compras.

Inicio rápido — no se necesita clave API

Instala uv, luego:

Claude Code

claude mcp add steam -- uvx steam-mcp

Eso es toda la configuración. 19 de las 41 herramientas funcionan sin ninguna credencial — cualquier cosa sobre la tienda o un juego en sí:

"¿Vale la pena comprar Baldur's Gate 3, y cómo van sus reseñas recientes?" "¿Qué juegos cooperativos están en oferta por menos de £20 ahora mismo?" "¿Cuántas personas están jugando Helldivers 2 en este minuto?" "¿Funcionará Hades II correctamente en mi Steam Deck?"

Los tres buscadores de juegos (steam_discover, steam_should_i_buy, steam_recommend) también funcionan sin clave, siempre que no los personalices.

Añadiendo tu propia cuenta

Una clave gratuita de Steam Web API (se obtiene en un minuto) desbloquea las otras 22 — las que leen una cuenta específica: biblioteca, horas de juego, amigos, logros, lista de deseos, inventario. Añade también STEAM_USER y "mi"/"yo" se refieren por defecto a ti, para que nunca tengas que pegar un SteamID:

claude mcp add steam --env STEAM_API_KEY=YOUR_KEY --env STEAM_USER=your_steam_name -- uvx steam-mcp

Consejo: esto se aplica por defecto al proyecto actual. Añade --scope user solo si quieres Steam en todos los proyectos — eso mantiene sus herramientas en contexto en todas partes, así que prefiere el ámbito por proyecto a menos que Steam sea transversal para ti.

Claude Desktop — descarga steam-mcp.mcpb desde el último lanzamiento y ábrelo (Configuración → Extensiones). Ambos campos son opcionales; déjalos en blanco para las herramientas sin clave y complétalos más tarde.

Cursor / Cline / Windsurf y la configuración manual de pip están en Configuración más abajo.

Sin una clave, las herramientas de cuenta siguen apareciendo pero marcadas como [unavailable: needs STEAM_API_KEY], para que tu asistente sepa recurrir a una herramienta sin clave en lugar de fallar con una que no puede usar.


Qué puede responder

Cuenta / perfil (necesita un perfil público; establece STEAM_USER y "mi"/"yo" se refieren por defecto a ti — no se necesita SteamID):

  • "¿Quién está en mi lista de amigos, y quién está en línea ahora mismo?"
  • "¿Cuál de mis amigos tiene Helldivers 2 — y quién lo está jugando ahora?"
  • "Es noche de juegos — ¿qué juegos cooperativos tenemos en común mis amigos en línea y yo?"
  • "Analiza mi biblioteca — mi acumulación pendiente, y lo que amé pero abandoné."
  • "¿Qué logros me faltan en Hollow Knight, y cuáles son mis más raros?"
  • "¿Qué hay en mi lista de deseos, y hay algo en oferta?"
  • "Según lo que más juego, ¿qué debería probar a continuación?"
  • "¿Qué hay en mi inventario de CS2, y qué artículos son comercializables?"

Independiente de la cuenta (funciona para cualquier juego, no se necesita SteamID):

  • "¿Vale la pena comprar Baldur's Gate 3 — y cómo van sus reseñas recientes?"
  • "¿Qué hay en oferta ahora mismo, y cuáles son los más vendidos actuales?"
  • "¿Cuántas personas están jugando Counter-Strike 2 en este minuto?"
  • "¿Funcionará Hades II en mi Steam Deck?"
  • "¿Cuál es el precio en el Community Market de un AK-47 | Redline con desgaste de campo?"
  • "¿Es Elden Ring un soulslike? ¿Cuáles son sus etiquetas de comunidad?"
  • "Encuentra roguelikes cooperativos bien reseñados por menos de $20."
  • "Recomienda juegos como Hollow Knight que no tenga ya."

Herramientas

HerramientaQué devuelve¿Necesita clave?
steam_resolve_vanity_urlNombre de vanidad / URL de perfil → SteamID64sí
steam_get_player_summaryEstado (En línea/Ausente/En juego…), juego actual, para 1–100 usuariossí
steam_get_friend_listAmigos enriquecidos con nombre + estado en vivosí
steam_find_friends_who_ownQué amigos tienen (o están jugando) un juego — "con quién puedo jugar a X"sí
steam_get_user_groupsLos grupos/clanes de Steam en los que está un usuario (nombre, URL, número de miembros)sí
steam_plan_coop_nightJuegos cooperativos que el anfitrión + amigos tienen en común (ordenados por propietarios) — o mode="new" para juegos cooperativos nuevos que ninguno tiene aún; con quién está en línea ahorasí
steam_get_owned_gamesJuegos poseídos con horas totales/recientes (ordenables)sí
steam_analyze_libraryAcumulación pendiente, distribución de horas de juego, juegos abandonados en toda una bibliotecasí
steam_get_recently_played_gamesHoras de juego de las últimas 2 semanassí
steam_get_steam_levelNivel de comunidad de Steamsí
steam_get_player_bansBaneos de VAC / juego / comunidad / economíasí
steam_get_player_achievementsLogros desbloqueados vs bloqueados por juegosí
steam_get_game_schemaDefiniciones de logros de un juego (nombres, descripciones, indicador de oculto)sí
steam_get_global_achievement_percentagesRareza de logros (porcentaje global)no
steam_get_user_game_statsEstadísticas dentro del juego de un usuario (bajas, victorias, distancia…) para un juegosí
steam_get_rarest_unlocksLos logros más raros desbloqueados por un jugador en un juego (por rareza global)sí
steam_search_appsTítulo del juego → appid (+ precio)no
steam_discoverEncontrar/recomendar juegos por etiqueta, precio, oferta, plataforma, ventana de lanzamiento ("últimos N días") — opcionalmente personalizado al gusto de un usuario (excluye juegos que ya tiene)no*
steam_should_i_buyInforme de compra — precio, reseñas de por vida + recientes (tendencia), etiquetas, Metacritic y coincidencia con tu gustono*
steam_recommendRecomendar juegos similares a un juego semilla o a tu gusto, con las etiquetas compartidas como el "porqué"no*
steam_get_app_detailsDetalles completos de la tienda — modos de juego/cooperativo, mando, DLC, idiomas, requisitos, Metacritic, Steam Deckno
steam_get_deck_compatibilityClasificación de Steam Deck (Verificado/Jugable/No compatible) + los resultados de prueba por criteriono
steam_get_dlcEl DLC de un juego, con precios en vivo y qué está en ofertano
steam_get_app_regional_pricingEl precio de un juego en varias regiones (cada una en moneda local)no
steam_get_workshop_itemMetadatos de un artículo del Workshop (juego, etiquetas, suscriptores, favoritos, visitas)no
steam_get_app_tagsLas principales etiquetas de comunidad de un juego (Souls-like, Roguelike, Acogedor…)no
steam_get_app_reviewsVeredicto de por vida, recuentos +/-, reseñas de muestra; puntuación opcional reciente (últimos N días) mediante review_filter='recent'no
steam_analyze_gameInforme de un solo paso sobre un juego: precio, reseñas de todo el tiempo y de 30 días, jugadores ahora, Deck, etiquetas, el efecto de la última actualización en las reseñas y noticiasno
steam_compare_gamesComparar 2-5 juegos lado a lado: precio, reseñas y su tendencia, jugadores ahora, Steam Deck, cooperativo, etiquetasno
steam_get_update_impact¿Cambió una actualización las reseñas? Puntuación de reseñas en los días antes vs después de cada parche recienteno
steam_analyze_app_reviewsAnalizar miles de reseñas: sentimiento a lo largo del tiempo, por idioma y horas de juego, Steam Deck, activaciones de clave vs compras en Steam, reembolsos, respuestas del desarrolladorno
steam_get_featured_specialsJuegos actualmente en oferta (regional)no
steam_get_store_highlightsMás vendidos, nuevos lanzamientos o próximamenteno
steam_get_wishlistLa lista de deseos de un usuario, con precios en vivo + qué está en ofertasí
steam_get_inventoryEl inventario de un usuario — artículos de juegos o artículos de la comunidad de Steam (cartas, emoticonos…), con indicadores de intercambiable/comercializablesí†
steam_get_market_pricePrecio del Community Market para un artículo (mínimo/mediana/volumen 24h) + tipo/rareza + condición de CS2no
steam_get_player_badgesInsignias + el desglose de XP detrás de un nivel de Steamsí
steam_get_package_detailsPrecio de paquete/lote + juegos incluidosno
steam_compare_playersJuegos compartidos entre dos usuarios, con horas de juegosí
steam_get_current_playersRecuento de jugadores concurrentes en vivono
steam_get_app_newsNoticias recientes / notas de parcheno

Toda herramienta admite response_format: "markdown" (por defecto) o "json", y todas están anotadas como readOnlyHint: true. Prefiere las herramientas compuestas (steam_should_i_buy, steam_recommend, steam_discover, steam_plan_coop_night) en lugar de encadenar varias llamadas, y pide json solo cuando necesites analizar campos. Las herramientas que leen texto localizado aceptan un parámetro language — un nombre de idioma de Steam como french o schinese (por defecto english).

* steam_discover, steam_should_i_buy y steam_recommend no necesitan clave para los datos de la tienda; su personalización (pasar un steamid para usar la biblioteca/ gusto de un usuario) requiere una clave y un perfil público.

† steam_get_inventory lee un endpoint sin clave, pero aún tiene que saber de quién es el inventario — y convertir un nombre de vanidad (o STEAM_USER) en un SteamID64 es en sí una llamada con clave. Pasa un SteamID64 crudo de 17 dígitos y funciona sin clave.

Prompts y recursos

Además de las herramientas, el servidor incluye prompts (flujos guiados de un clic que orquestan las herramientas) y recursos (entidades de Steam de referencia por URI):

  • Prompts: what_should_i_play, is_it_worth_buying, plan_game_night, steam_deals, game_overview.
  • Recursos: steam://app/{appid} (detalles de la tienda) y steam://user/{steamid} (perfil + estado en vivo).

Reseñas recientes: steam_get_app_reviews con review_filter='recent' le pide a Steam el recuento exacto de reseñas y la puntuación de los últimos day_range días (por defecto 30), los mismos números que la fila "Reseñas recientes" de la página de la tienda. Si Steam rechaza esa solicitud, recurre a contar las reseñas más nuevas, hasta recent_max_reviews, y marca el resultado como sampled: true.

De quién cuentan las reseñas: por defecto ambas puntuaciones cuentan lo que cuenta la página de la tienda: solo compras en Steam para un juego de pago (las activaciones de clave se excluyen) y todos para un juego gratuito. purchase_type='all' o 'steam' fuerza cualquiera de los dos.

Precios del mercado: steam_get_market_price usa los endpoints del Community Market de Steam, que no están documentados y tienen límites de velocidad estrictos. Los resultados se almacenan en caché brevemente; un artículo sin listados actuales informa su precio como no disponible.


Configuración

1. Obtén una clave gratuita de Steam Web API (opcional)

Omite esto si solo quieres las 19 herramientas sin clave — el servidor funciona bien sin clave y las herramientas de cuenta simplemente se anuncian como no disponibles.

Para desbloquear las herramientas de cuenta, visita https://steamcommunity.com/dev/apikey, inicia sesión, registra un dominio (cualquier dominio que controles sirve; localhost se usa comúnmente para claves personales) y copia la clave. El uso se rige por los Términos de uso de Steam Web API.

2. Instalación

El paquete publicado no necesita clonar el repositorio (Python 3.10+):

uvx steam-mcp          # zero-install via uv (recommended)
# or
pip install steam-mcp  # run as: python -m steam_mcp.server

Ambas versiones principales del SDK de MCP Python funcionan (mcp>=1.28). En el SDK v2, el servidor habla la revisión de especificación 2026-07-28 — sin estado, sin protocolo de apretón de manos initialize — anuncia sugerencias de caché en sus listados de herramientas/prompts/recursos, y puede preguntarte qué cuenta de Steam es tuya cuando STEAM_USER no está establecido (una vez por sesión, y solo si tu cliente admite la elicitación). En la línea v1.x sirve el apretón de manos initialize al que los clientes modernos recurren de todos modos. No hay nada que configurar en ningún caso.

Nota sobre TLS: el cliente HTTP es httpx2, que verifica certificados contra el almacén de confianza de tu sistema operativo en lugar de una lista de CA incluida. Si ejecutas esto en algún lugar mínimo (un contenedor ligero sin almacén de CA del sistema, o detrás de una CA privada), apunta SSL_CERT_FILE o SSL_CERT_DIR a un paquete de CA.

3. Añádelo a tu cliente MCP

Ambos ajustes son opcionales. STEAM_API_KEY desbloquea las herramientas de cuenta; STEAM_USER (tu nombre de vanidad de Steam, SteamID64 o URL de perfil) hace que esas herramientas se refieran por defecto a ti siempre que no nombres a un usuario, para que nunca pegues un SteamID. Es un nombre de perfil público, no un secreto, y aún puedes pasar un steamid a cualquier llamada para anularlo.

Configura ninguno y obtienes el servidor sin clave; configura ambos y lo obtienes todo. Conjunto de herramientas más reducido (opcional). La definición de cada herramienta se incluye en el contexto del modelo en cada solicitud, aproximadamente 11.5k tokens para las 41. Establece STEAM_MCP_TOOLS=essentials para cargar solo 15: búsqueda, el resumen del juego en una llamada, detalles, reseñas, comparar, ¿debería-comprarlo?, descubrir, recomendar, impacto de actualizaciones, ventas, y tu perfil, biblioteca, análisis de biblioteca, lista de deseos y noche de cooperativo. Añade otras por nombre (essentials,get_inventory), o lista exactamente las que quieras. El valor predeterminado es all. Los prompts integrados pueden mencionar una herramienta que tu conjunto omita.

Claude Code

claude mcp add steam --env STEAM_API_KEY=YOUR_KEY --env STEAM_USER=your_steam_name -- uvx steam-mcp

STEAM_USER es opcional — elimina el segundo --env si prefieres proporcionar un SteamID en cada llamada.

Claude Desktop — instala steam-mcp.mcpb desde la última versión mediante Configuración → Extensiones y pega tu clave (y, opcionalmente, tu nombre de Steam).

Cualquier otra cosa (configuración de Claude Desktop, Cursor, Cline, Windsurf, VS Code, …) — coloca este bloque en el archivo de configuración MCP del cliente:

{
  "mcpServers": {
    "steam": {
      "command": "uvx",
      "args": ["steam-mcp"],
      "env": {
        "STEAM_API_KEY": "YOUR_KEY_HERE",
        "STEAM_USER": "your_steam_name"
      }
    }
  }
}

¿Instalando con un agente de IA como Cline? Apúntalo a llms-install.md, que lo guía a través de la configuración.

Ubicaciones de configuración: Claude Desktop claude_desktop_config.json (%APPDATA%\Claude\ en Windows, ~/Library/Application Support/Claude/ en macOS); Cursor .cursor/mcp.json; Cline cline_mcp_settings.json. Reinicia el cliente y las herramientas de Steam aparecen. ¿Ejecutando desde un checkout del código fuente? Usa "command": "python", "args": ["-m", "steam_mcp.server"].


Seguridad

Solo lectura, solo Steam oficial, y trae tu propia clave. En resumen:

  • Solo lectura — nunca escribe, intercambia, publica, inicia juegos ni compra nada.
  • Tu clave sigue siendo tuya — se lee desde STEAM_API_KEY; nunca se escribe en disco, se registra, se almacena en caché ni se incluye en la salida (y se redacta de los mensajes de error).
  • Solo hosts oficiales — la capa de solicitudes rechaza cualquier host que no sea api.steampowered.com / store.steampowered.com / steamcommunity.com (protección SSRF), con límite de velocidad por host y reintentos/retroceso.
  • Entradas tipadas y validadas (extra="forbid"); no se conservan datos entre solicitudes más allá de una pequeña caché TTL de datos de tienda no relacionados con el usuario.

Los detalles completos y cómo informar problemas están en SECURITY.md.


Versionado y estabilidad

steam-mcp sigue Versionado Semántico. A partir de 1.0, lo siguiente es la superficie pública estable — no cambiará sin una versión principal (2.0):

  • Nombres de herramientas y sus parámetros de entrada (nombres, tipos, si son obligatorios, valores predeterminados)
  • Campos de salida JSON (response_format: "json") — nombres, tipos y estructura
  • Prompts nombres/argumentos y plantillas de URI de recursos (steam://app/{appid}, steam://user/{steamid})
  • Semántica central: solo lectura, trae tu propia clave, precios en céntimos / tiempo de juego en minutos, y errores devueltos como cadenas

Dentro de una versión principal, las versiones menores pueden añadir herramientas, prompts, recursos, parámetros opcionales y campos JSON; las versiones de parche son solo correcciones de errores. La redacción de la salida en Markdown, la implementación interna, el comportamiento de caché y qué endpoints de Steam respaldan una herramienta determinada pueden cambiar en cualquier momento y no forman parte del contrato.


Licencia

MIT. No afiliado a Valve. "Steam" es una marca comercial de Valve Corporation.