Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma extensão da CLI do Desenvolvedor Azure (azd) pode expor ferramentas a agentes de IA por meio de um servidor MCP (Model Context Protocol). Quando você adiciona a mcp-server funcionalidade, agentes como GitHub Copilot podem descobrir e chamar as ferramentas da extensão. Este artigo mostra como adicionar um servidor MCP à extensão de exemplo Contoso Resource Tagger presente no guia de início rápido Criar uma extensão de exemplo. Você pode aplicar o mesmo padrão a qualquer extensão.
Note
azd as extensões estão atualmente na versão beta.
Como funcionam os servidores MCP
O Protocolo de Contexto de Modelo é um padrão aberto que permite que os agentes de IA descubram e chamem ferramentas fornecidas por servidores externos. Quando sua extensão declara a mcp-server funcionalidade, azd pode iniciar sua extensão como um servidor MCP e rotear solicitações de ferramenta de um agente para sua extensão. Sua extensão implementa ferramentas que o agente chama para executar tarefas, como sugerir marcas padronizadas para um projeto.
Declarar a funcionalidade
Adicione a capacidade mcp-server ao seu manifesto extension.yaml:
capabilities:
- custom-commands
- mcp-server
Você também pode adicionar uma mcp seção ao manifesto para configurar como azd inicia o servidor MCP. A propriedade serve oferece suporte a args e env; azd já conhece o executável da extensão, portanto não é necessário especificar um comando:
mcp:
serve:
args:
- mcp
- start
Adicionar um comando MCP
Adicione um comando que inicie o servidor MCP.
azd invoca esse comando para executar sua extensão como um servidor MCP. Use uma biblioteca de servidorES MCP para Go, como mcp-go, para lidar com o protocolo.
Crie um arquivo nomeado
mcp.goem seuinternal/cmddiretório:package cmd import ( "context" "fmt" "github.com/mark3labs/mcp-go/mcp" "github.com/mark3labs/mcp-go/server" "github.com/spf13/cobra" ) func newMcpCommand() *cobra.Command { mcpCmd := &cobra.Command{ Use: "mcp", Short: "Model Context Protocol server commands.", Hidden: true, } mcpCmd.AddCommand(newMcpStartCommand()) return mcpCmd } func newMcpStartCommand() *cobra.Command { return &cobra.Command{ Use: "start", Short: "Starts the MCP server.", RunE: func(cmd *cobra.Command, args []string) error { s := server.NewMCPServer( "Contoso Resource Tagger", "0.1.0", ) // Register the suggest_tags tool. s.AddTool(newSuggestTagsTool()) // Serve over stdio so azd and agents can connect. return server.ServeStdio(s) }, } }Registre o comando
mcpno comando raiz:rootCmd.AddCommand(newMcpCommand())
Implementar uma ferramenta
Defina a ferramenta que o agente de IA chama. Adicione a seguinte ferramenta suggest_tags ao mesmo arquivo internal/cmd/mcp.go que você criou anteriormente. Os identificadores mcp e server vêm dos pacotes já importados naquele arquivo (github.com/mark3labs/mcp-go/mcp e github.com/mark3labs/mcp-go/server), e o manipulador também usa as importações context e fmt. Adicionar a função a mcp.go reutiliza essas importações para que o código compile:
func newSuggestTagsTool() (mcp.Tool, server.ToolHandlerFunc) {
tool := mcp.NewTool(
"suggest_tags",
mcp.WithDescription("Suggests standardized Azure resource tags for a project."),
mcp.WithString("environment",
mcp.Description("The target environment, such as dev or prod."),
mcp.Required(),
),
)
handler := func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
environment, err := request.RequireString("environment")
if err != nil {
return mcp.NewToolResultError(err.Error()), nil
}
suggestion := fmt.Sprintf(
"Suggested tags: environment=%s, managed-by=azd, cost-center=<required>",
environment,
)
return mcp.NewToolResultText(suggestion), nil
}
return tool, handler
}
Testar o servidor MCP
Depois de adicionar o servidor MCP, recompile sua extensão e verifique se o servidor é iniciado:
Recompile a extensão:
azd x buildInicie o servidor MCP diretamente para verificar se ele é executado sem erros:
azd tagger mcp startO servidor inicia e escuta na entrada e saída padrão. Um cliente MCP, como um agente de IA configurado para usar sua extensão, conecta-se a esse servidor para chamar suas ferramentas.