Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Protocolo de Contexto do Modelo (MCP) é um padrão emergente no panorama da IA que permite aos sistemas de IA conectarem-se com ferramentas e dados fora de si próprios. Define como um modelo de IA pode descobrir o que está disponível e interagir com ele de forma consistente. Em vez de construir integrações pontuais, o MCP oferece uma forma padrão de ligar coisas que funciona entre diferentes aplicações e serviços. Esta abordagem torna muito mais fácil para os sistemas de IA irem além do seu conhecimento incorporado, mantendo tudo consistente. Também ajuda as equipas a avançar mais rápido, já que não precisam de reinventar sempre as mesmas ligações.
O MCP tem duas partes principais: o cliente e o servidor.
Um cliente MCP é a aplicação ou experiência com que o utilizador interage. É onde fazes perguntas ou desencadeias ações. O cliente contacta os servidores MCP para encontrar ferramentas e usá-las. Por exemplo, o Visual Studio Code pode funcionar como um cliente MCP quando se liga a ferramentas externas para recuperar dados ou ajudar a escrever e executar código.
Um servidor MCP expõe ferramentas, dados ou serviços para que os clientes possam usá-los. Diz ao cliente o que está disponível e como o usar. Por exemplo, um agente de dados Fabric pode atuar como servidor MCP ao expor dados empresariais e consultas que um sistema de IA pode utilizar.
Juntos, o cliente e o servidor facilitam a ligação de sistemas de IA a dados e ações reais, sem ter de construir integrações personalizadas sempre.
Importante
Este recurso está em pré-visualização.
Importante
Quando consome um agente de dados Fabric como servidor MCP, as respostas devolvidas pelo agente de dados podem ser enviadas para fora do limite de conformidade ou da região geográfica do Fabric, e processadas ou armazenadas de acordo com os termos e políticas de tratamento de dados do cliente MCP que utiliza.
Pré-requisitos
Uma capacidade paga F2 ou superior do Fabric , ou umacapacidade do Power BI Premium (P1 ou superior) comMicrosoft Fabric ativado .- Processamento entre regiões geográficas e armazenamento entre regiões geográficas para IA ativados, com base nos requisitos definidos em Definições do inquilino do agente de dados do Fabric.
- Pelo menos uma fonte de dados que tem dados: um armazém, uma casa de lago, um modelo semântico Power BI, uma base de dados KQL, uma base de dados espelhada ou uma ontologia. Deve ter acesso de leitura à fonte de dados.
- Um agente de dados publicado. O servidor MCP só funciona depois de publicares o agente de dados. Para obter mais informações, consulte Criar um agente de dados de malha.
Como funciona
Um agente de dados Fabric publicado expõe uma única ferramenta MCP. Essa ferramenta representa o próprio agente de dados, por isso um cliente MCP envia uma pergunta para a ferramenta e recebe uma resposta baseada nos dados a que o agente de dados tem acesso no Fabric OneLake.
Como o cliente decide quando chamar a ferramenta, a descrição do agente de dados é importante. Quando publica um agente de dados, a sua descrição torna-se a descrição da ferramenta que o servidor MCP anuncia. Clientes e orquestradores leem essa descrição para decidir quando e como contactar o agente de dados, por isso escrevem uma descrição clara e específica que explique o que o agente sabe e os tipos de perguntas que pode responder.
Podes consumir o servidor MCP do agente de dados a partir de qualquer cliente MCP, não apenas de uma ferramenta ou editor. Desde que o seu cliente fale MCP via HTTP streamable e consiga anexar um token Fabric válido aos seus pedidos, pode ligar-se. As secções que se seguem mostram dois clientes: um script em Python e o Visual Studio Code. O mesmo endpoint e o mesmo token funcionam para qualquer outro cliente MCP que construas ou adotes.
Tudo o que fala com o servidor MCP tem de falar MCP, por definição, atua como um cliente MCP. O termo "cliente MCP" não significa um produto ou SDK específico. Significa qualquer código que siga o protocolo. O endpoint não é uma API REST simples para a qual se possa enviar um pedido arbitrário. Uma ligação segue o fluxo de mensagens MCP: um initialize aperto de mão, uma tools/list chamada para descobrir a ferramenta e um tools/call pedido para fazer uma pergunta. Um SDK como o MCP Python SDK trata desse fluxo por si, mas também pode implementá-lo por si mesmo em HTTP simples, desde que os seus pedidos sigam o protocolo. Um cliente HTTP genérico que ignora o handshake e o formato da mensagem não vai funcionar.
Observação
O servidor MCP do agente de dados não suporta registo dinâmico de clientes. O seu cliente não pode registar-se automaticamente e obter credenciais através do protocolo. Em vez disso, adquire um token Fabric através do seu próprio fluxo de autenticação e anexa-o a cada pedido, como mostrado nos exemplos deste artigo.
Obtenha os detalhes do servidor MCP
Depois de publicar o agente de dados, abra as suas Definições e vá ao separador Model Context Protocol . Este separador mostra:
- Nome do servidor MCP do agente de dados
- URL do servidor MCP (copie este valor; usa-o em todos os clientes)
- Nome da ferramenta MCP do agente de dados
- Descrição da ferramenta de servidor MCP
Também pode descarregar o ficheiro mcp.json a partir deste separador para configurar clientes que leem esse formato, como o Visual Studio Code.
Também pode criar o URL a partir do ID do seu espaço de trabalho e do ID do agente de dados:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agent
| Placeholder | Description |
|---|---|
{WorkspaceId} |
O ID do espaço de trabalho Fabric que contém o agente de dados. |
{DataAgentId} |
O ID do agente de dados publicado. |
Uma URL construída manualmente só funciona depois de publicar o agente de dados. Se o agente não for publicado, o endpoint devolve um erro mesmo quando a URL está correta.
Authentication
Cada pedido ao endpoint MCP deve ser autenticado contra o Fabric. O seu cliente inclui um bearer token no cabeçalho Authorization, e o token tem de ter permissão para aceder ao espaço de trabalho de destino e ao agente de dados. O token pode representar tanto uma identidade de utilizador como um principal de serviço.
A forma como obtém o token depende do seu cliente. O Visual Studio Code pede-te para iniciar sessão de forma interativa. Num script em Python, obtém o token recorrendo a uma biblioteca como azure-identity e adiciona-o manualmente aos cabeçalhos do pedido. Seja qual for o cliente, peça o token para o https://api.fabric.microsoft.com/.default scope.
Conecte-se a partir do Python
Este exemplo liga-se ao endpoint MCP do agente de dados a partir de um script Python autónomo, descobre a ferramenta, envia uma pergunta e imprime a resposta. Utiliza o MCP Python SDK e a azure-identity biblioteca.
Pré-requisitos para o cliente Python
- Python 3.10 ou posterior.
- Os pacotes
mcpeazure-identity. - Uma forma de iniciar sessão no Fabric. Este exemplo utiliza a CLI do Azure. Instala a CLI do Azure, em seguida executa
az logine inicia sessão com uma conta que tenha acesso ao espaço de trabalho e ao agente de dados.
Instale os pacotes:
pip install mcp azure-identity
Constrói o cliente passo a passo
As secções seguintes permitem criar o script passo a passo. Cada bloco continua o mesmo ficheiro, por isso podes colá-los por ordem num único .py ficheiro e executá-lo.
Importa as bibliotecas e define os teus valores. Substitua o ID da área de trabalho, o ID do agente de dados e a pergunta pelos seus próprios valores. O mcp_url segue o formato do ponto de extremidade 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"
)
Adquire um token e constrói o cabeçalho de autenticação.
AzureCliCredential reutiliza a sessão iniciada em az login. O auxiliar solicita um token para o âmbito do Fabric e devolve-o sob a forma de um cabeçalho Authorization que acompanha cada pedido.
credential = AzureCliCredential()
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
Abre a ligação, descobre a ferramenta e faz a pergunta. Esta função abre uma ligação HTTP streamable com o cabeçalho de autenticação, executa o handshake MCP com initialize, lista as ferramentas e lê a única ferramenta que o agente de dados expõe. Encontra o nome do argumento da pergunta a partir do esquema de entrada da ferramenta, por isso não o codificas fixamente, depois chama a ferramenta e recolhe o texto da resposta.
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)
Execute-o e imprima a resposta.
query_data_agent é uma corrotina, por isso asyncio.run executa-a até ao fim e devolve o resultado.
answer = asyncio.run(query_data_agent(question))
print(answer)
Como o script lê a primeira ferramenta que o servidor anuncia e encontra o argumento da pergunta do esquema de entrada da ferramenta, continua a funcionar mesmo que o nome da ferramenta ou do argumento mude. Não precisas de codificar fixamente nenhum dos valores.
Dica
AzureCliCredential lê as credenciais de início de sessão que criou com az login. Para executar sem supervisão, como num serviço ou numa tarefa, utilize uma credencial de service principal, como, por exemplo, ClientSecretCredential ou DefaultAzureCredential. O resto do código permanece o mesmo.
Liga-te a partir do Visual Studio Code
O Visual Studio Code pode funcionar como um cliente MCP. Os passos seguintes adicionam o servidor MCP do agente de dados e permitem fazer perguntas no editor. Estes passos são um exemplo; o endpoint e o token são os mesmos que qualquer outro cliente MCP utiliza.
Adicionar o servidor MCP
Abre o Visual Studio Code e seleciona uma pasta para trabalhar.
Crie uma pasta .vscode na pasta selecionada.
Dentro do .vscode, crie um ficheiro chamado
mcp.json.O Visual Studio Code mostra um botão azul de Adicionar Servidor no canto inferior direito da janela.
Selecione Adicionar Servidor e depois selecione HTTP. Quando solicitado um URL, cole o URL do servidor MCP que copiou anteriormente.
Prima Enter e introduza um nome para o servidor. O Visual Studio Code usa este nome para mostrar o servidor.
O Visual Studio Code tenta autenticar. Selecione Permitir e inicie sessão com as suas credenciais.
O servidor é criado.
Ativar o modo de agente
Depois de adicionar o servidor, ative o modo agente para que o Visual Studio Code possa encaminhar as suas perguntas para o agente de dados:
Abra a paleta de comandos (Ctrl+Shift+P ou Cmd+Shift+P).
Procura por Ativar Modo de Agente e seleciona-o.
Confirma quaisquer indicações para ativar o modo.
Quando o modo agente estiver ativo, selecione um orquestrador para responder às suas perguntas. O orquestrador gere o fluxo entre as perguntas que fazes no editor e o servidor MCP do agente de dados. Os orquestradores disponíveis em pré-visualização incluem GPT-5, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Pro e outros.
Faça perguntas
Com o modo agente ativado e um orquestrador selecionado, faça perguntas diretamente ao editor. O orquestrador encaminha cada pergunta para o servidor MCP do agente de dados, e o agente devolve uma resposta baseada nos dados a que tem acesso no OneLake. Ficas no editor enquanto trazes conhecimento organizacional para os teus fluxos de trabalho de IA.