Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El Protocolo de contexto de modelo (MCP) es un estándar emergente en el panorama de inteligencia artificial que permite a los sistemas de inteligencia artificial conectarse con herramientas y datos fuera de sí mismos. Define cómo un modelo de inteligencia artificial puede detectar lo que está disponible e interactuar con él de forma coherente. En lugar de crear integraciones unidireccionales, MCP ofrece una manera estándar de conectar cosas que funcionan en diferentes aplicaciones y servicios. Este enfoque facilita mucho que los sistemas de inteligencia artificial vayan más allá de sus conocimientos integrados, a la vez que mantienen las cosas coherentes. También ayuda a los equipos a avanzar más rápido, ya que no tienen que reinventar las mismas conexiones cada vez.
MCP tiene dos partes principales: el cliente y el servidor.
Un cliente MCP es la aplicación o experiencia con la que interactúa el usuario. Es donde se hacen preguntas o desencadenan acciones. El cliente se acerca a los servidores MCP para buscar herramientas y usarlas. Por ejemplo, Visual Studio Code puede actuar como un cliente MCP cuando se conecta a herramientas externas para recuperar datos o ayudarle a escribir y ejecutar código.
Un servidor MCP expone herramientas, datos o servicios para que los clientes puedan usarlos. Indica al cliente qué está disponible y cómo usarlo. Por ejemplo, un agente de datos de Fabric puede actuar como un servidor MCP exponiendo datos empresariales y consultas que un sistema de inteligencia artificial puede usar.
Juntos, el cliente y el servidor facilitan la conexión de sistemas de inteligencia artificial con datos y acciones reales, sin crear integraciones personalizadas cada vez.
Importante
Esta característica se encuentra en versión preliminar.
Importante
Cuando se consume un agente de datos de Fabric como servidor MCP, es posible que las respuestas devueltas por el agente de datos se envíen fuera del límite de cumplimiento de Fabric o región geográfica, y se procesen o almacenen según los términos y las directivas de control de datos del cliente MCP que use.
Prerrequisitos
- Una capacidad de pago de Fabric F2 o superior, o una capacidad de Power BI Premium por capacidad (P1 o superior) con Microsoft Fabric habilitado.
- Procesamiento entre zonas geográficas y almacenamiento entre zonas geográficas para IA habilitados, según los requisitos de la configuración del inquilino del agente de datos de Fabric.
- Al menos un origen de datos que tiene datos: un almacén, un lago, un modelo semántico de Power BI, una base de datos KQL, una base de datos reflejada o una ontología. Debe tener acceso de lectura al origen de datos.
- Un agente de datos publicado. El servidor MCP solo funciona después de publicar el agente de datos. Para más información, consulte Creación de un agente de datos de Fabric.
Cómo funciona
Un agente de datos de Fabric publicado expone una única herramienta MCP. Esa herramienta representa el propio agente de datos, por lo que un cliente MCP envía una pregunta a la herramienta y obtiene una respuesta que está fundamentada en los datos a los que el agente de datos tiene acceso en Fabric OneLake.
Dado que el cliente decide cuándo llamar a la herramienta, la descripción del agente de datos es importante. Al publicar un agente de datos, su descripción se convierte en la descripción de la herramienta que anuncia el servidor MCP. Los clientes y orquestadores leen esa descripción para decidir cuándo y cómo llamar al agente de datos, así que escriba una descripción clara y específica que explique lo que el agente conoce y los tipos de preguntas que puede responder.
Puede usar el servidor MCP del agente de datos desde cualquier cliente MCP, no solo desde una herramienta o editor concretos. Siempre que el cliente hable con MCP a través de HTTP que se pueda transmitir y pueda adjuntar un token de portador de Fabric válido a sus solicitudes, puede conectarse. Las secciones siguientes muestran dos clientes: un script de Python y Visual Studio Code. El mismo punto de conexión y el mismo token funcionan para cualquier otro cliente MCP que compile o adopte.
Todo lo que se comunica con el servidor MCP tiene que hablar con MCP, por lo que por definición actúa como un cliente MCP. El término "cliente MCP" no significa un producto o SDK específico. Significa cualquier código que siga el protocolo. El punto de conexión no es una API REST sin formato a la que puede enviar una solicitud arbitraria. Una conexión sigue el flujo de mensajes de MCP: un initialize intercambio inicial, una tools/list llamada para descubrir la herramienta y una tools/call solicitud para hacer una pregunta. Un SDK como el MCP Python SDK gestiona ese flujo por ti, pero también puedes implementarlo tú mismo sobre HTTP simple siempre que tus solicitudes sigan el protocolo. Un cliente HTTP genérico que omite el protocolo de enlace y el formato de mensaje no funcionarán.
Nota:
El servidor MCP del agente de datos no admite el registro dinámico de cliente. El cliente no se puede registrar y obtener credenciales automáticamente a través del protocolo. En su lugar, adquiere un token de Fabric a través de su propio flujo de autenticación y lo adjunta a cada solicitud, como se muestra en los ejemplos de este artículo.
Obtención de los detalles del servidor MCP
Después de publicar el agente de datos, abra su configuración y vaya a la pestaña Protocolo de contexto de modelo . En esta pestaña se muestra lo siguiente:
- Nombre del servidor MCP del agente de datos
- DIRECCIÓN URL del servidor MCP (copie este valor; lo usará en cada cliente).
- Nombre de la herramienta MCP del agente de datos
- Descripción de la herramienta de servidor MCP
También puede descargar el archivo mcp.json de esta pestaña para configurar los clientes que leen ese formato, como Visual Studio Code.
También puede compilar la dirección URL a partir del identificador del área de trabajo y el identificador del agente de datos:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Placeholder | Description |
|---|---|
{WorkspaceId} |
El ID del área de trabajo de Fabric que contiene el agente de datos. |
{DataAgentId} |
El ID del agente de datos publicado. |
Una dirección URL compilada manualmente solo funciona después de publicar el agente de datos. Si el agente no está publicado, el punto de conexión devuelve un error incluso cuando la dirección URL es correcta.
Authentication
Todas las solicitudes al punto de conexión de MCP deben autenticarse en Fabric. El cliente adjunta un token de portador en el Authorization encabezado y el token debe tener permiso para acceder al área de trabajo de destino y al agente de datos. El token puede representar una identidad de usuario o una entidad de servicio.
La forma de obtener el token depende del cliente. Visual Studio Code le pide que inicie sesión de forma interactiva. En un script de Python, adquiere el token a través de una biblioteca como azure-identity y lo agrega a los encabezados de solicitud usted mismo. Sea cual sea el cliente, solicite el token para el https://api.fabric.microsoft.com/.default ámbito.
Conexión desde Python
Este ejemplo se conecta al punto de conexión mcP del agente de datos desde un script de Python independiente, detecta la herramienta, envía una pregunta e imprime la respuesta. Usa el SDK de Python MCP y la azure-identity biblioteca.
Requisitos previos para el cliente de Python
- Python 3.10 o posterior.
- Los paquetes
mcpyazure-identity. - Una manera de iniciar sesión en Fabric. En este ejemplo se usa el CLI de Azure. Instale el CLI de Azure, ejecute
az logine inicie sesión con una cuenta que tenga acceso al área de trabajo y al agente de datos.
Instale los paquetes:
pip install mcp azure-identity
Compilación del cliente paso a paso
En las siguientes secciones se construye el script paso a paso. Cada bloque continúa el mismo archivo, por lo que puede pegarlos en un único .py archivo y ejecutarlo.
Importe las bibliotecas y establezca los valores. Reemplace el identificador del área de trabajo, el identificador del agente de datos y la pregunta por sus propios valores.
mcp_url sigue el formato de punto de conexión descrito anteriormente.
import asyncio
from azure.identity import AzureCliCredential
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
workspace_id = "<your-workspace-id>"
data_agent_id = "<your-data-agent-id>"
question = "<your question>"
mcp_url = (
f"https://api.fabric.microsoft.com/v1/mcp/workspaces/{workspace_id}"
f"/dataagents/{data_agent_id}/agent"
)
Adquiera un token y compile el encabezado de autenticación.
AzureCliCredential reutiliza el inicio de sesión de az login. El componente auxiliar solicita un token para el ámbito de Fabric y lo devuelve en una cabecera Authorization que acompaña a cada solicitud.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Abra la conexión, descubra la herramienta y haga la pregunta. Esta función abre una conexión HTTP compatible con streaming con la cabecera de autenticación, ejecuta el handshake de MCP con initialize, lista las herramientas y lee la única herramienta que expone el agente de datos. Busca el nombre del argumento de pregunta del esquema de entrada de la herramienta, por lo que no lo codifica de forma rígida, llama a la herramienta y recopila el texto de la respuesta.
async def query_data_agent(question):
headers = get_auth_headers()
async with streamablehttp_client(mcp_url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# The data agent exposes a single tool. Discover it, then call it.
tools = await session.list_tools()
tool = tools.tools[0]
question_arg = next(iter(tool.inputSchema["properties"]))
result = await session.call_tool(tool.name, {question_arg: question})
answers = [block.text for block in result.content if block.type == "text"]
return "\n".join(answers)
Ejecútelo e imprima la respuesta.
query_data_agent es una corrutina, por lo que asyncio.run la ejecuta hasta completarla y devuelve el resultado.
answer = asyncio.run(query_data_agent(question))
print(answer)
Dado que el script lee la primera herramienta que el servidor anuncia y encuentra el argumento de pregunta del esquema de entrada de la herramienta, sigue funcionando incluso si cambia el nombre de la herramienta o el nombre del argumento. No es necesario codificar ningún valor de forma rígida.
Tip
AzureCliCredential usa el método de inicio de sesión que has creado con az login. Para ejecutarlo de forma desatendida, como en un servicio o un trabajo, use en su lugar una credencial de identidad de servicio, por ejemplo ClientSecretCredential o DefaultAzureCredential. El resto del código permanece igual.
Conexión desde Visual Studio Code
Visual Studio Code puede actuar como cliente MCP. Los pasos siguientes agregan el servidor MCP del agente de datos y permiten hacer preguntas desde el editor. Estos pasos son un ejemplo; el punto de conexión y el token son los mismos que usa cualquier otro cliente MCP.
Agregar el servidor MCP
Abra Visual Studio Code y seleccione una carpeta en la que trabajar.
Cree una carpeta .vscode en la carpeta seleccionada.
Dentro de .vscode, cree un archivo denominado
mcp.json.Visual Studio Code muestra un botón azul Agregar servidor en la parte inferior derecha de la ventana.
Seleccione Agregar servidor y, a continuación, seleccione HTTP. Cuando se le solicite una dirección URL, pegue la dirección URL del servidor MCP que copió anteriormente.
Presione Entrar y proporcione un nombre para el servidor. Visual Studio Code usa este nombre para mostrar el servidor.
Visual Studio Code intenta autenticarse. Seleccione Permitir e iniciar sesión con sus credenciales.
Se crea el servidor.
Habilitación del modo de agente
Después de agregar el servidor, habilite el modo de agente para que Visual Studio Code pueda enrutar sus preguntas al agente de datos:
Abra la paleta de comandos (Ctrl+Mayús+P o Cmd+Mayús+P).
Busque Habilitar modo de agente y selecciónelo.
Confirme las indicaciones para activar el modo.
Cuando el modo de agente esté activo, seleccione un orquestador para controlar sus preguntas. El orquestador gestiona el flujo entre tus preguntas en el editor y el servidor MCP del agente de datos. Los orquestadores disponibles en versión preliminar incluyen GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro y otros.
Realizar preguntas
Con el modo de agente activado y un orquestador seleccionado, haga preguntas directamente desde el editor. El orquestador enruta cada pregunta al servidor MCP del agente de datos y el agente devuelve una respuesta con base a los datos a los que tiene acceso en OneLake. Sigues en el editor mientras incorporas el conocimiento de tu organización a tus flujos de trabajo con IA.