musicbrainz-mcp について
MusicBrainzのメタデータとCover Art Archiveの画像URLをクライアントに提供するNode製MCPサーバーです。OAuthを設定するとタグ、評価、コレクションを編集でき、書き込みの前に確認を行います。
主な機能
- 01Luceneクエリによる音楽エンティティ検索
- 02MBIDによるエンティティ参照
- 03関連エンティティの参照
- 04カバーアート画像URLの取得
- 05タグ、評価、コレクションの編集
活用シーン
- 01録音、アーティスト、リリース、レーベルの検索
- 02アーティストに関連するリリースの確認
- 03リリースのアートワークURL取得
- 04個人のタグ、評価、コレクションの更新
MCP 対応
MusicBrainzの検索、参照、関連情報の閲覧、カバーアート取得、任意のOAuth書き込みツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y musicbrainz-mcpMUSICBRAINZ_USER_AGENTOptional override for the User-Agent sent to MusicBrainz.MUSICBRAINZ_OAUTH_CLIENT_IDシークレットOAuth client ID (write tools only). Register at musicbrainz.org/account/applications.MUSICBRAINZ_OAUTH_CLIENT_SECRETシークレットOAuth client secret (write tools only).MUSICBRAINZ_OAUTH_REFRESH_TOKENシークレットOAuth refresh token with tag/rating/collection scopes (enables the write tools).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| inc | array | いいえ | 含めるサブクエリ/リレーション。例:["releases","url-rels","tags"] |
| mbid | string | はい | エンティティの MBID(UUID) |
| view | enum | いいえ | レスポンス形式:"compact"(デフォルト)はレスポンス内の他の場所にすでに含まれるフィールドを省略し、"full" はこのサーバーが認識するすべてのフィールドを返します。compact はレスポンスから画像/アバター URL を除去し、"full" は MusicBrainz のペイロードを変更せずに返します。フィールド投影には対応していません。このサーバーには、重要な MusicBrainz フィールドを示す検証済みの記録がなく、独自に決めると呼び出し元が必要とするフィールドを落とすおそれがあるためです。compact | full |
| entity | enum | はい | 検索するエンティティの種類area | artist | event | genre | instrument | label | place | recording | release | release-group | series | work | url |
詳細
musicbrainz-mcp
オープンな音楽百科事典であるMusicBrainz向けの MCP サーバーです。Claude から MusicBrainz のメタデータ(アーティスト、リリース、録音、レーベル、作品など)にリアルタイムでアクセスできるほか、Cover Art Archive の画像も利用でき、さらに(任意で)自分のタグ、評価、コレクションの編集を送信できます。
AI(Claude Code)が開発・保守しています。ご自身の判断でご利用ください。
ツール
読み取り(認証情報は不要):
| ツール | 機能 |
|---|---|
musicbrainz_search | Lucene クエリで任意のエンティティタイプを検索し、ランキング順の一致結果と MBID を返します |
musicbrainz_lookup | MBID でエンティティを検索します。リンクされたデータを取得するための inc サブクエリも指定できます |
musicbrainz_browse | 別のエンティティにリンクされたすべてのエンティティを一覧表示します(例:あるアーティストの全リリース) |
musicbrainz_cover_art | リリース/リリースグループの Cover Art Archive 画像 URL |
musicbrainz_resolve | 貼り付けた musicbrainz.org の URL をエンティティに変換します |
musicbrainz_healthcheck | 接続状況と OAuth 書き込みが設定されているかを確認します |
書き込み(OAuth が必要。送信前に確認):
| ツール | 機能 |
|---|---|
musicbrainz_submit_tags | アカウント上のエンティティにユーザータグを適用します |
musicbrainz_submit_rating | エンティティの評価を 0~100 で設定します |
musicbrainz_modify_collection | コレクションへのエンティティの追加/削除を行います |
各書き込みツールは、ネットワーク呼び出しを行う前に確認を求めます。確認を参照してください。
上記の読み取りツールはすべて、musicbrainz_cover_art を除き、view を受け取ります。デフォルトは compact で、画像 URL とアバター URL を除外します。これは情報を差し引くルールなので、存在が分からないフィールドまで取り除くことはありません。view: "full" では MusicBrainz のペイロードを変更せずに返します。musicbrainz_cover_art が view を受け取らないのは意図的です。画像 URL こそがこのツールの回答であり、それを除外してもレスポンスは小さくならず、空になってしまうためです。
インストール
Node 製の MCP サーバー(stdio)です。MCP ホストから指定してください。
{
"mcpServers": {
"musicbrainz": {
"command": "npx",
"args": ["-y", "musicbrainz-mcp"]
}
}
}
読み取りはすぐに利用できます。MusicBrainz はクライアントに対し、リクエストは 1 秒あたり最大 1 回にするよう求めています。サーバーはこの制限内に収まるよう自動的にリクエストを調整するため、大規模なブラウズも自動的にペース調整されます。
書き込みツールを有効にする(任意)
- musicbrainz.org/account/applications でアプリケーションを登録します(リダイレクト URI は
urn:ietf:wg:oauth:2.0:oob)。 tag、rating、collectionスコープを指定して OAuth フローを完了し、リフレッシュトークンを取得します。- MCP ホストの環境変数(またはローカルの
.env)で次の値を指定します。
MUSICBRAINZ_OAUTH_CLIENT_ID=...
MUSICBRAINZ_OAUTH_CLIENT_SECRET=...
MUSICBRAINZ_OAUTH_REFRESH_TOKEN=...
確認
書き込みを行う際は、毎回まず確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)では、エンティティとタグ/評価/コレクションの変更内容を含むプロンプトが表示されます。表示できないクライアント(claude.ai、Claude Desktop)では、代わりに2段階のフローが使われます。最初の呼び出しでは何も送信されず、confirmation-required のプレビューが返されます。プレビューには、タグと評価の場合は正確な XML、コレクションの場合はメソッドとパスが含まれ、さらに confirmToken が返されます。同じ呼び出しをそのトークンとともに再度行った場合にのみ、送信されます。トークンは1回限り有効で、2回の呼び出しの間に引数を変更すると無効になります。
| 変数 | デフォルト | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | 確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)での書き込み動作です。ask-user:2段階で処理します。最初の呼び出しでは何も行わず、プレビューとトークンを返します。モデルは、トークンを使って再度呼び出す前に、チャットでユーザーの承認を得る必要があります。auto:同じく2段階で処理しますが、モデルはプレビューを確認した後、自らトークンを使用できます。refuse:このようなクライアントでは書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)には、MCP_CONFIRM_ELICITATION=off でない限り、常に実際のプロンプトが表示されます。認識されない値は refuse として扱われます。 |
MCP_CONFIRM_ELICITATION | on | off にすると確認プロンプトは表示されず、すべてのクライアントで MCP_CONFIRM_MODE の動作が適用されます。プロンプトを表示できると申告しているにもかかわらず、実際には表示しないクライアント(書き込みが停止したままになる opencode 2.0.x)には、この値を設定してください。それ以外の値は on として扱われ、stderr に警告が出力されます。 |
MCP_CONFIRM_TTL_SECONDS | 600 | トークンの有効期間です。 |
MCP_CONFIRM_SECRET | プロセスごとにランダム | 署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。 |
開発
npm install
npm run build
npm test
アーキテクチャについては CLAUDE.md を、固定された API の形式については docs/MUSICBRAINZ-API.md を参照してください。
ライセンス
MIT。MusicBrainz のデータは CC0 / CC BY-NC-SA のライセンスに基づいています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。