Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
Model Context Protocol server for Last.fm music data integration ๐ต Last.fm MCP Server $1 $1 $1 $1 $1 $1 A **Model Context Protocol (MCP) server** that provides seamless access to Last.fm listening data and music information via AI assistants like Claude. โจ Features - ๐ง **Personal Listening Data**: Recent tracks, top artists, albums, loved tracks - ๐ต **Music Information**: Detailed track, artist, and album information - ๐ **Music Discovery**: Similar artists/tracks, personalize Capability contract not published. No trust telemetry is available yet. 23 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
lastfm-mcp is best for mcp, lastfm, music workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
Model Context Protocol server for Last.fm music data integration ๐ต Last.fm MCP Server $1 $1 $1 $1 $1 $1 A **Model Context Protocol (MCP) server** that provides seamless access to Last.fm listening data and music information via AI assistants like Claude. โจ Features - ๐ง **Personal Listening Data**: Recent tracks, top artists, albums, loved tracks - ๐ต **Music Information**: Detailed track, artist, and album information - ๐ **Music Discovery**: Similar artists/tracks, personalize
Public facts
5
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 23 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Rianvdm
Artifacts
0
Benchmarks
0
Last release
0.0.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 23 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/rianvdm/lastfm-mcp.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Rianvdm
Protocol compatibility
MCP
Adoption signal
23 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
text
https://lastfm-mcp.com/mcp
text
https://lastfm-mcp.com/mcp
bash
claude mcp add --transport http lastfm "https://lastfm-mcp.com/mcp"
json
{
"mcpServers": {
"lastfm": {
"serverUrl": "https://lastfm-mcp.com/mcp"
}
}
}bash
npx @modelcontextprotocol/inspector https://lastfm-mcp.com/mcp
json
{
"mcpServers": {
"lastfm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://lastfm-mcp.com/mcp"]
}
}
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
Model Context Protocol server for Last.fm music data integration ๐ต Last.fm MCP Server $1 $1 $1 $1 $1 $1 A **Model Context Protocol (MCP) server** that provides seamless access to Last.fm listening data and music information via AI assistants like Claude. โจ Features - ๐ง **Personal Listening Data**: Recent tracks, top artists, albums, loved tracks - ๐ต **Music Information**: Detailed track, artist, and album information - ๐ **Music Discovery**: Similar artists/tracks, personalize
A Model Context Protocol (MCP) server that provides seamless access to Last.fm listening data and music information via AI assistants like Claude.
https://lastfm-mcp.com/mcp
https://lastfm-mcp.com/mcp
claude mcp add --transport http lastfm "https://lastfm-mcp.com/mcp"
When you first use a Last.fm tool, you'll be prompted to authenticate.
Add to your Windsurf MCP config (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"lastfm": {
"serverUrl": "https://lastfm-mcp.com/mcp"
}
}
}
npx @modelcontextprotocol/inspector https://lastfm-mcp.com/mcp
Continue.dev (VS Code/JetBrains):
{
"mcpServers": {
"lastfm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://lastfm-mcp.com/mcp"]
}
}
}
Zed Editor:
{
"context_servers": {
"lastfm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://lastfm-mcp.com/mcp"]
}
}
}
This server uses OAuth 2.0 for authentication. When you connect from any supported client:
All major MCP clients (Claude.ai, Claude Desktop, Claude Code, Windsurf) support OAuth.
Note: Public tools (track info, artist info, similar artists, etc.) work without authentication. You only need to sign in to access your personal listening data.
| Tool | Description |
| --------------------- | ---------------------------------------- |
| get_track_info | Get detailed information about any track |
| get_artist_info | Get detailed artist information and bio |
| get_album_info | Get album details and track listings |
| get_similar_artists | Find artists similar to a given artist |
| get_similar_tracks | Find tracks similar to a given track |
| ping | Test server connectivity |
| server_info | Get server status and capabilities |
| lastfm_auth_status | Check your authentication status |
| Tool | Description |
| --------------------------- | --------------------------------------------------- |
| get_recent_tracks | Your recent listening history (supports pagination) |
| get_top_artists | Your top artists by time period |
| get_top_albums | Your top albums by time period |
| get_loved_tracks | Your loved/favorite tracks |
| get_user_info | Your Last.fm profile information |
| get_listening_stats | Comprehensive listening statistics |
| get_music_recommendations | Personalized music recommendations |
| Tool | Description |
| ------------------------- | ----------------------------------------------------------- |
| get_weekly_chart_list | Get available historical time periods for temporal analysis |
| get_weekly_artist_chart | Get artist listening data for specific time periods |
| get_weekly_track_chart | Get track listening data for specific time periods |
Perfect for questions like:
Access Last.fm data via standardized MCP resource URIs:
lastfm://user/{username}/recent # Recent tracks
lastfm://user/{username}/top-artists # Top artists
lastfm://user/{username}/top-albums # Top albums
lastfm://user/{username}/loved # Loved tracks
lastfm://user/{username}/profile # User profile
lastfm://track/{artist}/{track} # Track info
lastfm://artist/{artist} # Artist info
lastfm://album/{artist}/{album} # Album info
lastfm://artist/{artist}/similar # Similar artists
lastfm://track/{artist}/{track}/similar # Similar tracks
Rich AI prompts for music analysis and discovery:
| Prompt | Description | Arguments |
| -------------------- | --------------------------------------------- | ------------------------ |
| listening_insights | Analyze user's listening habits and patterns | username, period? |
| music_discovery | Discover new music based on listening history | username, genre? |
| track_analysis | Get detailed analysis of a specific track | artist, track |
| album_analysis | Get detailed analysis of a specific album | artist, album |
| artist_analysis | Get detailed analysis of a specific artist | artist |
| listening_habits | Analyze and summarize user's listening habits | username, timeframe? |
These prompts generate contextual messages that guide AI assistants to provide meaningful music insights using the available Last.fm tools and data.
Clone and install:
git clone https://github.com/rianvdm/lastfm-mcp.git
cd lastfm-mcp
npm install
Configure environment (.dev.vars):
LASTFM_API_KEY=your_api_key_here
LASTFM_SHARED_SECRET=your_shared_secret_here
JWT_SECRET=your_secure_jwt_secret
Start development server:
npm run dev
Test with MCP Inspector:
npx @modelcontextprotocol/inspector http://localhost:8787/mcp
Test authentication locally:
http://localhost:8787/login to authenticateSet production secrets:
echo "your_api_key" | wrangler secret put LASTFM_API_KEY --env production
echo "your_shared_secret" | wrangler secret put LASTFM_SHARED_SECRET --env production
echo "your_jwt_secret" | wrangler secret put JWT_SECRET --env production
Deploy:
npm run deploy:prod
Verify deployment:
curl https://lastfm-mcp.com/
Get track information:
curl -X POST https://lastfm-mcp.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_track_info",
"arguments": {
"artist": "Radiohead",
"track": "Paranoid Android"
}
}
}'
Find similar artists:
curl -X POST https://lastfm-mcp.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_similar_artists",
"arguments": {
"artist": "Pink Floyd",
"limit": 10
}
}
}'
For authenticated requests, use the session_id parameter:
curl -X POST "https://lastfm-mcp.com/mcp?session_id=YOUR_SESSION_ID" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_recent_tracks",
"arguments": {
"limit": 10
}
}
}'
With Claude or other AI assistants, you can now ask natural language questions like:
| Endpoint | Purpose |
| ----------------------------------------- | ------------------------------ |
| /mcp | MCP JSON-RPC endpoint |
| /login | Manual authentication (legacy) |
| /authorize | OAuth 2.0 authorization |
| /.well-known/oauth-authorization-server | OAuth server metadata |
| /.well-known/oauth-protected-resource | OAuth resource metadata |
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lint
# Build check
npm run build
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE file for details.
๐ต Built with โค๏ธ for music lovers and AI enthusiasts
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T02:20:53.834Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "lastfm",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "music",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "scrobbling",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "listening-history",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cloudflare-workers",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:lastfm|supported|profile capability:music|supported|profile capability:scrobbling|supported|profile capability:listening-history|supported|profile capability:cloudflare-workers|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Rianvdm",
"href": "https://github.com/rianvdm/lastfm-mcp",
"sourceUrl": "https://github.com/rianvdm/lastfm-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:15:17.283Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:15:17.283Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "23 GitHub stars",
"href": "https://github.com/rianvdm/lastfm-mcp",
"sourceUrl": "https://github.com/rianvdm/lastfm-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:15:17.283Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-rianvdm-lastfm-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub ยท GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to lastfm-mcp and adjacent AI workflows.