Steam MCP (read-only)

Steam somente leitura: loja, análises, promoções, preços, contagem de jogadores e compatibilidade com Steam Deck sem chave de API, além de biblioteca, tempo de jogo, amigos, conquistas, lista de desejos e planejamento de noite de cooperação com uma chave gratuita da Steam Web API.

Documentação

Steam MCP

PyPI Python CI License: MIT MCP Registry

Um servidor Model Context Protocol somente leitura para a API pública Steam Web e loja — 41 ferramentas, 5 prompts e 2 recursos que permitem que qualquer cliente MCP (Claude Desktop, Claude Code, Cursor, …) responda perguntas sobre Steam: seus amigos, jogos, tempo de jogo e conquistas, além de coisas independentes de conta como promoções, avaliações, contagem de jogadores ao vivo, compatibilidade com Steam Deck, descoberta, recomendações e planejamento de coop.

Somente leitura · apenas APIs oficiais da Steam · código aberto. Ninguém faz login, e o servidor nunca escreve, negocia, publica, inicia jogos ou faz compras.

Início rápido — sem necessidade de chave de API

Instale o uv e depois:

Claude Code

claude mcp add steam -- uvx steam-mcp

Essa é toda a configuração. 19 das 41 ferramentas funcionam sem nenhuma credencial — qualquer coisa sobre a loja ou um jogo em si:

"Vale a pena comprar Baldur's Gate 3, e como estão as avaliações recentes?" "Quais jogos cooperativos estão em promoção por menos de £20 agora?" "Quantas pessoas estão jogando Helldivers 2 neste minuto?" "Hades II vai rodar bem no meu Steam Deck?"

Os três localizadores de jogos (steam_discover, steam_should_i_buy, steam_recommend) funcionam sem chave também, desde que você não os personalize.

Adicionando sua própria conta

Uma chave gratuita da Steam Web API (leva um minuto para obter) desbloqueia as outras 22 — aquelas que leem uma conta específica: biblioteca, tempo de jogo, amigos, conquistas, lista de desejos, inventário. Adicione também o STEAM_USER e "meu"/"eu" passam a se referir a você, para que nunca precise colar uma SteamID:

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

Dica: isso usa como padrão o projeto atual. Adicione --scope user somente se quiser Steam em todos os projetos — isso mantém suas ferramentas em contexto em todos os lugares, então prefira o escopo por projeto, a menos que Steam seja algo transversal para você.

Claude Desktop — baixe o steam-mcp.mcpb do último lançamento e abra-o (Configurações → Extensões). Ambos os campos são opcionais; deixe-os em branco para as ferramentas sem chave e preencha-os depois.

Cursor / Cline / Windsurf e a configuração manual do pip estão em Configuração abaixo.

Sem uma chave, as ferramentas de conta ainda são listadas, mas marcadas como [unavailable: needs STEAM_API_KEY], para que seu assistente saiba usar uma ferramenta sem chave em vez de falhar em uma que não pode usar.


O que ele pode responder

Conta / perfil (precisa de um perfil público; defina STEAM_USER e "meu"/"eu" passam a se referir a você — sem necessidade de SteamID):

  • "Quem está na minha lista de amigos e quem está online agora?"
  • "Qual dos meus amigos tem Helldivers 2 — e quem está jogando agora?"
  • "É noite de jogo — quais jogos cooperativos meus amigos online e eu temos?"
  • "Analise minha biblioteca — meu backlog e o que eu amei, mas abandonei."
  • "Quais conquistas estou perdendo em Hollow Knight, e quais são as minhas mais raras?"
  • "O que está na minha lista de desejos, e algo está em promoção?"
  • "Com base no que jogo mais, o que devo conferir a seguir?"
  • "O que está no meu inventário do CS2, e quais itens são comercializáveis?"

Independente de conta (funciona para qualquer jogo, sem necessidade de SteamID):

  • "Baldur's Gate 3 vale a pena comprar — e como estão as avaliações recentes?"
  • "O que está em promoção agora, e quais são os mais vendidos atualmente?"
  • "Quantas pessoas estão jogando Counter-Strike 2 neste minuto?"
  • "Hades II vai rodar no meu Steam Deck?"
  • "Qual é o preço no Community Market de uma AK-47 | Redline Field-Tested?"
  • "Elden Ring é um soulslike? Quais são as tags da comunidade?"
  • "Encontre roguelikes cooperativos bem avaliados por menos de $20."
  • "Recomende jogos como Hollow Knight que eu ainda não tenho."

