Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozšíření Azure Developer CLI (azd) může zpřístupnit nástroje agentům AI prostřednictvím serveru MCP (Model Context Protocol). Když přidáte funkci mcp-server, agenti, jako je GitHub Copilot, mohou vyhledat a volat nástroje vašeho rozšíření. V tomto článku se dozvíte, jak přidat server MCP do ukázkového rozšíření Contoso Resource Tagger z rychlého startu Sestavení ukázkového rozšíření. Stejný vzor můžete použít u libovolného rozšíření.
Note
azd rozšíření jsou aktuálně v beta verzi.
Jak fungují servery MCP
Model Context Protocol je otevřený standard, který umožňuje agentům AI zjišťovat a volat nástroje poskytované externími servery. Když vaše rozšíření deklaruje mcp-server schopnost, azd můžete rozšíření spustit jako server MCP a směrovat žádosti o nástroje od agenta do vašeho rozšíření. Vaše rozšíření implementuje nástroje, které agent volá k provádění úkolů, jako je například navrhování standardizovaných značek pro projekt.
Deklarujte schopnost
Přidejte do manifestu extension.yaml oprávnění mcp-server:
capabilities:
- custom-commands
- mcp-server
Do manifestu můžete také přidat mcp oddíl, který nakonfiguruje způsob azd spuštění serveru MCP. Vlastnost serve podporuje args a env; azd už zná spustitelný soubor rozšíření, takže není třeba zadávat příkaz:
mcp:
serve:
args:
- mcp
- start
Přidání příkazu MCP
Přidejte příkaz, který spustí server MCP.
azd pomocí tohoto příkazu spustí vaše rozšíření jako server MCP. Ke zpracování protokolu použijte knihovnu serveru MCP pro Go, například mcp-go.
Vytvořte soubor s názvem
mcp.govinternal/cmdadresáři: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) }, } }Zaregistrujte příkaz
mcpu svého kořenového příkazu:rootCmd.AddCommand(newMcpCommand())
Implementace nástroje
Definujte nástroj, který agent AI volá. Do stejného suggest_tags souboru, který jste vytvořili dříve, přidejte následující internal/cmd/mcp.go nástroj. Identifikátory mcp a server pocházejí z balíčků, které jsou v tomto souboru již naimportované (github.com/mark3labs/mcp-go/mcp a github.com/mark3labs/mcp-go/server), a obslužná funkce také používá importy context a fmt. Přidání funkce do mcp.go znovu použije tyto importy, takže se kód zkompiluje:
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
}
Otestování serveru MCP
Po přidání serveru MCP znovu sestavte rozšíření a ověřte, že se server spustí:
Znovu zkompilujte rozšíření:
azd x buildSpusťte server MCP přímo a ověřte, že běží bez chyb:
azd tagger mcp startServer se spustí a naslouchá standardnímu vstupu a výstupu. Klient MCP, například agent AI nakonfigurovaný pro použití vašeho rozšíření, se připojí k tomuto serveru, aby volal vaše nástroje.