Servidor Marvel MCP con Azure Functions
Características • Herramientas • Configuración • Configuración de un host MCP
Servidor MCP para la API para desarrolladores de Marvel , que permite la interacción con personajes y datos de cómics. El objetivo principal del proyecto es mostrar cómo un servidor MCP alojado en Azure Functions puede usarse para interactuar con las API.
Nota : Todos los datos utilizados por este servidor MCP se obtienen de la API oficial de Marvel y son propiedad de Marvel. Este proyecto no tiene ninguna afiliación con Marvel.
🔧 Características
- Lista de personajes de Marvel : admite filtros como
nameStartsWith
,limit
,comics
,series
, etc. - Obtener un personaje de Marvel por ID : obtén información detallada sobre cualquier personaje usando su
characterId
. - Obtener cómics de un personaje : obtén una lista de cómics que presentan un personaje específico, con varios filtros como
format
,dateRange
, etc. - Integración de MCP basada en herramientas : registre este servidor con herramientas de Protocolo de contexto de modelo (MCP) (VS Code, Claude, etc.).
- Configuración del entorno : utilice el archivo
.env
para administrar variables de entorno comoMARVEL_PUBLIC_KEY
,MARVEL_PRIVATE_KEY
yMARVEL_API_BASE
.
🧰 Herramientas
1. get_characters
🔍🦸♂️
- Descripción : Obtén personajes de Marvel con filtros opcionales.
- Entradas :
name
(cadena opcional): nombre completo del personaje.nameStartsWith
(cadena opcional): Caracteres cuyos nombres comienzan con la cadena especificada.modifiedSince
(cadena opcional): cadena de fecha ISO 8601 para filtrar caracteres modificados desde esta fecha.comics
,series
,events
,stories
(cadena opcional): lista de ID separados por comas para filtrar por entidades relacionadas.orderBy
(cadena opcional): campos para ordenar los resultados, comoname
o-modified
.limit
(número opcional): número máximo de resultados a devolver (1–100).offset
(número opcional): Número de resultados a omitir para la paginación.
- Devuelve : Respuesta JSON con los caracteres coincidentes. Consulte
CharacterDataWrapperSchema
ensrc/schemas.ts
para obtener más información.
2. get_character_by_id
🆔🧑🎤
- Descripción : Obtén un personaje de Marvel por su ID único.
- Aporte :
characterId
(número): el ID único del personaje.
- Devuelve : Respuesta JSON con los detalles del personaje. Consulte
CharacterDataWrapperSchema
ensrc/schemas.ts
para más detalles.
3. get_comics_for_character
📚🎭
- Descripción : Obtenga cómics que presentan un personaje específico, con filtros opcionales.
- Entradas :
characterId
(número): el ID único del personaje.- Filtros opcionales:
format
,formatType
(cadena): filtrar por formato de cómic (por ejemplo,comic
,hardcover
).noVariants
,hasDigitalIssue
(booleano): Banderas para excluir variantes o incluir solo ediciones digitales.dateDescriptor
(cadena): rangos de fechas predefinidos comothisWeek
,nextWeek
.dateRange
(cadena): rango de fechas personalizado en el formatoYYYY-MM-DD,YYYY-MM-DD
.title
,titleStartsWith
(cadena): Filtrar por título o prefijo de título.startYear
,issueNumber
,digitalId
(número): filtros numéricos.diamondCode
,upc
,isbn
,ean
,issn
(cadena): filtros de identificadores.creators
,series
,events
,stories
,sharedAppearances
,collaborators
(cadena): lista separada por comas de ID de entidades relacionadas.orderBy
(cadena): Campos para ordenar los resultados, comotitle
o-modified
.limit
,offset
(número): Opciones de paginación.
- Devuelve : Respuesta JSON con cómics del personaje especificado. Consulta
ComicDataWrapperSchema
ensrc/schemas.ts
para más detalles.
4. get_comics
📖🕵️♂️
- Descripción : Obtiene listas de cómics de Marvel con filtros opcionales.
- Entradas :
format
(cadena opcional): filtrar por el formato del número (por ejemplo,comic
,digital comic
,hardcover
).formatType
(cadena opcional): Filtrar por el tipo de formato de publicación (comic
ocollection
).noVariants
(booleano opcional): excluye variantes (portadas alternativas, impresiones secundarias, cortes del director, etc.) del conjunto de resultados.dateDescriptor
(cadena opcional): Devuelve cómics dentro de un rango de fechas predefinido (lastWeek
,thisWeek
,nextWeek
,thisMonth
).dateRange
(cadena opcional): Devuelve los cómics dentro de un rango de fechas personalizado. Las fechas deben especificarse comoYYYY-MM-DD,YYYY-MM-DD
.title
(cadena opcional): Devuelve solo los números de la serie cuyo título coincida con la entrada.titleStartsWith
(cadena opcional): Devuelve solo los números de la serie cuyo título comience con la entrada.startYear
(número opcional): Devuelve solo los números de la serie cuyo año de inicio coincida con la entrada.issueNumber
(número opcional): Devuelve solo los números de la serie cuyo número de número coincida con la entrada.diamondCode
,digitalId
,upc
,isbn
,ean
,issn
(cadena opcional): Filtrar por varios identificadores.hasDigitalIssue
(booleano opcional): incluye solo resultados que estén disponibles digitalmente.modifiedSince
(cadena opcional): Devuelve solo los cómics que se han modificado desde la fecha especificada (formato ISO 8601).creators
,characters
,series
,events
,stories
,sharedAppearances
,collaborators
(cadena opcional): lista de ID separados por comas para filtrar por entidades relacionadas.orderBy
(cadena opcional): Ordena el conjunto de resultados por uno o más campos. Añade un "-" al valor para ordenar en orden descendente (p. ej.,title
,-modified
).limit
(número opcional): limita el conjunto de resultados a la cantidad especificada de recursos (predeterminado: 20, máximo: 100).offset
(número opcional): omite la cantidad especificada de recursos en el conjunto de resultados.
- Devuelve : Respuesta JSON con los cómics correspondientes. Consulte
ComicDataWrapperSchema
ensrc/schemas.ts
para obtener más información.
5. get_comic_by_id
🆔📘
- Descripción : Obtiene un solo cómic de Marvel por su identificación única.
- Aporte :
comicId
(número): el identificador único del cómic.
- Devuelve : Respuesta JSON con los detalles del cómic. Consulte
ComicDataWrapperSchema
ensrc/schemas.ts
para más detalles.
6. get_characters_for_comic
🦸♀️📖
- Descripción : Busca personajes de Marvel que aparecen en un cómic específico.
- Entradas :
comicId
(número): el identificador único del cómic.- Filtros opcionales:
name
(cadena opcional): filtra caracteres por nombre completo.nameStartsWith
(cadena opcional): filtra caracteres cuyos nombres comienzan con la cadena especificada.modifiedSince
(cadena opcional): cadena de fecha ISO 8601 para filtrar caracteres modificados desde esta fecha.series
,events
,stories
(cadena opcional): lista separada por comas de ID de entidades relacionadas para filtrar.orderBy
(cadena opcional): campos para ordenar los resultados, comoname
o-modified
.limit
(número opcional): número máximo de resultados a devolver (1–100).offset
(número opcional): Número de resultados a omitir para la paginación.
- Devuelve : Respuesta JSON con los personajes que aparecen en el cómic especificado. Consulte
CharacterDataWrapperSchema
ensrc/schemas.ts
para obtener más información.
🛠️ Configuración
Regístrese para obtener una cuenta de API para desarrolladores de Marvel y obtenga sus claves API públicas y privadas.
Si desea usar el servidor MCP directamente en un host MCP, vaya a las secciones Usar con GitHub Copilot o Usar con Claude Desktop .
Ejecutar el servidor localmente
- Se necesita un emulador de Azure Storage. Hay dos opciones:
- Inicie Azurite en un contenedor Docker:
- Puedes usar la extensión Azurite para VS Code . Una vez instalada, ejecuta
Azurite: Start
desde la paleta de comandos de VS Code.
- Inicie Azurite en un contenedor Docker:
- Clonar este repositorio:
- Cambie el nombre
.env.template
a.env
. - Agregue sus claves públicas y privadas de la API de Marvel al archivo
.env
. - Instale las dependencias necesarias y compile el proyecto.
- Inicie el host de Azure Functions localmente:
- (Opcional) Para probar el servidor MCP usando MCP Inspector, ejecute el siguiente comando:Visita la URL del Inspector MCP que se muestra en la consola de tu navegador:
- Cambiar
Transport Type
aSSE
. - Ingrese
http://0.0.0.0:7071/runtime/webhooks/mcp/sse
como URL. - Seleccione el botón
Connect
. - Seleccionar
List Tools
. - Seleccione una herramienta para probarla.
- Cambiar
Configuración de un host MCP
Usar con Claude Desktop
Agregue lo siguiente a su claude_desktop_config.json
:
Usar con GitHub Copilot en VS Code
Nota : Si ya tiene el servidor MCP habilitado con Claude Desktop, agregue
chat.mcp.discovery.enabled: true
en la configuración de VS Code y descubrirá las listas de servidores MCP existentes.
Si desea asociar el servidor MCP con un repositorio específico, cree un archivo .vscode/mcp.json
con este contenido:
Si desea asociar el servidor MCP con todos los repositorios, agregue lo siguiente a su JSON de configuración de usuario de VS Code:
Implementar en Azure para MCP remoto
Ejecute este comando azd para aprovisionar la aplicación de función, con todos los recursos de Azure necesarios, e implementar su código:
Puede optar por usar una red virtual en la muestra. Para ello, haga esto antes de azd up
Además, API Management se puede utilizar para mejorar la seguridad y las políticas de su servidor MCP, yla autenticación integrada de App Service se puede utilizar para configurar su proveedor OAuth favorito, incluido Entra.
Uso de herramientas en GitHub Copilot
- Ahora que el servidor mcp es detectable, abra GitHub Copilot y seleccione el modo
Agent
(noAsk
oEdit
). - Seleccione el botón "actualizar" en el campo de texto del chat de Copilot para actualizar la lista de servidores.
- Seleccione el botón "🛠️" para ver todas las herramientas posibles, incluidas las de este repositorio.
- Coloque una pregunta en el chat que invoque naturalmente una de las herramientas, por ejemplo:
Nota : Si ve "Lo sentimos, la respuesta fue filtrada por el servicio de IA responsable", intente ejecutarlo nuevamente o reformular el mensaje.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor MCP basado en Azure Functions que permite la interacción con personajes de Marvel y datos de cómics a través de la API oficial para desarrolladores de Marvel.
Related MCP Servers
- -securityAlicense-qualityAn 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 -34JavaScriptMIT License
- -securityFlicense-qualityProvides 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
- AsecurityAlicenseAqualityMCP Server for the Marvel Developer API, enabling interaction with characters and comics data.Last updated -7897TypeScriptMIT License
- -securityAlicense-qualityAn MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.Last updated -PythonApache 2.0