Skip to main content
Glama

Marvel MCP Server

by DanWahlin

使用 Azure Functions 的 Marvel MCP 服务器

节点版本

功能工具设置配置 MCP 主机

适用于Marvel 开发者 API的 MCP 服务器,支持与角色和漫画数据的交互。该项目的主要目标是展示如何使用 Azure Functions 托管的 MCP 服务器与 API 交互。

注意:本 MCP 服务器使用的所有数据均取自Marvel 官方 API ,并归 Marvel 所有。本项目与 Marvel 没有任何关联。

🔧 功能

  • 列出漫威人物:支持nameStartsWithlimitcomicsseries等过滤器。
  • 通过 ID 获取 Marvel 角色:使用characterId获取任何角色的详细信息。
  • 获取特定角色的漫画:获取具有特定角色的漫画列表,并使用formatdateRange等各种过滤器。
  • 基于工具的 MCP 集成:使用模型上下文协议 (MCP) 工具(VS Code、Claude 等)注册此服务器。
  • 环境配置:使用.env文件来管理环境变量,如MARVEL_PUBLIC_KEYMARVEL_PRIVATE_KEYMARVEL_API_BASE

🧰 工具

1. get_characters

  • 描述:使用可选过滤器获取 Marvel 角色。
  • 输入
    • name (可选字符串):完整的角色名称。
    • nameStartsWith (可选字符串):名称以指定字符串开头的字符。
    • modifiedSince (可选字符串):ISO 8601 日期字符串,用于过滤自该日期以来修改的字符。
    • comicsserieseventsstories (可选字符串):以逗号分隔的 ID 列表,用于按相关实体进行过滤。
    • orderBy (可选字符串):对结果进行排序的字段,例如name-modified
    • limit (可选数字):返回的最大结果数(1-100)。
    • offset (可选数字):分页时要跳过的结果数。
  • 返回:包含匹配字符的 JSON 响应。详情请参阅src/schemas.ts中的CharacterDataWrapperSchema

2. 通过 id 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 📖🕵️‍♂️

  • 描述:使用可选过滤器获取漫威漫画列表。
  • 输入
    • 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,最大值: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 日期字符串,用于过滤自该日期以来修改的字符。
      • serieseventsstories (可选字符串):要过滤的相关实体 ID 的逗号分隔列表。
      • orderBy (可选字符串):对结果进行排序的字段,例如name-modified
      • limit (可选数字):返回的最大结果数(1-100)。
      • offset (可选数字):分页时要跳过的结果数。
  • 返回:包含指定漫画中出现的角色的 JSON 响应。详情请参阅src/schemas.ts中的CharacterDataWrapperSchema

🛠️ 设置

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

如果您想直接在 MCP 主机中使用 MCP 服务器,请跳至与 GitHub Copilot 一起使用与 Claude Desktop 一起使用部分。

本地运行服务器

  1. 需要 Azure 存储模拟器。有两个选项:
    • 在 Docker 容器中启动 Azurite:
      docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \ mcr.microsoft.com/azure-storage/azurite
    • 您可以使用Azurite VS Code 扩展。安装扩展后,通过 VS Code 命令面板运行Azurite: Start
  2. 克隆此存储库:
    git clone https://github.com/DanWahlin/marvel-mcp-azure-functions
  3. .env.template重命名为.env
  4. 将您的 Marvel API 公钥和私钥添加到.env文件。
    MARVEL_PUBLIC_KEY=YOUR_PUBLIC_KEY MARVEL_PRIVATE_KEY=YOUR_PRIVATE_KEY MARVEL_API_BASE=https://gateway.marvel.com/v1/public
  5. 安装所需的依赖项并构建项目。
    npm install npm run build
  6. 在本地启动 Azure Functions 主机:
    npm start
  7. (可选)要使用 MCP Inspector 试用 MCP 服务器,请运行以下命令:
    # Start the MCP Inspector npx @modelcontextprotocol/inspector node build/index.js
    在浏览器的控制台中访问显示的 MCP Inspector URL:
    • Transport Type更改为SSE
    • 输入http://0.0.0.0:7071/runtime/webhooks/mcp/sse作为 URL。
    • 选择Connect按钮。
    • 选择List Tools
    • 选择一个工具来尝试一下。