Ferramentas

FerramentaO que retornaPrecisa de chave?
steam_resolve_vanity_urlNome de vaidade / URL do perfil → SteamID64sim
steam_get_player_summaryStatus (Online/Ausente/Em jogo…), jogo atual, para 1–100 usuáriossim
steam_get_friend_listAmigos enriquecidos com nome + status ao vivosim
steam_find_friends_who_ownQuais amigos têm (ou estão jogando) um jogo — "com quem posso jogar X"sim
steam_get_user_groupsOs grupos/clãs da Steam em que um usuário está (nome, URL, número de membros)sim
steam_plan_coop_nightJogos cooperativos que o anfitrião + amigos têm (classificados por proprietários) — ou mode="new" para jogos cooperativos novos que nenhum deles tem; com quem está online agorasim
steam_get_owned_gamesJogos possuídos com horas totais/recentes (ordenáveis)sim
steam_analyze_libraryBacklog, distribuição de tempo de jogo, jogos abandonados em toda uma bibliotecasim
steam_get_recently_played_gamesTempo de jogo das últimas 2 semanassim
steam_get_steam_levelNível da comunidade Steamsim
steam_get_player_bansBanimentos VAC / jogo / comunidade / economiasim
steam_get_player_achievementsConquistas desbloqueadas vs bloqueadas por jogosim
steam_get_game_schemaDefinições de conquistas de um jogo (nomes, descrições, sinalizador oculto)sim
steam_get_global_achievement_percentagesRaridade de conquistas (% global)não
steam_get_user_game_statsEstatísticas no jogo de um usuário (mortes, vitórias, distância…) para um jogosim
steam_get_rarest_unlocksDesbloqueios de conquistas mais raras de um jogador em um jogo (por raridade global)sim
steam_search_appsTítulo do jogo → appid (+ preço)não
steam_discoverEncontrar/recomendar jogos por tag, preço, promoção, plataforma, janela de lançamento ("últimos N dias") — opcionalmente personalizado ao gosto de um usuário (exclui jogos que ele tem)não*
steam_should_i_buyResumo de compra — preço, avaliações vitalícias + recentes (tendência), tags, Metacritic e compatibilidade com seu gostonão*
steam_recommendRecomendar jogos como um jogo-semente ou seu gosto, com as tags compartilhadas como o "porquê"não*
steam_get_app_detailsDetalhes completos da loja — modos de jogo/coop, controle, DLC, idiomas, requisitos, Metacritic, Steam Decknão
steam_get_deck_compatibilityClassificação Steam Deck (Verificado/Jogável/Não suportado) + os resultados dos testes por critérionão
steam_get_dlcDLC de um jogo, com preços ao vivo e o que está em promoçãonão
steam_get_app_regional_pricingPreço de um jogo entre regiões (cada uma na moeda local)não
steam_get_workshop_itemMetadados de item do Workshop (jogo, tags, inscritos, favoritos, visualizações)não
steam_get_app_tagsPrincipais tags da comunidade de um jogo (Souls-like, Roguelike, Aconchegante…)não
steam_get_app_reviewsVeredito vitalício, contagens +/-, avaliações de exemplo; opcional pontuação recente (últimos N dias) via review_filter='recent'não
steam_analyze_gameResumo em uma chamada sobre um jogo: preço, avaliações de todos os tempos e 30 dias, jogadores agora, Deck, tags, efeito da última atualização nas avaliações e notíciasnão
steam_compare_gamesComparar 2-5 jogos lado a lado: preço, avaliações e sua tendência, jogadores agora, Steam Deck, coop, tagsnão
steam_get_update_impactUma atualização mudou as avaliações? Pontuação de avaliações nos dias antes vs depois de cada patch recentenão
steam_analyze_app_reviewsAnalisar milhares de avaliações: sentimento ao longo do tempo, por idioma e tempo de jogo, Steam Deck, ativações de chave vs compras na Steam, reembolsos, respostas de desenvolvedoresnão
steam_get_featured_specialsJogos atualmente em promoção (regional)não
steam_get_store_highlightsMais vendidos, novos lançamentos ou em brevenão
steam_get_wishlistLista de desejos de um usuário, com preços ao vivo + o que está em promoçãosim
steam_get_inventoryInventário de um usuário — itens de jogos ou itens da Comunidade Steam (cartas, emoticons…), com sinalizadores de negociável/comercializávelsim†
steam_get_market_pricePreço no Community Market de um item (menor/mediana/volume 24h) + tipo/raridade + condição CS2não
steam_get_player_badgesEmblemas + a divisão de XP por trás de um nível Steamsim
steam_get_package_detailsPreço de pacote/coleção + jogos incluídosnão
steam_compare_playersJogos compartilhados entre dois usuários, com tempo de jogosim
steam_get_current_playersContagem de jogadores simultâneos ao vivonão
steam_get_app_newsNotícias recentes / notas de patchnão

