Skip to main content
Glama

mcp-ps-store

Servidor MCP que expone el historial de juegos de una cuenta de PlayStation Network — tiempo de juego, progreso de trofeos, biblioteca comprada — para que un asistente de IA pueda recomendar juegos a partir de datos reales en lugar de suposiciones.

Versión en ruso: README.ru.md.

Acerca de

PSN no tiene una API pública. Este servidor se comunica con la misma API interna que utiliza la aplicación móvil de PlayStation, autenticándose con una cookie NPSSO obtenida de una sesión del navegador. Cada solicitud es de solo lectura; nunca se escribe nada en la cuenta.

La estructura sigue una arquitectura en capas: una capa de API (herramientas MCP), una capa central (servicios, repositorios, DTOs), un contenedor DI y una capa de infraestructura.

Tecnologías principales

  • Lenguaje: Python 3.11+

  • Protocolo: Model Context Protocol (mcp)

  • Cliente HTTP: httpx (asíncrono)

  • Contenedor DI: dependency-injector

  • Configuración: pydantic-settings

  • Gestión de dependencias: Poetry

  • Pruebas: Pytest, pytest-asyncio

Related MCP server: PersonalizationMCP

Lo que expone

Herramienta

Para qué sirve

psn_taste_profile

La principal: un resumen único — juegos principales por horas, franquicias favoritas, hábitos de juego (sesión media, porcentaje de inmersiones profundas, tasa de platinos), juegos cerca del 100%, juegos abandonados tras una hora y compras nunca iniciadas. Empiece aquí para cualquier pregunta de recomendación.

psn_library

Lista de juegos filtrable: búsqueda por título, ordenar por horas / última partida / progreso de trofeos, filtrar por plataforma, horas, fechas y progreso.

psn_game_trophies

Cada trofeo de un juego: conseguido o no, fecha, rareza, porcentaje de jugadores que lo tienen.

psn_owned_games

Lo que ya se ha comprado o reclamado mediante PS Plus, con horas cuando se conocen — para que no se recomiende nada ya poseído.

psn_recently_played

Lo que se ha iniciado más recientemente.

psn_profile

ID en línea, PS Plus, nivel de trofeos, total de trofeos de por vida.

psn_refresh

Elimina la caché de respuestas (las respuestas de PSN se almacenan en caché durante 10 minutos).

Además, un prompt recommend_games — un escenario listo para usar de "crear mi perfil y recomendar juegos" que acepta una orientación opcional como "algo corto" o "cooperativo para dos".

Inicio rápido

Se requiere Python 3.11+.

1. Instalar

Con Poetry:

poetry install

O con un virtualenv simple:

python3.11 -m venv .venv && .venv/bin/pip install -e .

2. Iniciar sesión en PSN

  1. Inicie sesión en https://www.playstation.com en un navegador.

  2. Abra https://ca.account.sony.com/api/v1/ssocookie — devuelve {"npsso":"..."}.

  3. Copie el valor npsso de 64 caracteres y ejecute:

poetry run psn-login PASTE_NPSSO_HERE

Los tokens se guardan en ~/.mcp-ps-store/tokens.json con permisos 0600.

Acerca de la duración de la sesión. El token de acceso dura una hora y el token de actualización solo diez días, pero el NPSSO en sí dura unos dos meses. Por lo tanto, el NPSSO se almacena junto a los tokens, y el servidor se reautentica automáticamente cuando el token de actualización expira. En la práctica, un psn-login dura unos 60 días.

3. Verificar que funciona

poetry run psn-doctor

Muestra el nombre de la cuenta, cuántos juegos son visibles y los cinco primeros por horas.

Conectar un cliente

Claude Code

claude mcp add ps-store -- /path/to/mcp-ps-store/.venv/bin/python -m app.main

Claude Desktop

En claude_desktop_config.json:

{
  "mcpServers": {
    "ps-store": {
      "command": "/path/to/mcp-ps-store/.venv/bin/python",
      "args": ["-m", "app.main"],
      "cwd": "/path/to/mcp-ps-store"
    }
  }
}

Codex CLI

Codex habla mediante stdio con servidores MCP locales, por lo que funciona de la misma manera. Ejecute codex mcp add o añada esto a ~/.codex/config.toml:

[mcp_servers.ps-store]
command = "/path/to/mcp-ps-store/.venv/bin/python"
args = ["-m", "app.main"]
cwd = "/path/to/mcp-ps-store"

