mirror of
https://github.com/varunneal/spotify-mcp.git
synced 2026-04-26 13:15:50 +03:00
[PR #34] [CLOSED] Comprehensive pagination support and tool modernization #39
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/spotify-mcp-varunneal#39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/varunneal/spotify-mcp/pull/34
Author: @jamiew
Created: 8/13/2025
Status: ❌ Closed
Base:
main← Head:improve-pagination📝 Commits (10+)
2f8a2caImplement playlist API functions (and enhance type safety throughout)1c02a97Git-ignore common files and cache files5bcc5baAdd additional logging so we can see what's going1ad41c7Add necessary playlist API scopes9ecbc19Add Dockerfiled25a2ecAdd Smithery configuration8f0f0e7Update READMEcb742baMerge pull request #1 from jamiew/smithery/config-jn1p0e5630cFix markdownlint issues in README (mostly newlines)37093a5Ignore cachefiles using .gitignore📊 Changes
19 files changed (+3813 additions, -489 deletions)
View changed files
➕
.gitignore(+4 -0)➕
CLAUDE.md(+739 -0)➕
Dockerfile(+21 -0)➕
LICENSE(+21 -0)📝
README.md(+25 -9)📝
pyproject.toml(+59 -2)➕
smithery.yaml(+37 -0)📝
src/spotify_mcp/__init__.py(+4 -5)➕
src/spotify_mcp/errors.py(+275 -0)➕
src/spotify_mcp/fastmcp_server.py(+678 -0)➖
src/spotify_mcp/server.py(+0 -251)📝
src/spotify_mcp/spotify_api.py(+342 -75)📝
src/spotify_mcp/utils.py(+38 -11)➕
tests/conftest.py(+122 -0)➕
tests/test_errors.py(+193 -0)➕
tests/test_fastmcp_tools.py(+385 -0)➕
tests/test_spotify_api.py(+115 -0)➕
tests/test_utils.py(+210 -0)📝
uv.lock(+545 -136)📄 Description
Summary
This PR implements comprehensive pagination support and modernizes the FastMCP server architecture, transforming it from a basic prototype into a production-ready MCP server.
🚀 Major Improvements
Comprehensive Pagination Support:
limitandoffsetparameters tosearch_tracksandget_user_playlistsget_playlist_trackstool with full pagination for large playlists (1000+ tracks)items,total,limit,offsetmetadataTool Architecture Modernization:
manage_queue(action)→add_to_queue()+get_queue()get_item_info(qtype)→get_track_info()+get_artist_info()+get_playlist_info()Dict[str, Any]instead of mixed typesEnhanced Documentation:
🔧 Technical Details
API Efficiency:
Developer Experience:
📊 Tools Overview
Before (7 tools): Mixed patterns, limited pagination
After (13 tools): Focused, consistent, comprehensive pagination
New/Updated Tools:
get_playlist_tracks- Dedicated pagination for large playlistsadd_to_queue/get_queue- Split from generic manage_queueget_track_info/get_artist_info/get_playlist_info- Split from generic get_item_info✅ Benefits
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.