返回市场
奇迹-MCP

奇迹-MCP

作者:DanWahlin14 星标更新:2025-11-19

项目介绍

<div align="center"> <img src="./images/captain-america.jpg" alt="" align="center" height="96" />

Marvel MCP 服务器

在 GitHub Codespaces 中打开项目 Node 版本 smithery 徽章 许可证

功能工具设置配置 MCP 主机

</div>

注意:Marvel 最近退役了他们的 API,因此它不再可用。我保留这个仓库是为了历史原因,因为这种方法对于 MCP 服务器仍然相关。如果您想看到类似的示例,请查看我的 DC Comics MCP 服务器

用于 Marvel 开发者 API 的 MCP 服务器,使与角色和漫画数据进行交互成为可能。该项目的主要目标是展示如何使用 MCP 服务器与 API 进行交互。

注意:此 MCP 服务器使用的所有数据都从 官方 Marvel API 获取,并由 Marvel 所有。此项目与 Marvel 没有任何关联。

<a name="features"></a>

🔧 功能

  • 列出 Marvel 角色:支持过滤器如 nameStartsWithlimitcomicsseries 等。
  • 通过 ID 获取 Marvel 角色:使用 characterId 获取任何角色的详细信息。
  • 获取特定角色的漫画:获取特定角色出现的漫画列表,带有各种过滤器如 formatdateRange 等。
  • 丰富的内容显示:当您询问角色或漫画时,服务器会:
    • 显示关于角色和漫画的详细信息,包括图像、名称、描述等。
    • 创建一个 HTML 页面(marvel-content.html),其中包含所有内容。
    • 尝试在默认浏览器中打开新创建的 HTML 页面,以增强观看体验。
  • 基于工具的 MCP 集成:将此服务器注册到模型上下文协议(MCP)工具(VS Code、Claude 等)。
  • 环境配置:使用 .env 文件管理环境变量如 MARVEL_PUBLIC_KEYMARVEL_PRIVATE_KEYMARVEL_API_BASE

<a name="tools"></a>

🧰 工具

1. get_characters 🔍🦸‍♂️

  • 描述:获取 Marvel 角色,可选过滤器。
  • 输入
    • name(可选字符串):完整角色名称。
    • nameStartsWith(可选字符串):名称以指定字符串开头的角色。
    • modifiedSince(可选字符串):自该日期以来修改过的角色的 ISO 8601 日期字符串。
    • comicsserieseventsstories(可选字符串):按相关实体过滤的逗号分隔的 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。
    • 可选过滤器:
      • formatformatType(字符串):按漫画格式过滤(例如,comichardcover)。
      • noVariantshasDigitalIssue(布尔值):标志以排除变体或仅包括数字版。
      • dateDescriptor(字符串):预定义的日期范围,如 thisWeeknextWeek
      • dateRange(字符串):自定义日期范围,格式为 YYYY-MM-DD,YYYY-MM-DD
      • titletitleStartsWith(字符串):按标题或标题前缀过滤。
      • startYearissueNumberdigitalId(数字):数值过滤器。
      • diamondCodeupcisbneanissn(字符串):标识符过滤器。
      • creatorsserieseventsstoriessharedAppearancescollaborators(字符串):按相关实体 ID 过滤的逗号分隔列表。
      • orderBy(字符串):结果排序字段,例如 title-modified
      • limitoffset(数字):分页选项。
  • 返回:特定角色出现的漫画的 JSON 响应。详情见 src/schemas.ts 中的 ComicDataWrapperSchema

4. get_comics 📖🕵️‍♂️

  • 描述:获取 Marvel 漫画列表,可选过滤器。
  • 输入
    • format(可选字符串):按问题格式过滤(例如,comicdigital comichardcover)。
    • formatType(可选字符串):按问题格式类型过滤(comiccollection)。
    • noVariants(可选布尔值):从结果集中排除变体(替代封面、二次印刷、导演剪辑等)。
    • dateDescriptor(可选字符串):返回预定义日期范围内的漫画(lastWeekthisWeeknextWeekthisMonth)。
    • dateRange(可选字符串):返回自定义日期范围内的漫画。日期必须指定为 YYYY-MM-DD,YYYY-MM-DD
    • title(可选字符串):返回系列标题匹配输入的问题。
    • titleStartsWith(可选字符串):返回系列标题以输入开头的问题。
    • startYear(可选数字):返回系列开始年份匹配输入的问题。
    • issueNumber(可选数字):返回系列问题编号匹配输入的问题。
    • diamondCodedigitalIdupcisbneanissn(可选字符串):按各种标识符过滤。
    • hasDigitalIssue(可选布尔值):仅包括数字版可用的结果。
    • modifiedSince(可选字符串):返回自指定日期以来已修改的漫画(ISO 8601 格式)。
    • creatorscharactersserieseventsstoriessharedAppearancescollaborators(可选字符串):按相关实体 ID 过滤的逗号分隔列表。
    • orderBy(可选字符串):按字段或字段对结果集进行排序。向值添加“-”以按降序排序(例如,title-modified)。
    • limit(可选数字):限制结果集中的资源数量(默认:20,最大:1 00)。
    • 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 🦸‍♀️📖

  • 描述:获取出现在特定漫画中的 Marvel 角色。
  • 输入
    • comicId(数字):漫画的唯一 ID。
    • 可选过滤器:
      • name(可选字符串):按完整名称过滤角色。
      • nameStartsWith(可选字符串):按名称以指定字符串开头的角色过滤。
      • modifiedSince(可选字符串):自该日期以来修改过的角色的 ISO 8601 日期字符串。
      • serieseventsstories(可选字符串):按相关实体 ID 过滤的逗号分隔列表。
      • orderBy(可选字符串):结果排序字段,例如 name-modified
      • limit(可选数字):返回的最大结果数(1–100)。
      • offset(可选数字):跳过的结果数,用于分页。
  • 返回:出现在特定漫画中的角色的 JSON 响应。详情见 src/schemas.ts 中的 CharacterDataWrapperSchema

