Marvel MCP サーバー
Marvel Developer API用のMCPサーバー。キャラクターやコミックデータとのインタラクションを可能にします。このプロジェクトの主な目的は、MCPサーバーを使用してAPIとインタラクションする方法を示すことです。
注:このMCPサーバーで使用されるすべてのデータは、 Marvel公式APIから取得され、Marvelが所有しています。このプロジェクトはMarvelとは一切関係ありません。
🔧 機能
- マーベルキャラクターの一覧:
nameStartsWith
、limit
、comics
、series
などのフィルターをサポートします。 - ID で Marvel キャラクターを取得: キャラクター
characterId
を使用して、任意のキャラクターの詳細情報を取得します。 - キャラクターのコミック取得:
format
、dateRange
などのさまざまなフィルターを使用して、特定のキャラクターが登場するコミックのリストを取得します。 - ツールベースの MCP 統合: このサーバーをモデル コンテキスト プロトコル (MCP) ツール (VS Code、Claude など) に登録します。
- 環境設定:
.env
ファイルを使用して、MARVEL_PUBLIC_KEY
、MARVEL_PRIVATE_KEY
、MARVEL_API_BASE
などの環境変数を管理します。
🧰 ツール
1. get_characters
🔍🦸♂️
- 説明: オプションのフィルターを使用して Marvel キャラクターを取得します。
- 入力:
name
(オプションの文字列): 完全なキャラクター名。nameStartsWith
(オプションの文字列): 指定された文字列で始まる名前の文字。modifiedSince
(オプションの文字列): この日付以降に変更された文字をフィルターする ISO 8601 日付文字列。comics
、series
、events
、stories
(オプションの文字列):関連エンティティでフィルタリングするためのIDのコンマ区切りリスト。orderBy
(オプションの文字列):name
や-modified
など、結果を並べ替えるフィールド。limit
(オプションの数値): 返される結果の最大数 (1~100)。offset
(オプションの数値): ページ区切りでスキップする結果の数。
- 戻り値: 一致する文字を含むJSONレスポンス。詳細は
src/schemas.ts
のCharacterDataWrapperSchema
参照してください。
2. get_character_by_id
🆔🧑🎤
- 説明: 一意の ID で Marvel キャラクターを取得します。
- 入力:
characterId
(数値): キャラクターの一意の ID。
- 戻り値:キャラクターの詳細を含むJSONレスポンス。詳細は
src/schemas.ts
のCharacterDataWrapperSchema
を参照してください。
3. get_comics_for_character
📚🎭
- 説明: オプションのフィルターを使用して、特定のキャラクターが登場するコミックを取得します。
- 入力:
characterId
(数値): キャラクターの一意の ID。- オプションのフィルター:
format
、formatType
(文字列):コミック形式(例:comic
、hardcover
)でフィルタリングします。noVariants
、hasDigitalIssue
(ブール値): バリアントを除外するか、デジタル版のみを含めるかを指定するフラグ。dateDescriptor
(文字列):thisWeek
、nextWeek
などの定義済みの日付範囲。dateRange
(文字列):YYYY-MM-DD,YYYY-MM-DD
形式のカスタム日付範囲。title
、titleStartsWith
(文字列): タイトルまたはタイトルプレフィックスでフィルタリングします。startYear
、issueNumber
、digitalId
(数値): 数値フィルター。diamondCode
、upc
、isbn
、ean
、issn
(文字列): 識別子フィルター。creators
、series
、events
、stories
、sharedAppearances
、collaborators
(文字列): 関連するエンティティ ID のコンマ区切りリスト。orderBy
(文字列):title
や-modified
など、結果を並べ替えるフィールド。limit
、offset
(数値):ページ区切りオプション。
- 戻り値:指定されたキャラクターが登場するコミックを含むJSONレスポンス。詳細は
src/schemas.ts
のComicDataWrapperSchema
を参照してください。
4. get_comics
📖🕵️♂️
- 説明: オプションのフィルターを使用して、マーベル コミックのリストを取得します。
- 入力:
format
(オプションの文字列): 発行形式 (例:comic
、digital comic
、hardcover
) でフィルターします。formatType
(オプションの文字列): 発行形式の種類 (comic
またはcollection
) でフィルタリングします。noVariants
(オプションのブール値): 結果セットからバリエーション (代替カバー、二次印刷、ディレクターズカットなど) を除外します。dateDescriptor
(オプションの文字列): 定義済みの日付範囲 (lastWeek
、thisWeek
、nextWeek
、thisMonth
) 内のコミックを返します。dateRange
(オプションの文字列): 指定した日付範囲内のコミックを返します。日付はYYYY-MM-DD,YYYY-MM-DD
の形式で指定する必要があります。title
(オプションの文字列): 入力と一致するタイトルを持つシリーズの問題のみを返します。titleStartsWith
(オプションの文字列): 入力で始まるタイトルのシリーズの問題のみを返します。startYear
(オプションの数値): 入力と一致する開始年を持つシリーズの問題のみを返します。issueNumber
(オプションの数値): 入力と一致する問題番号を持つシリーズの問題のみを返します。diamondCode
、digitalId
、upc
、isbn
、ean
、issn
(オプションの文字列):さまざまな識別子でフィルタリングします。hasDigitalIssue
(オプションのブール値): デジタルで利用可能な結果のみを含めます。modifiedSince
(オプションの文字列): 指定された日付以降に変更されたコミックのみを返します (ISO 8601 形式)。creators
、characters
、series
、events
、stories
、sharedAppearances
、collaborators
(オプションの文字列): 関連エンティティでフィルタリングする ID のコンマ区切りリスト。orderBy
(オプションの文字列): 結果セットをフィールドで並べ替えます。降順で並べ替えるには、値に「-」を追加します(例:title
、-modified
)。limit
(オプションの数値): 結果セットを指定されたリソース数に制限します (デフォルト: 20、最大: 100)。offset
(オプションの数値): 結果セット内の指定された数のリソースをスキップします。
- 戻り値:一致するコミックを含むJSONレスポンス。詳細は
src/schemas.ts
のComicDataWrapperSchema
を参照してください。
5. get_comic_by_id
🆔📘
- 説明: 一意の ID で単一の Marvel コミックを取得します。
- 入力:
comicId
(数値): コミックの一意の ID。
- 戻り値:コミックの詳細を含むJSONレスポンス。詳細は
src/schemas.ts
のComicDataWrapperSchema
を参照してください。
6. get_characters_for_comic
🦸♀️📖
- 説明: 特定のコミックに登場するマーベルキャラクターを取得します。
- 入力:
comicId
(数値): コミックの一意の ID。- オプションのフィルター:
name
(オプションの文字列): フルネームで文字をフィルタリングします。nameStartsWith
(オプションの文字列): 指定された文字列で始まる名前の文字をフィルターします。modifiedSince
(オプションの文字列): この日付以降に変更された文字をフィルターする ISO 8601 日付文字列。series
、events
、stories
(オプションの文字列): フィルタリングする関連エンティティ ID のコンマ区切りリスト。orderBy
(オプションの文字列):name
や-modified
など、結果を並べ替えるフィールド。limit
(オプションの数値): 返される結果の最大数 (1~100)。offset
(オプションの数値): ページ区切りでスキップする結果の数。
- 戻り値:指定されたコミックに登場するキャラクターを含むJSONレスポンス。詳細は
src/schemas.ts
のCharacterDataWrapperSchema
参照してください。
🛠️ セットアップ
Marvel Developer APIアカウントにサインアップして、公開 API キーと秘密 API キーを取得します。
MCP ホストで直接実行する場合は、 「Claude Desktop での使用」または「GitHub Copilot での使用」セクションに進んでください。
MCP Inspector を使用してサーバーをローカルで実行する
MCP Inspector をローカルで実行してサーバーをテストする場合は、次の手順に従います。
- このリポジトリをクローンします:
.env.template
の名前を.env
に変更します。- Marvel API の公開キーと秘密キーを
.env
ファイルに追加します。 - 必要な依存関係をインストールし、プロジェクトをビルドします。
- (オプション) MCP Inspector を使用してサーバーを試すには、次のコマンドを実行します。ブラウザのコンソールに表示されているMCP InspectorのURLにアクセスします。Arguments
Arguments``dist/index.js
に変更し、Connect
を選択します。List Tools
を選択して、利用可能なツールを確認します。
MCPホストの構成
Claude Desktop で使用する
claude_desktop_config.json
に以下を追加します。
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Marvel MCP Server を自動的にインストールするには:
GitHub Copilot と併用する
注: Claude Desktop ですでに MCP サーバーが有効になっている場合は、VS Code 設定に
chat.mcp.discovery.enabled: true
を追加すると、既存の MCP サーバー リストが検出されます。
次の内容をsettings.json
ファイルに追加します(特定のリポジトリ用に必要な場合は.vscode/mcp.json
ファイルに追加することもできます)。
GitHub Copilotのツールの使用
- mcp サーバーが検出可能になったので、GitHub Copilot を開いて、
Agent
モード (Ask
やEdits
はない) を選択します。 - Copilot チャット テキスト フィールドの「更新」ボタンを選択して、サーバー リストを更新します。
- 「🛠️」ボタンを選択すると、このリポジトリのツールも含め、使用可能なすべてのツールが表示されます。
- チャットに、ツールの 1 つが自然に呼び出されるような質問を投稿します。たとえば、次のようになります。
注: 「申し訳ありません。応答は Responsible AI Service によってフィルター処理されました。」と表示された場合は、もう一度実行するか、プロンプトを言い換えてください。
Related MCP Servers
- AsecurityAlicenseAqualityMCP Server for the Mapbox API.Last updated -512TypeScriptMIT License
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -24TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -23TypeScriptMIT License
- -securityAlicense-qualityMCP Server for the Perplexity API.Last updated -58PythonMIT License