[build-system] requires = ["hatchling>=1.27"] build-backend = "hatchling.build" [project] name = "spotify-mcp-server" version = "0.1.0" description = "A Pydantic-first MCP v2 server for Spotify catalog, library, playlists, playback, and listening activity." readme = "README.md" requires-python = ">=3.11" dependencies = [ "asyncpg>=0.31.0,<1.0", "cryptography>=50.0.0,<51.0", "httpx2>=2.10,<3.0", "keyring>=25.6,<27.0", "mcp>=2.0.0,<3.0.0", "pydantic>=2.13,<3.0", "pyjwt[crypto]>=2.13,<3.0", ] [project.optional-dependencies] dev = [ "pytest>=8.3", "ruff>=0.11", ] [project.scripts] spotify-mcp-server = "spotify_mcp_server.server:main" spotify-mcp-auth = "spotify_mcp_server.spotify.auth:main" spotify-mcp-schema = "spotify_mcp_server.schema:main" [tool.hatch.build.targets.wheel] packages = ["src/spotify_mcp_server"] [tool.pytest.ini_options] addopts = "-ra --strict-markers --strict-config" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "ASYNC", "RUF"] [tool.ruff.format] quote-style = "double"