配置 MCP 主机

与 Claude Desktop 一起使用

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

{ "mcpServers": { "marvel-mcp": { "type": "sse", "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse" } } }

在 VS Code 中与 GitHub Copilot 一起使用

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

如果您想要将 MCP 服务器与特定的 repo 关联,请创建包含以下内容的.vscode/mcp.json文件:

{ "inputs": [], "servers": { "marvel-mcp": { "type": "sse", "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse" } } }

如果您想要将 MCP 服务器与所有存储库关联,请将以下内容添加到您的 VS Code 用户设置 JSON 中:

"mcp": { "servers": { "marvel-mcp": { "type": "sse", "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse" } } }

部署到 Azure 以进行远程 MCP

运行此azd命令来配置函数应用程序及其所需的 Azure 资源,并部署代码:

azd up

您可以选择加入示例中使用的 VNet。为此,请在azd up之前执行此操作

azd env set VNET_ENABLED true

此外, API 管理可用于改进 MCP 服务器的安全性和策略,而App Service 内置身份验证可用于设置您最喜欢的 OAuth 提供程序(包括 Entra)。

使用 GitHub Copilot 中的工具

  1. 现在 mcp 服务器已可发现,打开 GitHub Copilot 并选择Agent模式(而不是AskEdit )。
  2. 选择 Copilot 聊天文本字段中的“刷新”按钮来刷新服务器列表。
  3. 选择“🛠️”按钮查看所有可能的工具,包括来自此 repo 的工具。
  4. 在聊天中提出一个自然会调用其中一种工具的问题,例如:
    List 10 marvel characters. Include images. What comics is Wolverine in? Which characters appear in the Avengers comics? What characters are in the Hedge Knight II: Sworn Sword (2007) comic?

    注意:如果您看到“抱歉,响应已被负责任的 AI 服务过滤。”,请尝试再次运行它或重新措辞提示。

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

基于 Azure Functions 的 MCP 服务器,可通过官方 Marvel 开发者 API 与 Marvel 角色和漫画数据进行交互。

  1. 🔧 功能
    1. 🧰 工具
      1. get_characters
      2. 通过 id get_character_by_id角色
      3. get_comics_for_character 📚🎭
      4. get_comics 📖🕵️‍♂️
      5. get_comic_by_id
      6. get_characters_for_comic 🦸‍♀️📖
    2. 🛠️ 设置
      1. 本地运行服务器
    3. 配置 MCP 主机
      1. 与 Claude Desktop 一起使用
      2. 在 VS Code 中与 GitHub Copilot 一起使用
    4. 部署到 Azure 以进行远程 MCP
      1. 使用 GitHub Copilot 中的工具

    Related MCP Servers

    • -
      security
      A
      license
      -
      quality
      An MCP server that generates 2D and 3D game assets from text prompts using AI models from Hugging Face Spaces, allowing developers to easily create game art through Claude Desktop or other MCP clients.
      Last updated -
      34
      JavaScript
      MIT License
      • Apple
      • Linux
    • -
      security
      F
      license
      -
      quality
      Provides tools for listing and querying Azure resources directly from any MCP client, allowing you to efficiently browse your Azure infrastructure and analyze costs without leaving your workflow.
      Last updated -
      Python
      • Apple
      • Linux
    • A
      security
      A
      license
      A
      quality
      MCP Server for the Marvel Developer API, enabling interaction with characters and comics data.
      Last updated -
      7
      89
      7
      TypeScript
      MIT License
      • Linux
      • Apple
    • -
      security
      A
      license
      -
      quality
      An MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.
      Last updated -
      Python
      Apache 2.0

    View all related MCP servers

    MCP directory API

    We provide all the information about MCP servers via our MCP API.

    curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanWahlin/marvel-mcp-azure-functions'

    If you have feedback or need assistance with the MCP directory API, please join our Discord server