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
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 usersomente 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
| Ferramenta | O que retorna | Precisa de chave? |
|---|---|---|
steam_resolve_vanity_url | Nome de vaidade / URL do perfil → SteamID64 | sim |
steam_get_player_summary | Status (Online/Ausente/Em jogo…), jogo atual, para 1–100 usuários | sim |
steam_get_friend_list | Amigos enriquecidos com nome + status ao vivo | sim |
steam_find_friends_who_own | Quais amigos têm (ou estão jogando) um jogo — "com quem posso jogar X" | sim |
steam_get_user_groups | Os grupos/clãs da Steam em que um usuário está (nome, URL, número de membros) | sim |
steam_plan_coop_night | Jogos 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 agora | sim |
steam_get_owned_games | Jogos possuídos com horas totais/recentes (ordenáveis) | sim |
steam_analyze_library | Backlog, distribuição de tempo de jogo, jogos abandonados em toda uma biblioteca | sim |
steam_get_recently_played_games | Tempo de jogo das últimas 2 semanas | sim |
steam_get_steam_level | Nível da comunidade Steam | sim |
steam_get_player_bans | Banimentos VAC / jogo / comunidade / economia | sim |
steam_get_player_achievements | Conquistas desbloqueadas vs bloqueadas por jogo | sim |
steam_get_game_schema | Definições de conquistas de um jogo (nomes, descrições, sinalizador oculto) | sim |
steam_get_global_achievement_percentages | Raridade de conquistas (% global) | não |
steam_get_user_game_stats | Estatísticas no jogo de um usuário (mortes, vitórias, distância…) para um jogo | sim |
steam_get_rarest_unlocks | Desbloqueios de conquistas mais raras de um jogador em um jogo (por raridade global) | sim |
steam_search_apps | Título do jogo → appid (+ preço) | não |
steam_discover | Encontrar/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_buy | Resumo de compra — preço, avaliações vitalícias + recentes (tendência), tags, Metacritic e compatibilidade com seu gosto | não* |
steam_recommend | Recomendar jogos como um jogo-semente ou seu gosto, com as tags compartilhadas como o "porquê" | não* |
steam_get_app_details | Detalhes completos da loja — modos de jogo/coop, controle, DLC, idiomas, requisitos, Metacritic, Steam Deck | não |
steam_get_deck_compatibility | Classificação Steam Deck (Verificado/Jogável/Não suportado) + os resultados dos testes por critério | não |
steam_get_dlc | DLC de um jogo, com preços ao vivo e o que está em promoção | não |
steam_get_app_regional_pricing | Preço de um jogo entre regiões (cada uma na moeda local) | não |
steam_get_workshop_item | Metadados de item do Workshop (jogo, tags, inscritos, favoritos, visualizações) | não |
steam_get_app_tags | Principais tags da comunidade de um jogo (Souls-like, Roguelike, Aconchegante…) | não |
steam_get_app_reviews | Veredito vitalício, contagens +/-, avaliações de exemplo; opcional pontuação recente (últimos N dias) via review_filter='recent' | não |
steam_analyze_game | Resumo 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ícias | não |
steam_compare_games | Comparar 2-5 jogos lado a lado: preço, avaliações e sua tendência, jogadores agora, Steam Deck, coop, tags | não |
steam_get_update_impact | Uma atualização mudou as avaliações? Pontuação de avaliações nos dias antes vs depois de cada patch recente | não |
steam_analyze_app_reviews | Analisar 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 desenvolvedores | não |
steam_get_featured_specials | Jogos atualmente em promoção (regional) | não |
steam_get_store_highlights | Mais vendidos, novos lançamentos ou em breve | não |
steam_get_wishlist | Lista de desejos de um usuário, com preços ao vivo + o que está em promoção | sim |
steam_get_inventory | Inventário de um usuário — itens de jogos ou itens da Comunidade Steam (cartas, emoticons…), com sinalizadores de negociável/comercializável | sim† |
steam_get_market_price | Preço no Community Market de um item (menor/mediana/volume 24h) + tipo/raridade + condição CS2 | não |
steam_get_player_badges | Emblemas + a divisão de XP por trás de um nível Steam | sim |
steam_get_package_details | Preço de pacote/coleção + jogos incluídos | não |
steam_compare_players | Jogos compartilhados entre dois usuários, com tempo de jogo | sim |
steam_get_current_players | Contagem de jogadores simultâneos ao vivo | não |
steam_get_app_news | Notícias recentes / notas de patch | nã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_buyesteam_recommendnão precisam de chave para os dados da loja; sua personalização (passar umsteamidpara usar a biblioteca/ gosto de um usuário) exige uma chave e um perfil público.†
steam_get_inventorylê um endpoint sem chave, mas ainda precisa saber de quem é o inventário — e transformar um nome de vaidade (ouSTEAM_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) esteam://user/{steamid}(perfil + status ao vivo).
Avaliações recentes:
steam_get_app_reviewscomreview_filter='recent'pede à Steam a contagem exata de avaliações e a pontuação dos últimosday_rangedias (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 comosampled: 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_priceusa 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), aponteSSL_CERT_FILEouSSL_CERT_DIRpara 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--envse 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.