Toda ferramenta suporta response_format: "markdown" (padrão) ou "json", e todas são anotadas com readOnlyHint: true. Prefira as ferramentas compostas (steam_should_i_buy, steam_recommend, steam_discover, steam_plan_coop_night) em vez de encadear várias chamadas, e peça json somente quando precisar analisar campos. Ferramentas que leem texto localizado aceitam um parâmetro language — um nome de idioma da Steam como french ou schinese (padrão english).

* steam_discover, steam_should_i_buy e steam_recommend não precisam de chave para os dados da loja; sua personalização (passar um steamid para usar a biblioteca/ gosto de um usuário) exige uma chave e um perfil público.

† steam_get_inventory lê um endpoint sem chave, mas ainda precisa saber de quem é o inventário — e transformar um nome de vaidade (ou STEAM_USER) em uma SteamID64 é em si uma chamada com chave. Passe uma SteamID64 bruta de 17 dígitos e ele funciona sem chave.

Prompts e recursos

Além das ferramentas, o servidor inclui prompts (fluxos guiados de um clique que orquestram as ferramentas) e recursos (entidades de referência da Steam por URI):

  • Prompts: what_should_i_play, is_it_worth_buying, plan_game_night, steam_deals, game_overview.
  • Recursos: steam://app/{appid} (detalhes da loja) e steam://user/{steamid} (perfil + status ao vivo).

Avaliações recentes: steam_get_app_reviews com review_filter='recent' pede à Steam a contagem exata de avaliações e a pontuação dos últimos day_range dias (padrão 30), os mesmos números da linha "Avaliações recentes" da página da loja. Se a Steam recusar essa solicitação, ele volta a contar as avaliações mais novas, até recent_max_reviews, e marca o resultado como sampled: true.

De quem são as avaliações que contam: por padrão, ambas as pontuações contam o que a página da loja conta: apenas compras na Steam para um jogo pago (ativações de chave são deixadas de fora) e todos para um jogo gratuito. purchase_type='all' ou 'steam' força qualquer um dos dois.

Preços de mercado: steam_get_market_price usa os endpoints do Community Market da Steam, que não são documentados e têm limite de taxa rigoroso. Os resultados são armazenados em cache brevemente; um item sem listagens atuais relata seu preço como indisponível.


Configuração

1. Obtenha uma chave gratuita da Steam Web API (opcional)

Pule esta etapa se quiser apenas as 19 ferramentas sem chave — o servidor funciona bem sem uma chave, e as ferramentas de conta simplesmente se anunciam como indisponíveis.

Para desbloquear as ferramentas de conta, visite https://steamcommunity.com/dev/apikey, faça login, registre um domínio (qualquer domínio que você controle funciona; localhost é comumente usado para chaves pessoais) e copie a chave. O uso é regido pelos Termos de Uso da Steam Web API.

2. Instalação

O pacote publicado não precisa de checkout (Python 3.10+):

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

Ambas as versões principais do SDK Python MCP funcionam (mcp>=1.28). No SDK v2, o servidor fala a revisão de especificação 2026-07-28 — sem estado, sem handshake initialize — anuncia dicas de cache em suas listagens de ferramentas/prompts/recursos e pode perguntar qual conta Steam é sua quando STEAM_USER não está definido (uma vez por sessão, e somente se seu cliente suportar elicitação). Na linha v1.x, ele atende ao handshake initialize ao qual clientes modernos recorrem de qualquer forma. Nada para configurar de qualquer maneira.

Nota sobre TLS: o cliente HTTP é httpx2, que verifica certificados contra o armazenamento de confiança do seu sistema operacional em vez de uma lista de CAs empacotada. Se você executar isso em algum lugar mínimo (um contêiner enxuto sem armazenamento de CA do sistema, ou atrás de uma CA privada), aponte SSL_CERT_FILE ou SSL_CERT_DIR para um pacote de CAs.

