mcpField
D
Discogs MCP Server

Discogs MCP Server

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

Discogs MCP Server について

Discogs MCP Server は FastMCP で構築された MCP サーバーで、Discogs API に接続して音楽カタログの操作や検索を行います。MCP クライアントから Discogs データを照会・管理したい利用者向けで、npx、ローカルの Node、Docker で実行できます。

主な機能

  1. 01Discogs API による音楽カタログ操作
  2. 02Discogs データの検索機能
  3. 03stdio と HTTP ストリーミングの転送モード
  4. 04Discogs コレクションの編集機能
  5. 05初期設定で1ページ5件の結果返却

活用シーン

  1. 01Claude Desktop からアルバムやコレクション情報を照会
  2. 02LibreChat や LM Studio で Discogs ツールを有効化
  3. 03MCP Inspector によるローカルサーバーのテスト

MCP 対応

本プロジェクトは MCP サーバーであり、Discogs 関連のツールを MCP クライアントに公開します。ツール一覧は TOOLS.md にあります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"discogs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

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

パッケージ
ocibuild

ツール

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

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

詳細

ライセンス GitHub リリース GitHub Actions ワークフローのステータス NPM ダウンロード数 スポンサー

Discogs MCP サーバー

Discogs API 用の MCP サーバーです。音楽カタログの操作や検索機能などを利用できます。

クイックスタート

Claude デスクトップアプリでこの MCP サーバーをすぐに使い始めたいだけで、開発やサーバーの自分での実行に関心がない場合は、Node.js がインストールされており、Discogs の個人用アクセストークンを用意できていることを確認して、Claude の設定セクションに進んでください。そのセクションの NPX 方式を使用します。

目次

謝辞

この MCP サーバーは、MCP サーバー構築用の TypeScript フレームワークである FastMCP を使用して構築されています。MCP と MCP サーバーの使用方法について詳しくは、FastMCP ドキュメントおよび公式 MCP ドキュメントを参照してください。

利用可能なツール

利用可能なツールの一覧はこちらをご覧ください:TOOLS.md

注意事項

  • Discogs API ドキュメントは完全ではなく、一部のエンドポイントは十分に文書化されていないか、内容に不整合がある場合があります。
  • API エンドポイントとレスポンス形式が非常に多いため、考えられるすべてのレスポンスについて型安全性を検証することはできません。型に関する問題に気付いた場合は報告してください。
  • この MCP サーバーでは、Discogs コレクション内のデータを編集できます。慎重に使用し、実行前に操作内容を確認してください。
  • Discogs API の per_page のデフォルト値は 50 ですが、一部のクライアントでは処理に多すぎるデータとなる場合があります。そのため、このプロジェクトでは discogs.config.defaultPerPage の値を 5 に設定しています。プロンプトでより多くのデータを要求できますが、大きなレスポンスの処理に苦労するクライアントもあることに注意してください。

前提条件

  • Node.js(Node.js 20.x.x でテスト済みですが、18.x.x でも動作するはずです)
    • node --version で Node.js のバージョンを確認してください。
  • Docker(任意。Node や依存関係を扱わずに、ローカルの Docker イメージを実行する場合に使用します)

セットアップ

  1. リポジトリをクローンします
  2. .env.example を基に、ルートディレクトリに .env ファイルを作成します
  3. .env に次の必須環境変数を設定します:
    • DISCOGS_PERSONAL_ACCESS_TOKEN:Discogs の個人用アクセストークン

Discogs の個人用アクセストークンを取得するには、Discogs Settings > Developers ページに移動し、トークンを確認するか、新しいトークンを生成します。トークンを共有しないでください。OAuth のサポートは今後のリリースで追加される予定です。

.env.example にあるその他の環境変数は任意で、適切なデフォルト値が設定されています。特別な要件がない限り、設定する必要はありません。

  • SERVER_HOST:サーバーをバインドするホストアドレス(デフォルト:0.0.0.0)。コンテナ/マシンの外部からの接続を許可するには 0.0.0.0 に設定し、ローカルホストのみに制限するには 127.0.0.1 に設定します。

サーバーをローカルで実行する

