{
  "name": "@novalux12/spotify-mcp",
  "version": "3.1.1",
  "description": "Spotify Web API MCP: playback, library, playlists, search, podcasts. Not affiliated with Spotify.",
  "type": "module",
  "bin": {
    "spotify-mcp": "dist/index.js"
  },
  "publishConfig": {
    "access": "public"
  },
  "mcpName": "io.github.NovaLux12/spotify-mcp-server",
  "homepage": "https://github.com/NovaLux12/spotify-mcp-server#readme",
  "engines": {
    "node": ">=22.9"
  },
  "files": [
    "dist"
  ],
  "keywords": [
    "mcp",
    "mcp-server",
    "model-context-protocol",
    "spotify",
    "claude",
    "ai",
    "music",
    "playlist",
    "podcast",
    "audiobook",
    "playback"
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/NovaLux12/spotify-mcp-server.git"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.30.0",
    "open": "^11.0.1",
    "zod": "^4.4.3"
  },
  "devDependencies": {
    "@types/node": "^26.4.1",
    "tsx": "^4.0.0",
    "typescript": "^7.0.2"
  },
  "scripts": {
    "build": "tsc && node scripts/add-shebang.js",
    "dev": "node --env-file-if-exists=.env --import tsx/esm src/index.ts",
    "auth": "node --env-file-if-exists=.env --import tsx/esm src/index.ts auth",
    "start": "node --env-file-if-exists=.env dist/index.js",
    "prepack": "npm run build",
    "test": "npm run build && node --import ./scripts/pin-tz.mjs --import tsx --test 'tests/*.test.ts'",
    "test:coverage": "npm run build && node --import ./scripts/pin-tz.mjs --import tsx --experimental-test-coverage --test-coverage-lines=75 --test-coverage-functions=70 --test-coverage-branches=60 --test-reporter=tap --test 'tests/*.test.ts'",
    "count:tools": "node scripts/surface-census.mjs",
    "check:docs-counts": "node scripts/surface-census.mjs --check",
    "check:doc-tool-names": "node scripts/check-doc-tool-names.mjs",
    "check:tests-typecheck": "node scripts/check-tests-typecheck.mjs",
    "lint:scripts": "node scripts/check-script-syntax.mjs",
    "sweep": "node scripts/live-gauntlet.mjs --batch=40 --resume=memory/live-sweep-report.json --report=memory/live-sweep-report.json",
    "sweep:loop": "bash scripts/sweep-loop.sh",
    "probe:edge": "node scripts/edge-probe.mjs",
    "probe:contains": "node scripts/contains-check.mjs",
    "wire:equivalence": "node scripts/wire-equivalence.mjs",
    "wire:equivalence:compare": "node scripts/wire-equivalence.mjs --compare",
    "gate:check": "node scripts/tool-gate-check.mjs",
    "e2e:live": "node scripts/live-e2e.mjs"
  }
}