3. Adicione ao seu cliente MCP

Ambas as configurações são opcionais. STEAM_API_KEY desbloqueia as ferramentas de conta; STEAM_USER (seu nome de vaidade Steam, SteamID64 ou URL de perfil) faz essas ferramentas usarem você como padrão sempre que você não nomear um usuário, para que nunca cole uma SteamID. É um nome de perfil público, não um segredo, e você ainda pode passar um steamid para qualquer chamada para substituí-lo.

Configure nenhum e você obtém o servidor sem chave; configure ambos e você obtém tudo. Conjunto de ferramentas menor (opcional). A definição de cada ferramenta vai para o contexto do modelo em cada requisição, cerca de 11,5 mil tokens para todas as 41. Defina STEAM_MCP_TOOLS=essentials para carregar apenas 15: busca, o resumo do jogo em uma chamada, detalhes, análises, comparar, devo-comprar, descobrir, recomendar, impacto de atualização, vendas e seu perfil, biblioteca, análise da biblioteca, lista de desejos e noite de coop. Adicione outras pelo nome (essentials,get_inventory) ou liste exatamente as que você quer. O padrão é all. Os prompts integrados podem mencionar uma ferramenta que seu conjunto deixou de fora.

Claude Code

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

STEAM_USER é opcional — remova o segundo --env se preferir fornecer um SteamID a cada chamada.

Claude Desktop — instale steam-mcp.mcpb da versão mais recente via Configurações → Extensões e cole sua chave (e, opcionalmente, seu nome Steam).

Todo o resto (config do Claude Desktop, Cursor, Cline, Windsurf, VS Code, …) — adicione este bloco ao arquivo de configuração MCP do cliente:

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

Instalando com um agente de IA como o Cline? Aponte-o para llms-install.md, que o guia pela configuração.

Locais de configuração: Claude Desktop claude_desktop_config.json (%APPDATA%\Claude\ no Windows, ~/Library/Application Support/Claude/ no macOS); Cursor .cursor/mcp.json; Cline cline_mcp_settings.json. Reinicie o cliente e as ferramentas Steam aparecem. Executando a partir de um checkout do código-fonte? Use "command": "python", "args": ["-m", "steam_mcp.server"].


Segurança

Somente leitura, apenas Steam oficial e traga sua própria chave. Em resumo:

  • Somente leitura — nunca grava, negocia, publica, inicia jogos ou compra nada.
  • Sua chave continua sua — lida de STEAM_API_KEY; nunca gravada em disco, registrada, armazenada em cache ou incluída na saída (e ocultada em mensagens de erro).
  • Apenas hosts oficiais — a camada de requisição recusa qualquer host que não seja api.steampowered.com / store.steampowered.com / steamcommunity.com (proteção SSRF), com limite de taxa por host e nova tentativa/backoff.
  • Entradas tipadas e validadas (extra="forbid"); nenhum dado é mantido entre requisições além de um pequeno cache TTL de dados de loja não relacionados ao usuário.

Detalhes completos e como relatar problemas estão em SECURITY.md.


Versionamento e estabilidade

steam-mcp segue Versionamento Semântico. A partir da 1.0, o seguinte é a superfície pública estável — não mudará sem um lançamento de versão principal (2.0):

  • Nomes das ferramentas e seus parâmetros de entrada (nomes, tipos, se obrigatórios, padrões)
  • Campos de saída JSON (response_format: "json") — nomes, tipos e estrutura
  • Nomes/argumentos dos prompts e modelos de URI de recursos (steam://app/{appid}, steam://user/{steamid})
  • Semântica central: somente leitura, traga sua própria chave, preços em centavos / tempo de jogo em minutos e erros retornados como strings

Dentro de uma versão principal, lançamentos menores podem adicionar ferramentas, prompts, recursos, parâmetros opcionais e campos JSON; lançamentos de correção são apenas correções de bugs. A redação da saída em Markdown, a implementação interna, o comportamento de cache e quais endpoints Steam dão suporte a uma determinada ferramenta podem mudar a qualquer momento e não fazem parte do contrato.


Licença

MIT. Não afiliado à Valve. "Steam" é uma marca registrada da Valve Corporation.