Compruébelo con /mcp dentro de una sesión de Codex.

ChatGPT

ChatGPT no puede iniciar un proceso local. Los conectores personalizados se añaden en el modo Desarrollador (Ajustes → Apps → Avanzado) y deben ser un punto final HTTPS público que hable SSE o Streamable HTTP. Por lo tanto, el servidor debe cambiarse a transporte HTTP y publicarse:

PSN_MCP_TRANSPORT=streamable-http PSN_MCP_PORT=8000 poetry run mcp-ps-store

Luego exponga http://127.0.0.1:8000/mcp a través de HTTPS — con el túnel MCP seguro de OpenAI, o un túnel como cloudflared / ngrok — y añada la URL resultante como conector personalizado.

Esto publica su historial de PSN para cualquiera que encuentre la URL. El servidor no tiene autenticación propia, así que ponga el túnel detrás de autenticación, manténgalo funcionando solo mientras lo necesite y prefiera Codex CLI si un cliente local es suficiente.

Configuración

Toda la configuración se lee del entorno o de un archivo .env (consulte .env.example).

Variable

Valor por defecto

Significado

PSN_NPSSO

Cookie NPSSO. Una alternativa a psn-login: si se establece, el servidor inicia sesión por sí mismo.

PSN_TOKENS_PATH

~/.mcp-ps-store/tokens.json

Ruta donde se almacenan en caché los tokens.

PSN_CACHE_TTL

600

Tiempo durante el cual se reutilizan las respuestas de PSN, en segundos.

PSN_STORE_LOCALE

en-us

Configuración regional utilizada en los enlaces de store.playstation.com.

PSN_REQUEST_TIMEOUT

30

Tiempo de espera HTTP para las solicitudes a PSN, en segundos.

PSN_MCP_TRANSPORT

stdio

stdio, streamable-http o sse.

PSN_MCP_HOST

127.0.0.1

Dirección de enlace para los transportes HTTP.

PSN_MCP_PORT

8000

Puerto para los transportes HTTP.

Limitaciones

  • El tiempo de juego solo existe para versiones de PS4 / PS5 / PC. PSN informa de juegos de PS3 y Vita solo con trofeos, por lo que aparecen con hours: null.

  • Aquí no hay catálogo de PS Store. La tienda es completamente del lado del cliente, y su API GraphQL solo acepta consultas persistentes cuyos hash Sony rota en cada despliegue — mantener eso funcionando no es realista. Los candidatos a recomendación provienen del conocimiento propio del modelo sobre juegos, mientras que psn_owned_games evita que sugiera algo ya comprado.

  • La biblioteca comprada pasa por la API GraphQL privada de PSN. Si Sony cambia la consulta, esa herramienta deja de funcionar; todo lo demás sigue funcionando y el resumen obtiene una nota backlog_unavailable.

  • El tiempo de juego y los trofeos se unen por título, por lo que un relanzamiento puede fusionarse con el original cuando comparten un conjunto de trofeos. Las ediciones, los sufijos de plataforma y los números romanos se normalizan a propósito — Alan Wake II y Alan Wake 2 son un solo juego.

  • La API no es oficial: Sony puede cambiarla en cualquier momento.

Estructura del proyecto

.
├── app/
│   ├── api/              # MCP layer: tools, prompts, serialisers, tool errors
│   │   ├── games/
│   │   ├── profile/
│   │   └── taste/
│   ├── core/             # Business logic: services, repositories, DTOs
│   │   ├── auth/         # NPSSO -> tokens, refresh, re-login
│   │   ├── games/        # Library, playtime/trophy merge, name normalisation
│   │   ├── profile/      # Account profile and trophy summary
│   │   └── taste/        # Taste digest aggregation
│   ├── di/               # DI containers and providers
│   ├── infra/adapters/   # HTTP client, token storage, TTL cache
│   ├── cli.py            # psn-login, psn-doctor
│   └── main.py           # MCP server entry point
├── settings/             # pydantic-settings configuration
├── tests/
│   ├── core/             # Merge and aggregation tests
│   └── factories/        # Builders for test data
└── pyproject.toml

Desarrollo

poetry run pytest        # unit tests; no network and no account needed
poetry run psn-doctor    # live check against the signed-in account
F
license - not found
-
quality - not tested
C
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

View all related MCP servers

Related MCP Connectors

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

  • Connect your Player's Bank account to AI via Brazil's Open Finance: balances, statements, cards, inv

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

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/murzin-ml/mcp-ps-store'

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