mcpField
L
Last.fm

Last.fm

ローカル
github.com/ndyakovゲーム・エンタメ03 週間前に更新

Last.fm について

Last.fm APIのデータにアクセスするMCPサーバーで、音楽リスナーやAIクライアント向けです。安定した読み取り用エンドポイントを標準で提供し、書き込みや認証ツールは設定で有効化できます。

主な機能

  1. 01アーティスト、アルバム、曲の情報
  2. 02チャート、タグ、検索
  3. 03ユーザープロフィールと再生履歴
  4. 04タグ付けとscrobblingの任意利用
  5. 05stdioとStreamable HTTPのトランスポート

活用シーン

  1. 01アーティストの関連アーティストや人気曲を調べる
  2. 02ユーザーの最近の再生曲やお気に入り曲を確認する
  3. 03チャートや音楽タグを検索する
  4. 04書き込みツールでscrobblingを有効にする

MCP 対応

対応するLast.fm APIメソッドを、MCPクライアントが検出できるツールとして公開します。stdioとStreamable HTTPに対応し、変更系と認証ツールは標準で無効です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ndyakov-lastfm": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LASTFM_API_KEY",
"-e",
"LASTFM_API_SECRET",
"-e",
"LASTFM_ENABLE_WRITES",
"ghcr.io/ndyakov/lastfm-mcp:0.2.0"
],
"env": {
"LASTFM_API_KEY": "<LASTFM_API_KEY>",
"LASTFM_API_SECRET": "<LASTFM_API_SECRET>",
"LASTFM_ENABLE_WRITES": "<LASTFM_ENABLE_WRITES>"
}
}
}
}
起動コマンドdocker run -i --rm -e LASTFM_API_KEY -e LASTFM_API_SECRET -e LASTFM_ENABLE_WRITES ghcr.io/ndyakov/lastfm-mcp:0.2.0
設定が必要な環境変数
LASTFM_API_KEYシークレットLast.fm API key (https://www.last.fm/api/account/create)
LASTFM_API_SECRETシークレットLast.fm API secret; only needed for authenticated/write methods
LASTFM_ENABLE_WRITESSet to 1 to enable scrobbling/write tools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/ndyakov/lastfm-mcp:0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

lastfm-mcp — Last.fm MCP サーバー

lastfm-mcp

go-lastfm/v2 と公式 Go MCP SDKを基盤に構築された、Last.fm API 用の MCP サーバーです。

Last.fm でサポートされている機能全体を、次の方法で利用できる、検出可能な MCP ツールとして公開します。

  • stdio:ローカルのデスクトップクライアントや CLI クライアント向け
  • Streamable HTTP:ローカルサービスやリモート環境へのデプロイ向け

読み取り専用ツールはデフォルトで有効です。書き込み、認証ヘルパー、サポート対象外のレガシーメソッドを利用するには、明示的なオプトインが必要です。

ステータス

このプロジェクトは、リポジトリへの初回インポートに向けて準備されています。モジュールパスは github.com/ndyakov/lastfm-mcp です。リポジトリで別のオーナー名または名前を使用する場合は、最初のリリース前に変更してください。

必要条件

  • Go 1.25 以降
  • Last.fm API アカウント
  • LASTFM_API_KEY
  • 書き込みツールを有効にする場合のみ、LASTFM_API_SECRET と LASTFM_SESSION_KEY

stdio で実行

export LASTFM_API_KEY="your-api-key"
go run ./cmd/lastfm-mcp

MCP クライアント設定の例:

{
  "mcpServers": {
    "lastfm": {
      "command": "/absolute/path/to/lastfm-mcp",
      "env": {
        "LASTFM_API_KEY": "your-api-key"
      }
    }
  }
}

コミットする設定ファイルには、認証情報を絶対に記載しないでください。

Streamable HTTP で実行

export LASTFM_API_KEY="your-api-key"
export LASTFM_MCP_TRANSPORT="http"
export LASTFM_MCP_HTTP_ADDR="127.0.0.1:8080"
go run ./cmd/lastfm-mcp

MCP エンドポイントは http://127.0.0.1:8080/mcp です。ヘルスチェックには GET /healthz を使用します。

LASTFM_MCP_HTTP_TOKEN が設定されていない場合、ループバック以外のアドレスへのバインドは拒否されます。設定されている場合、クライアントは次のように送信します。

Authorization: Bearer <token>

サーバーは MCP エンドポイントに Go のクロスオリジン保護を適用し、保守的な HTTP タイムアウトを設定します。TLS と本番環境向けの ID 認識型認証は、信頼できるリバースプロキシで設定してください。

設定

環境変数デフォルト用途
LASTFM_API_KEY必須Last.fm API キー
LASTFM_API_SECRET空署名付きメソッドまたは認証付きメソッドで必要
LASTFM_SESSION_KEY空書き込みツールで必要
LASTFM_USER_AGENTlastfm-mcp/<version>Last.fm への送信時に使用するユーザーエージェント
LASTFM_REQUEST_TIMEOUT30sLast.fm リクエストのタイムアウト
LASTFM_MCP_TRANSPORTstdiostdio または http
LASTFM_MCP_HTTP_ADDR127.0.0.1:8080HTTP リッスンアドレス
LASTFM_MCP_HTTP_PATH/mcpStreamable HTTP エンドポイント
LASTFM_MCP_HTTP_TOKEN空HTTP ベアラートークン。ループバック以外のアドレスへのバインド時は必須
LASTFM_ENABLE_WRITESfalse変更を加えるツールを登録
LASTFM_ENABLE_AUTH_TOOLSfalse認証情報/セッション用ツールを登録
LASTFM_ENABLE_EXPERIMENTALfalseLast.fm の公開インデックスにないレガシーメソッドを登録

トランスポート、アドレス、パス、機能ゲートには、対応するコマンドラインフラグも用意されています。詳細は lastfm-mcp -h を実行して確認してください。

ツールの対応範囲

デフォルトでは、サーバーは go-lastfm/v2 がサポートする安定した読み取り専用エンドポイントをすべて登録します。

  • アルバム:情報、ユーザータグ、トップタグ、検索
  • アーティスト:修正、情報、類似アーティスト、ユーザータグ、トップアルバム/トラック/タグ、検索
  • チャート:トップアーティスト、トラック、タグ
  • 地域:トップアーティストとトラック
  • ライブラリ:アーティスト
  • タグ:情報、類似タグ、トップアルバム/アーティスト/トラック/タグ、週間チャートの期間
  • トラック:修正、情報、類似トラック、ユーザータグ、トップタグ、検索
  • ユーザー:プロフィール、友達、お気に入り登録したトラックと最近再生したトラック、個人タグ、トップアルバム/アーティスト/トラック/タグ、週間チャートと期間

LASTFM_ENABLE_WRITES=true にすると、アルバム/アーティスト/トラックへのタグ付け、お気に入り登録/解除、再生中の曲の設定、スクロブルが追加されます。これらには API シークレットとセッションキーが必要です。

LASTFM_ENABLE_AUTH_TOOLS=true にすると、ブラウザートークン、認証 URL、セッション交換、モバイルセッション用のツールが追加されます。これらのツールはセッション認証情報を MCP クライアントやモデルに公開する可能性があります。必要な場合を除き、無効のままにしてください。MCP セッション外で認証を完了し、プロセスの起動時に LASTFM_SESSION_KEY を指定することを推奨します。

LASTFM_ENABLE_EXPERIMENTAL=true にすると、レガシーのタグ検索、メトロ、近隣ユーザー、アーティスト/トラックのトップファン、Tasteometer による比較が追加されます。Last.fm は予告なくこれらを変更または無効化する場合があります。

Docker

docker build -t lastfm-mcp .
docker run --rm -p 127.0.0.1:8080:8080 \
  -e LASTFM_API_KEY \
  -e LASTFM_MCP_TRANSPORT=http \
  -e LASTFM_MCP_HTTP_ADDR=0.0.0.0:8080 \
  -e LASTFM_MCP_HTTP_TOKEN \
  lastfm-mcp

docker compose up --build は同じ HTTP 設定を使用し、環境変数から値を読み込みます。

開発

go mod tidy
go test -race ./...
go vet ./...

go-lastfm/v2 が公開されるまでは、このリポジトリと隣接する go-lastfm チェックアウトを含む一時的な Go ワークスペースを使用してください。ローカルの replace ディレクティブはコミットしないでください。

CONTRIBUTING.md、SECURITY.md、および ROADMAP.md を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。