Polyhydra Skills / Content & Art
Safely inspect and stage ScreenScraper artwork through the local Skyscraper client. Use when a user wants game art or metadata for a catalog, Batocera, or emulation library without exposing credentials or writing directly to a live media library. Ported from a Codex plugin.
Drop this in — save the block below as ~/.claude/skills/screenscraper-art/SKILL.md, or run:
mkdir -p ~/.claude/skills/screenscraper-art cat > ~/.claude/skills/screenscraper-art/SKILL.md <<'EOF' # (paste the full source block below into this file) EOF
# ScreenScraper Art
This skill drives a bundled local MCP server (`mcp-server/server.py`) that wraps
the `Skyscraper` CLI. It never handles ScreenScraper credentials directly —
those stay in Skyscraper's own `~/.skyscraper/config.ini` (must be `0600`).
## Check the MCP server is connected first
This skill only works if the `screenscraper-art` MCP server is registered for
this session. Check the available tools for `screenscraper_health`,
`screenscraper_inspect`, and `screenscraper_stage`. If they are not present,
do not fail silently — tell the user the server isn't wired up yet and walk
them through adding it, e.g. in a project's `.mcp.json`:
```json
{
"mcpServers": {
"screenscraper-art": {
"command": "python3",
"args": ["/home/lancer1977/.claude/skills/screenscraper-art/mcp-server/server.py"]
}
}
}
```
(Or the user-level MCP config, depending on where they want it available.)
After adding it, the user needs to restart/reconnect the session for the tools
to appear — say so rather than retrying silently.
## Use the tools in this order
1. `screenscraper_health` — checks that Skyscraper is installed and the
protected local config is available. It never returns credentials.
2. `screenscraper_inspect` — matches one local ROM/archive and returns its
sanitized result. It only populates Skyscraper's local cache; nothing is
written outside a temp dir.
3. `screenscraper_stage` — writes a one-game, reviewable media/gamelist result
only to a new, explicit staging directory. It requires `allow_write: true`
and refuses to target a directory that already exists (so it can never
overwrite a live library).
## Hard rules
- Never put credentials in prompts, source files, or command lines — they
live only in Skyscraper's local config.
- Do not use this for bulk harvesting or direct publication to Batocera/CDN.
This is a one-game-at-a-time, stage-then-review workflow.
- Always inspect the staged assets and the generated
`screenscraper-manifest.json` (rights status, match info) with the user
before they import anything into a live library.