mcpField
M
musicbrainz-mcp

musicbrainz-mcp

ローカル
github.com/chrischallゲーム・エンタメ01 日前に更新

musicbrainz-mcp について

MusicBrainzのメタデータとCover Art Archiveの画像URLをクライアントに提供するNode製MCPサーバーです。OAuthを設定するとタグ、評価、コレクションを編集でき、書き込みの前に確認を行います。

主な機能

  1. 01Luceneクエリによる音楽エンティティ検索
  2. 02MBIDによるエンティティ参照
  3. 03関連エンティティの参照
  4. 04カバーアート画像URLの取得
  5. 05タグ、評価、コレクションの編集

活用シーン

  1. 01録音、アーティスト、リリース、レーベルの検索
  2. 02アーティストに関連するリリースの確認
  3. 03リリースのアートワークURL取得
  4. 04個人のタグ、評価、コレクションの更新

MCP 対応

MusicBrainzの検索、参照、関連情報の閲覧、カバーアート取得、任意のOAuth書き込みツールをMCPクライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-musicbrainz": {
"command": "npx",
"args": [
"-y",
"musicbrainz-mcp"
],
"env": {
"MUSICBRAINZ_USER_AGENT": "<MUSICBRAINZ_USER_AGENT>",
"MUSICBRAINZ_OAUTH_CLIENT_ID": "<MUSICBRAINZ_OAUTH_CLIENT_ID>",
"MUSICBRAINZ_OAUTH_CLIENT_SECRET": "<MUSICBRAINZ_OAUTH_CLIENT_SECRET>",
"MUSICBRAINZ_OAUTH_REFRESH_TOKEN": "<MUSICBRAINZ_OAUTH_REFRESH_TOKEN>"
}
}
}
}
起動コマンドnpx -y musicbrainz-mcp
設定が必要な環境変数
MUSICBRAINZ_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmusicbrainz-mcp1.2.7

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
incarrayいいえ含めるサブクエリ/リレーション。例:["releases","url-rels","tags"]
mbidstringはいエンティティの MBID(UUID)
viewenumいいえレスポンス形式:"compact"(デフォルト)はレスポンス内の他の場所にすでに含まれるフィールドを省略し、"full" はこのサーバーが認識するすべてのフィールドを返します。compact はレスポンスから画像/アバター URL を除去し、"full" は MusicBrainz のペイロードを変更せずに返します。フィールド投影には対応していません。このサーバーには、重要な MusicBrainz フィールドを示す検証済みの記録がなく、独自に決めると呼び出し元が必要とするフィールドを落とすおそれがあるためです。compact | full
entityenumはい検索するエンティティの種類area | artist | event | genre | instrument | label | place | recording | release | release-group | series | work | url

詳細

musicbrainz-mcp

CI npm license

オープンな音楽百科事典であるMusicBrainz向けの MCP サーバーです。Claude から MusicBrainz のメタデータ(アーティスト、リリース、録音、レーベル、作品など)にリアルタイムでアクセスできるほか、Cover Art Archive の画像も利用でき、さらに(任意で)自分のタグ、評価、コレクションの編集を送信できます。

AI(Claude Code)が開発・保守しています。ご自身の判断でご利用ください。

ツール

読み取り(認証情報は不要):

ツール機能
musicbrainz_searchLucene クエリで任意のエンティティタイプを検索し、ランキング順の一致結果と MBID を返します
musicbrainz_lookupMBID でエンティティを検索します。リンクされたデータを取得するための 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 回にするよう求めています。サーバーはこの制限内に収まるよう自動的にリクエストを調整するため、大規模なブラウズも自動的にペース調整されます。

書き込みツールを有効にする(任意)

  1. musicbrainz.org/account/applications でアプリケーションを登録します(リダイレクト URI は urn:ietf:wg:oauth:2.0:oob)。
  2. tag、rating、collection スコープを指定して OAuth フローを完了し、リフレッシュトークンを取得します。
  3. 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_MODEask-user確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)での書き込み動作です。ask-user:2段階で処理します。最初の呼び出しでは何も行わず、プレビューとトークンを返します。モデルは、トークンを使って再度呼び出す前に、チャットでユーザーの承認を得る必要があります。auto:同じく2段階で処理しますが、モデルはプレビューを確認した後、自らトークンを使用できます。refuse:このようなクライアントでは書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)には、MCP_CONFIRM_ELICITATION=off でない限り、常に実際のプロンプトが表示されます。認識されない値は refuse として扱われます。
MCP_CONFIRM_ELICITATIONonoff にすると確認プロンプトは表示されず、すべてのクライアントで MCP_CONFIRM_MODE の動作が適用されます。プロンプトを表示できると申告しているにもかかわらず、実際には表示しないクライアント(書き込みが停止したままになる opencode 2.0.x)には、この値を設定してください。それ以外の値は on として扱われ、stderr に警告が出力されます。
MCP_CONFIRM_TTL_SECONDS600トークンの有効期間です。
MCP_CONFIRM_SECRETプロセスごとにランダム署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。

開発

npm install
npm run build
npm test

アーキテクチャについては CLAUDE.md を、固定された API の形式については docs/MUSICBRAINZ-API.md を参照してください。

ライセンス

MIT。MusicBrainz のデータは CC0 / CC BY-NC-SA のライセンスに基づいています。

コメント

MCP は初めてですか?

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

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