Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
PlayStation Network (PSN) gaming history: playtime, trophies and purchased library.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
PSN_NPSSO, PSN_STORE_LOCALEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"ps-store": {
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ps-store --env PSN_NPSSO=your-value --env PSN_STORE_LOCALE=your-value -- uvx mcp-ps-storeFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ps-store": {
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"ps-store": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-ps-store"
],
"env": {
"PSN_NPSSO": "your-value",
"PSN_STORE_LOCALE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
PSN_STORE_LOCALE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account murzin-ml, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: PSN_NPSSO
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Signoff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.