Integrations
Provides a backend implementation for the MCP server using .NET, connecting to Azure Cosmos DB for database operations
Serves as the foundation for the MCP server component, connecting to Azure Cosmos DB to read products and orders data
Integrates with Azure OpenAI services for text embeddings and the AI Assistant functionality that helps users find products and retrieve order information
Cliente y servidor de MCP de Azure Cosmos DB
Este repositorio contiene un proyecto que muestra cómo crear un servidor y un cliente MCP para Azure Cosmos DB. El proyecto se divide en dos partes:
- Aplicación frontend: Aplicación NextJS 15 que muestra un catálogo de productos y cuenta con un asistente de IA que ayuda a los usuarios a encontrar productos en el catálogo y obtener pedidos anteriores.
- un componente de servidor MCP, conectado a la base de datos NoSQL de Azure Cosmos DB y responsable de leer productos y pedidos de la base de datos.
Arquitectura de Azure
- una base de datos NoSQL de Azure Cosmos DB que almacena el catálogo de productos
- un servidor node.js que sirve como componente de servidor MCP
Referencias
- Crear una cuenta de Azure Cosmos DB para NoSQL
- Crear una cuenta de Azure Storage
- Crear una máquina virtual de Windows
- Políticas de ejecución de Windows
Tutorial paso a paso
Instalación
Azure Cosmos DB
En el portal de Azure, cree una cuenta de Azure Cosmos DB para NoSQL.
- Asigne un nombre único a su cuenta de Azure Cosmos DB. Usaremos cosmos-eastus2-nosql-2 en el resto de este tutorial.
- Haga clic en "Siguiente: Distribución global"
- Acepte los valores predeterminados y haga clic en "Siguiente: Redes".
- Acepte los valores predeterminados y haga clic en "Siguiente: Política de respaldo"
- Seleccione la política de copias de seguridad "Periódico"
- Seleccione "Almacenamiento de respaldo con redundancia local"
- Haga clic en "Siguiente: Cifrado"
- Haga clic en "Revisar y crear" para iniciar la validación.
- Haga clic en "Crear" para iniciar la creación de la cuenta de Azure Cosmos DB para NoSQL
Para este proyecto, deberá habilitar la compatibilidad con vectores en la cuenta de Azure Cosmos DB.
- En la sección de configuración, seleccione Características y luego "Búsqueda vectorial para API NoSQL".
- En el panel que se abre, haga clic en el botón Habilitar
- Cree la base de datos de Azure Cosmos DB eShop y el contenedor Productos
- Haga clic en "..." junto a eShop para mostrar el menú contextual y seleccione "Nuevo contenedor" para crear el contenedor "carritos" en la base de datos de eShop.
Asegúrese de que la clave de partición sea "/id" (la clave de partición distingue entre mayúsculas y minúsculas)
Expanda "Política de vectores de contenedores" y haga clic en el botón "Agregar incrustación de vectores".
- Crear el contenedor de carritos
Cuenta de almacenamiento
- Crea una cuenta de almacenamiento para guardar las imágenes del producto
Para obtener más detalles, consulte la documentación: https://learn.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal
**Requisitos previos para la instalación del software**
- Cree una máquina virtual en Azure o use su computadora local
- Instale node.js v22.13.1 (LTS) desde https://nodejs.org/en/download
- Instale Visual Studio Code x64 1.97.0 desde https://code.visualstudio.com/download
- Instale Git 2.47.12 x64 desde https://git-scm.com/downloads
- Instale .NET SDK x64 v9.0.102 desde https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-9.0.102-windows-x64-installer
- Abra una ventana de terminal y agregue la fuente NuGet con
- Si es necesario, modifique las políticas de ejecución de PowerShell para equipos Windows. Abra una ventana de PowerShell en modo administrador y ejecute este comando.
- Si es necesario, instale los módulos Nuget, PowerShell, Az CLI y Az
- Abra una ventana de terminal y clone el repositorio:
- Navegue a la carpeta nextjs e instale las dependencias
- En la carpeta nextjs, cree y configure un archivo .env con los siguientes valores:
- Obtén tu ID de inquilino. Puedes obtenerlo con este comando:
- En la carpeta webapi, configure el archivo appsettings.json y reemplace el tenant_id con el valor obtenido en el paso anterior:
- Crear un registro de aplicación en el Portal de Azure
- Crear un secreto de aplicación en el Portal de Azure
- Necesitará permitir que su aplicación acceda a Azure Cosmos DB. Recupere los cuatro identificadores mencionados a continuación y modifique el archivo "populate/set_rbac.ps1".
Variable | Referencia |
---|---|
ID de suscripción | Cosmos DB > Descripción general > Id. de suscripción |
Nombre de la cuenta de Azure Cosmos DB | cosmos-eastus2-nosql-2 |
Nombre del grupo de recursos | Cosmos DB > Descripción general > Nombre del grupo de recursos |
Identificación principal | Id. de objeto de registro de la aplicación |
- Abra un símbolo del sistema de PowerShell, ejecute Connect-AzAccount y ejecute ./set_rbac.ps1
- Permitir que su aplicación (o máquina virtual) acceda a la cuenta de almacenamiento
- En el portal de Azure, vaya a su cuenta de almacenamiento
- Seleccione Control de acceso (IAM) en el menú
- Haga clic en "Agregar asignación de rol"
- En el cuadro de texto del filtro, escriba "Contribuidor de datos de blobs de almacenamiento".
- Haga clic en "Miembros"
- Seleccione el nombre de su aplicación
- Haga clic en el botón "Seleccionar"
- Haga clic en "Revisar y asignar"
- Cree un contenedor y copie el contenido de la carpeta "azure-storage" a su cuenta de almacenamiento
- Cree un proyecto backend de webapi con dotnet build
18. En la máquina virtual de su región secundaria (Australia Este), modifique el archivo .env con la dirección IP del servidor de sockets de su región principal (East US 2).
- Este proyecto no incluye autenticación. El correo electrónico del usuario está predefinido en /nextjs/models/constants.ts. Modifíquelo para adaptarlo a las necesidades de su demostración.
- En las carpetas mcp-server y nextjs, copie .env.template a .env y modifique los valores para adaptarlos a sus necesidades de demostración
- Construir un proyecto frontend de nextjs
Completar el catálogo de productos
En esta sección, leeremos el catálogo de productos del archivo populate/catalog.json y completaremos la base de datos de Azure Cosmos DB para NoSQL.
- Modifique appsettings.json con el nombre de su cuenta cosmosdb y
- Abra una ventana de terminal, navegue hasta la carpeta de población, ejecute az login y luego dotnet run
- Verifique que el contenedor de Azure Cosmos DB se haya rellenado correctamente
Guión de demostración
Inicialización de demostración:
- En su computadora de desarrollo, inicie el servidor mcp
- Iniciar el proyecto frontend
- Front-end de NextJS (tienda virtual)
- cd nextjs
- inicio de npm
- Opcionalmente, abra un símbolo del sistema e inicie el inspector MCP con este comando: npx -y @modelcontextprotocol/inspector
Pasos de demostración:
- Vaya a http://localhost:3002 .
- Haga clic en el ícono del Asistente de IA en la esquina superior derecha
- Ingresa "Me interesan las mochilas" (la lista de productos se actualiza con una lista de mochilas)
- Ingresa a "Obtener mis pedidos" (la lista de pedidos se actualiza con una lista de pedidos)
This server cannot be installed
Servidor Node.js que se conecta a la base de datos NoSQL de Azure Cosmos DB, lo que permite a los usuarios consultar productos y pedidos a través de un Asistente de IA en una aplicación frontend de NextJS.
Related MCP Servers
- AsecurityAlicenseAqualityThis server implements the Model Context Protocol for seamless interaction with Azure Blob Storage and Cosmos DB, enabling automatic logging and audit tracking of operations.Last updated -164PythonMIT License
- -securityAlicense-qualityA server that enables LLMs like Claude to interact with Azure Cosmos DB databases through natural language queries, acting as a translator between AI assistants and database systems.Last updated -JavaScriptMIT License
- -securityFlicense-qualityA Node.js server that processes mathematical calculations and natural language math queries through RESTful API endpoints.Last updated -JavaScript
- AsecurityAlicenseAqualityA server that enables LLMs (like Claude and VSCode Copilot) to interact with Azure Cosmos DB data through natural language queries, acting as a translator between AI assistants and your database.Last updated -3111JavaScriptMIT License