オプション 1:ローカル開発
  1. 依存関係をインストールします:

    pnpm install
    
  2. 利用可能なコマンド:

    • pnpm run dev:ホットリロードを有効にして開発サーバーを起動します
    • pnpm run dev:stream:HTTP ストリーミングモードで、ホットリロードを有効にして開発サーバーを起動します
    • pnpm run build:本番用ビルドを作成します
    • pnpm run start:本番用ビルドを実行します
    • pnpm run inspect:MCP Inspector を実行します(検査のセクションを参照)
    • pnpm run format:コードのフォーマットをチェックします(prettier)
    • pnpm run lint:リンターを実行します(eslint)
    • pnpm run test:vitest を実行します
    • pnpm run test:coverage:vitest v8 のカバレッジを実行します
    • pnpm run version:check:package.json のバージョンと src/version.ts が一致していることを確認します
オプション 2:Docker
  1. Docker イメージをビルドします:

    docker build -t discogs-mcp-server:latest .
    
  2. コンテナを実行します:

    docker run --env-file .env discogs-mcp-server:latest
    

    HTTP ストリーミングトランスポートモードの場合:

    # The port should match what is in your .env file
    # By default, the server listens on 0.0.0.0, allowing connections from outside the container
    docker run --env-file .env -p 3001:3001 discogs-mcp-server:latest stream
    

検査

ローカルの MCP サーバーをテストするには、MCP Inspector を実行します:

pnpm run inspect

これにより、http://127.0.0.1:6274 で MCP Inspector が起動します。ブラウザーでこの URL にアクセスすると、ローカルの MCP サーバーを操作できます。

MCP Inspector の詳細については、公式ドキュメントをご覧ください。

MCP クライアント

今後、クライアントの設定例を追加する予定です。特定のクライアント向けの設定を希望する場合は、新しい issue を作成してリクエストするか、この README を編集するプルリクエストを作成してください。

Claude Desktop の設定

Claude > Settings > Developer > Edit Config で claude_desktop_config.json を見つけ、使用したいオプションに応じて、次のいずれか1つだけを追加します:

NPX

npm レジストリから直接実行します。

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "-y",
        "discogs-mcp-server"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
ローカル Node

この方法を使用する前に、依存関係をインストールしておく必要があります(pnpm install)。

{
  "mcpServers": {
    "discogs": {
      "command": "npx",
      "args": [
        "tsx",
        "/PATH/TO/YOUR/PROJECT/FOLDER/src/index.ts"
      ],
      "env": {
        "DISCOGS_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
Docker

この方法を使用する前に、Docker イメージをビルドしておく必要があります。

{
  "mcpServers": {
    "discogs": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/PATH/TO/YOUR/PROJECT/FOLDER/.env",
        "discogs-mcp-server:latest"
      ]
    }
  }
}

ローカルコードを変更した場合は、変更を反映するために Claude を再起動する必要があります。また、MCP ツールの実行にはユーザーの介在が必要なため、新しいツールにアクセスするたびに Claude が許可を求めます。通常は、チャットごとに各ツールにつき一度だけ許可すれば十分です。無料版を使用している場合、チャットが長くなると、1つのチャット内で扱えるコンテキスト量が Claude によって制限されるため、ツールの実行時にエラーが頻繁に発生することがあります。

LibreChat

librechat.yaml 設定ファイルの mcpServers セクションに、次の内容を追加します:

discogs:
  type: stdio
  command: npx
  args: ["-y", "discogs-mcp-server"]
  env:
    DISCOGS_PERSONAL_ACCESS_TOKEN: YOUR_TOKEN_GOES_HERE
LM Studio

チャットの Settings を開きます。Program タブに、デフォルトで Install が選択されたドロップダウンがあります。Edit mcp.json を選択し、mcpServers セクションに次の内容を追加します:

"discogs": {
  "command": "npx",
  "args": [
    "-y",
    "discogs-mcp-server"
  ],
  "env": {
    "DISCOGS_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_GOES_HERE"
  }
}

保存すると、Program タブにサーバーを有効にする mcp/discogs トグルが表示されます。各チャットボックスには Integrations メニューがあり、そこで MCP サーバーを有効にすることもできます。

TODO

  • OAuth のサポート
  • 不足しているツール:
    • 在庫のアップロード

ライセンス

この MCP サーバーは MIT License の下でライセンスされています。MIT License の条項に従う限り、このソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリの LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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