<a name="setup"></a>

🛠️ 设置

注册一个 Marvel 开发者 API 账户并获取您的公共和私有 API 密钥。

如果您想直接在 MCP 主机上运行它,请跳转到 与 Claude Desktop 一起使用与 GitHub Copilot 一起使用 部分。

使用 MCP Inspector 在本地运行服务器

如果您想使用 MCP Inspector 在本地测试服务器,请按照以下步骤操作:

  1. 克隆此存储库:

    git clone https://github.com/DanWahlin/marvel-mcp
    
  2. .env.template 重命名为 .env

  3. 将您的 Marvel API 公共和私有密钥添加到 .env 文件中。

    MARVEL_PUBLIC_KEY=YOUR_PUBLIC_KEY
    MARVEL_PRIVATE_KEY=YOUR_PRIVATE_KEY
    MARVEL_API_BASE=https://gateway.marvel.com/v1/public
    
  4. 安装所需的依赖项并构建项目。

    npm install
    npm run build
    
  5. (可选)要使用 MCP Inspector 测试服务器,请运行以下命令:

    # 启动 MCP Inspector
    npx @modelcontextprotocol/inspector node dist/index.js
    

    在控制台中访问 MCP Inspector URL 并在浏览器中打开。将 Arguments 更改为 dist/index.js 并选择 Connect。选择 List Tools 查看可用工具。

<a name="configuring-an-mcp-host"></a>

配置 MCP 主机

与 Claude Desktop 一起使用

在您的 claude_desktop_config.json 中添加以下内容:

{
  "mcpServers": {
    "marvel-mcp": {
      "type": "stdio",
      "command": "npx",
      // "command": "node",
      "args": [
        "-y",
        "@codewithdan/marvel-mcp"
        // "/PATH/TO/marvel-mcp/dist/index.js"
      ],
      "env": {
        "MARVEL_PUBLIC_KEY": "YOUR_PUBLIC_KEY",
        "MARVEL_PRIVATE_KEY": "YOUR_PRIVATE_KEY",
        "MARVEL_API_BASE": "https://gateway.marvel.com/v1/public"
      }
    }
  }
}

通过 Smithery 安装

要通过 Smithery 自动安装 Marvel MCP Server for Claude Desktop:

npx -y @smithery/cli install @DanWahlin/marvel-mcp --client claude

与 GitHub Copilot 一起使用

注意:如果您已经在 Claude Desktop 上启用了 MCP 服务器,请在 VS Code 设置中添加 chat.mcp.discovery.enabled: true,它将发现现有的 MCP 服务器列表。

在您的用户设置文件中添加以下内容,或者如果只想在此存储库中使用,请将其添加到 .vscode/mcp.json 文件中(您可以使用 MCP: 添加服务器从命令面板中选择全局或工作区):

"mcp": {
  "inputs": [
      {
          "type": "promptString",
          "id": "marvel-public-api-key",
          "description": "Marvel 公共 API 密钥",
          "password": true
      },
      {
          "type": "promptString",
          "id": "marvel-private-api-key",
          "description": "Marvel 私有 API 密钥",
          "password": true
      }
  ],
  "servers": {
    "marvel-mcp": {
        "command": "npx",
        // "command": "node",
        "args": [
            "-y",
            "@codewithdan/marvel-mcp"
            // "/PATH/TO/marvel-mcp/dist/index.js"
        ],
        "env": {
            "MARVEL_PUBLIC_KEY": "${input:marvel-public-api-key}",
            "MARVEL_PRIVATE_KEY": "${input:marvel-private-api-key}",
            "MARVEL_API_BASE": "https://gateway.marvel.com/v1/public"
        }
    }
  }
}

在 GitHub Copilot 中使用工具

  1. 现在 MCP 服务器可以被发现,打开 GitHub Copilot 并选择 Agent 模式(而不是 AskEdits)。

  2. 选择 Copilot 聊天文本框中的“刷新”按钮以刷新服务器列表。

  3. 选择“🛠️”按钮以查看所有可能的工具,包括来自此存储库的工具。

  4. 在聊天中提出一个问题,这自然会调用其中一个工具,例如:

    列出 10 个 Marvel 角色。
    
    狼人出现在哪些漫画中?
    
    给我一些关于 Marvel 宇宙中反派的信息。
    
    哪些角色出现在《复仇者》漫画中?
    
    哪些角色出现在《Hedge Knight II: Sworn Sword (2007)》漫画中?
    
    列出 10 个出现在《蚁人》漫画中的角色。
    

    注意:如果您看到“对不起,响应被负责任的人工智能服务过滤”,请尝试重新运行或重新表述提示。

  5. 额外奖励:当您询问角色或漫画时,服务器会自动在项目根目录中创建一个 marvel-content.html 文件,其中包含一个精美设计的页面,包含所有角色/漫画信息和图像,然后在浏览器中打开!

MseeP.ai 安全评估徽章