Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
PlayStation Network (PSN) gaming history: playtime, trophies and purchased library.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
PSN_NPSSO, PSN_STORE_LOCALE「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"ps-store": {
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add ps-store --env PSN_NPSSO=your-value --env PSN_STORE_LOCALE=your-value -- uvx mcp-ps-store動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"ps-store": {
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"ps-store": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
PSN_STORE_LOCALE envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント murzin-ml で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PSN_NPSSO
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, 御府和田玉 在售作品查询
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP server for the PlayStation Network (PSN): it exposes your own gaming history — playtime, trophies, purchased library — so an AI assistant can recommend games from real data instead of guesswork.
Русская версия: README.ru.md.
PSN has no public API. This server talks to the same internal API the PlayStation mobile app uses, authenticating with an NPSSO cookie taken from a browser session. Every request is a read; nothing is ever written back to the account.
The layout follows a layered architecture: an API layer (MCP tools), a core layer (services, repositories, DTOs), a DI container and an infrastructure layer.
mcp)dependency-injectorpydantic-settingspytest-asyncio| Tool | What it is for |
|---|---|
psn_taste_profile | The main one: a single digest — top games by hours, favourite franchises, playstyle habits (average session, share of deep dives, platinum rate), games close to 100%, games abandoned after an hour, and purchases never launched. Start here for any recommendation question. |
psn_library | Filterable game list: search by title, sort by hours / last played / trophy progress, filter by platform, hours, dates and progress. |
psn_game_trophies | Every trophy of one game: earned or not, date, rarity, share of players who have it. |
psn_owned_games | What is already bought or claimed through PS Plus, with hours where known — so nothing already owned gets recommended. |
psn_recently_played | What was launched most recently. |
psn_profile | Online ID, PS Plus, trophy level, lifetime trophy counts. |
psn_refresh | Drops the response cache (PSN answers are cached for 10 minutes). |
Plus a recommend_games prompt — a ready-made "build my profile and recommend games" scenario that takes an optional steer such as "something short" or "co-op for two".
Python 3.11+ is required.
With Poetry:
poetry install
Or with a plain virtualenv:
python3.11 -m venv .venv && .venv/bin/pip install -e .
{"npsso":"..."}.npsso value and run:poetry run psn-login PASTE_NPSSO_HERE
Tokens go to ~/.mcp-ps-store/tokens.json with 0600 permissions.
About session lifetime. The access token lives an hour and the refresh token only ten days, but the NPSSO itself lives about two months. The NPSSO is therefore stored next to the tokens, and the server re-authenticates on its own when the refresh token dies. In practice one psn-login lasts about 60 days.
poetry run psn-doctor
It prints the account name, how many games are visible and the top five by hours.
claude mcp add ps-store -- /path/to/mcp-ps-store/.venv/bin/python -m app.main
In 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 speaks stdio to local MCP servers, so it works the same way. Either run codex mcp add, or add this to ~/.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"
Check it with /mcp inside a Codex session.
ChatGPT cannot launch a local process. Custom connectors are added in Developer mode (Settings → Apps → Advanced) and must be a public HTTPS endpoint speaking SSE or Streamable HTTP. So the server has to be switched to HTTP transport and published:
PSN_MCP_TRANSPORT=streamable-http PSN_MCP_PORT=8000 poetry run mcp-ps-store
Then expose http://127.0.0.1:8000/mcp over HTTPS — with OpenAI's Secure MCP Tunnel, or a tunnel such as cloudflared / ngrok — and add the resulting URL as a custom connector.
This publishes your PSN history to whoever finds the URL. The server has no authentication of its own, so put the tunnel behind auth, keep it running only while you need it, and prefer Codex CLI if a local client will do.
All settings are read from the environment or a .env file (see .env.example).
| Variable | Default | Meaning |
|---|---|---|
PSN_NPSSO | — | NPSSO cookie. An alternative to psn-login: if set, the server signs in by itself. |
PSN_TOKENS_PATH | ~/.mcp-ps-store/tokens.json | Where tokens are cached. |
PSN_CACHE_TTL | 600 | How long PSN responses are reused, in seconds. |
PSN_STORE_LOCALE | en-us | Locale used in store.playstation.com links. |
PSN_REQUEST_TIMEOUT | 30 | HTTP timeout for PSN requests, in seconds. |
PSN_MCP_TRANSPORT | stdio | stdio, streamable-http or sse. |
PSN_MCP_HOST | 127.0.0.1 | Bind address for the HTTP transports. |
PSN_MCP_PORT | 8000 | Port for the HTTP transports. |
hours: null.psn_owned_games stops it suggesting something already bought.backlog_unavailable note.Alan Wake II and Alan Wake 2 are one game..
├── 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
MIT — see LICENSE.