Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'estensione Azure Developer CLI (azd) può esporre strumenti agli agenti di intelligenza artificiale tramite un server MCP (Model Context Protocol). Quando si aggiunge la mcp-server funzionalità, gli agenti come GitHub Copilot possono individuare e chiamare gli strumenti dell'estensione. Questo articolo illustra come aggiungere un server MCP all'estensione di esempio Contoso Resource Tagger dalla guida introduttiva rapida Creare un'estensione di esempio. È possibile applicare lo stesso modello a qualsiasi estensione.
Annotazioni
azd le estensioni sono attualmente in versione beta.
Funzionamento dei server MCP
Model Context Protocol è uno standard aperto che consente agli agenti di intelligenza artificiale di individuare e chiamare gli strumenti forniti dai server esterni. Quando l'estensione dichiara la capacità mcp-server, azd può avviare l'estensione come server MCP e instradare le richieste degli strumenti da un agente verso l'estensione. L'estensione implementa strumenti che l'agente chiama per eseguire attività, ad esempio suggerire tag standardizzati per un progetto.
Dichiarare la funzionalità
Aggiungi la mcp-server funzionalità al tuo extension.yaml manifest:
capabilities:
- custom-commands
- mcp-server
È anche possibile aggiungere una mcp sezione al manifesto per configurare l'avvio azd del server MCP. La serve proprietà supporta args e env; azd conosce già l'eseguibile dell'estensione, quindi non si specifica un comando:
mcp:
serve:
args:
- mcp
- start
Aggiungere un comando MCP
Aggiungere un comando che avvia il server MCP.
azd richiama questo comando per eseguire l'estensione come server MCP. Usare una libreria server MCP per Go, ad esempio mcp-go, per gestire il protocollo.
Creare un file denominato
mcp.gonellainternal/cmddirectory: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) }, } }Registra il comando
mcpsul comando radice:rootCmd.AddCommand(newMcpCommand())
Implementare uno strumento
Definire lo strumento chiamato dall'agente di intelligenza artificiale. Aggiungi il seguente strumento suggest_tags allo stesso internal/cmd/mcp.go file che hai creato in precedenza. Gli identificatori mcp e server provengono dai pacchetti già importati in quel file (github.com/mark3labs/mcp-go/mcp e github.com/mark3labs/mcp-go/server), e il gestore usa anche le importazioni context e fmt. Aggiungendo la funzione a mcp.go, quelle importazioni vengono riutilizzate così il codice viene compilato:
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
}
Testare il server MCP
Dopo aver aggiunto il server MCP, ricompilare l'estensione e verificare l'avvio del server:
Ricompilare l'estensione:
azd x buildAvviare direttamente il server MCP per verificarne l'esecuzione senza errori:
azd tagger mcp startIl server si avvia e resta in ascolto sullo standard input e sullo standard output. Un client MCP, ad esempio un agente di intelligenza artificiale configurato per l'uso dell'estensione, si connette a questo server per chiamare gli strumenti.