Skip to main content
Glama

mcp-ps-store

MCP-сервер, который предоставляет собственную игровую историю учётной записи PlayStation Network — время игры, прогресс трофеев, купленную библиотеку — чтобы ИИ-ассистент мог рекомендовать игры на основе реальных данных, а не догадок.

Русская версия: README.ru.md.

О проекте

У PSN нет публичного API. Этот сервер общается с тем же внутренним API, который использует мобильное приложение PlayStation, аутентифицируясь с помощью NPSSO-куки, взятой из сессии браузера. Каждый запрос — только чтение; ничего не записывается обратно в учётную запись.

Структура следует многослойной архитектуре: слой API (инструменты MCP), основной слой (сервисы, репозитории, DTO), DI-контейнер и инфраструктурный слой.

Основные технологии

  • Язык: Python 3.11+

  • Протокол: Model Context Protocol (mcp)

  • HTTP-клиент: httpx (асинхронный)

  • DI-контейнер: dependency-injector

  • Настройки: pydantic-settings

  • Управление зависимостями: Poetry

  • Тестирование: Pytest, pytest-asyncio

Related MCP server: PersonalizationMCP

Что предоставляется

Инструмент

Для чего

psn_taste_profile

Основной: единый дайджест — лучшие игры по часам, любимые франшизы, привычки в стиле игры (средняя сессия, доля глубоких погружений, процент платины), игры, близкие к 100%, игры, заброшенные после часа, и покупки, которые никогда не запускались. Начинайте отсюда для любого вопроса о рекомендациях.

psn_library

Фильтруемый список игр: поиск по названию, сортировка по часам / последней игре / прогрессу трофеев, фильтр по платформе, часам, датам и прогрессу.

psn_game_trophies

Все трофеи одной игры: полученные или нет, дата, редкость, доля игроков, у которых он есть.

psn_owned_games

Что уже куплено или получено через PS Plus, с указанием часов, где они известны — чтобы не рекомендовать уже имеющееся.

psn_recently_played

Что запускалось последним.

psn_profile

Online ID, PS Plus, уровень трофеев, общее количество трофеев.

psn_refresh

Сбрасывает кеш ответов (ответы PSN кешируются на 10 минут).

Плюс подсказка recommend_games — готовый сценарий «собери мой профиль и порекомендуй игры», который принимает необязательное указание, например «что-то короткое» или «кооп на двоих».

Быстрый старт

Требуется Python 3.11+.

1. Установка

С помощью Poetry:

poetry install

Или с обычным virtualenv:

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

2. Вход в PSN

  1. Войдите в систему на https://www.playstation.com в браузере.

  2. Откройте https://ca.account.sony.com/api/v1/ssocookie — он возвращает {"npsso":"..."}.

  3. Скопируйте 64-символьное значение npsso и выполните:

poetry run psn-login PASTE_NPSSO_HERE

Токены сохраняются в ~/.mcp-ps-store/tokens.json с правами 0600.

О времени жизни сессии. Токен доступа живёт час, а токен обновления — всего десять дней, но сам NPSSO живёт около двух месяцев. Поэтому NPSSO хранится рядом с токенами, и сервер самостоятельно повторно аутентифицируется, когда токен обновления умирает. На практике один psn-login работает около 60 дней.

3. Проверьте, что работает

poetry run psn-doctor

Он выводит имя учётной записи, количество видимых игр и пятёрку лучших по часам.

Подключение клиента

Claude Code

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

Claude Desktop

В 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 общается через stdio с локальными MCP-серверами, поэтому работает так же. Либо выполните codex mcp add, либо добавьте это в ~/.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"

Проверьте с помощью /mcp внутри сессии Codex.

ChatGPT

ChatGPT не может запускать локальные процессы. Пользовательские коннекторы добавляются в режиме разработчика (Settings → Apps → Advanced) и должны быть публичной HTTPS-конечной точкой, работающей по SSE или Streamable HTTP. Поэтому сервер необходимо переключить на HTTP-транспорт и опубликовать:

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

Затем откройте http://127.0.0.1:8000/mcp через HTTPS — с помощью Secure MCP Tunnel от OpenAI или туннеля вроде cloudflared / ngrok — и добавьте полученный URL как пользовательский коннектор.

Это публикует вашу историю PSN для всех, кто найдёт URL. У сервера нет собственной аутентификации, поэтому поместите туннель за аутентификацию, держите его включённым только пока он нужен, и предпочтите Codex CLI, если подойдёт локальный клиент.

Конфигурация

Все настройки читаются из окружения или файла .env (см. .env.example).

Переменная

Значение по умолчанию

Описание

PSN_NPSSO

NPSSO-куки. Альтернатива psn-login: если задано, сервер входит самостоятельно.

PSN_TOKENS_PATH

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

Путь к кешу токенов.

PSN_CACHE_TTL

600

Как долго повторно используются ответы PSN, в секундах.

PSN_STORE_LOCALE

en-us

Локаль, используемая в ссылках store.playstation.com.

PSN_REQUEST_TIMEOUT

30

Тайм-аут HTTP для запросов к PSN, в секундах.

PSN_MCP_TRANSPORT

stdio

stdio, streamable-http или sse.

PSN_MCP_HOST

127.0.0.1

Адрес привязки для HTTP-транспортов.

PSN_MCP_PORT

8000

Порт для HTTP-транспортов.

Ограничения

  • Время игры существует только для версий PS4 / PS5 / PC. PSN сообщает об играх PS3 и Vita только с трофеями, поэтому они отображаются с hours: null.

  • Здесь нет каталога PS Store. Магазин полностью клиентский, и его GraphQL API принимает только сохранённые запросы, хеши которых Sony меняет при каждом развёртывании — поддерживать это в рабочем состоянии нереалистично. Кандидаты для рекомендаций берутся из собственных знаний модели об играх, а psn_owned_games не позволяет ей предлагать уже купленное.

  • Купленная библиотека проходит через частный GraphQL API PSN. Если Sony изменит запрос, этот инструмент перестанет работать; всё остальное продолжит работу, а в дайджесте появится примечание backlog_unavailable.

  • Время игры и трофеи объединяются по названию, поэтому переиздание может объединиться с оригиналом, если у них общий набор трофеев. Редакции, суффиксы платформ и римские цифры намеренно нормализуются — Alan Wake II и Alan Wake 2 считаются одной игрой.

  • API неофициальный: Sony может изменить его в любое время.

Структура проекта

.
├── 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

Разработка

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