Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Geliştirici CLI (azd) uzantısı, bir Model Bağlam Protokolü (MCP) sunucusu aracılığıyla yapay zeka aracılarına araçları kullanıma açabilir. Özelliği eklediğinizdemcp-server, GitHub Copilot gibi aracılar uzantınızın araçlarını bulabilir ve çağırabilir. Bu makale, Bir örnek uzantı oluşturma hızlı başlangıcında yer alan Contoso Resource Tagger örnek uzantısına nasıl MCP sunucusu ekleyeceğinizi gösterir. Aynı deseni herhangi bir uzantıya uygulayabilirsiniz.
Note
azd uzantılar şu anda beta sürümündedir.
MCP sunucuları nasıl çalışır?
Model Bağlam Protokolü, yapay zeka aracılarının dış sunucular tarafından sağlanan araçları bulmasını ve çağırmasını sağlayan açık bir standarttır. Uzantınız mcp-server yeteneğini bildirdiğinde, azd uzantınızı bir MCP sunucusu olarak başlatabilir ve bir aracıdan gelen araç isteklerini uzantınıza yönlendirebilir. Uzantınız, bir proje için standartlaştırılmış etiketler önerme gibi görevleri gerçekleştirmek üzere aracının çağırdiği araçları uygular.
Yeteneği tanımlayın
mcp-server Bildiriminize extension.yaml özelliği ekleyin:
capabilities:
- custom-commands
- mcp-server
azd öğesinin MCP sunucusunu nasıl başlatacağını yapılandırmak için manifeste ayrıca bir mcp bölümü ekleyebilirsiniz.
serve özelliği args ve env destekler; azd uzantının yürütülebilir dosyasını zaten bilir, bu nedenle bir komut belirtmeniz gerekmez:
mcp:
serve:
args:
- mcp
- start
MCP komutu ekleme
MCP sunucusunu başlatan bir komut ekleyin.
azd uzantınızı BIR MCP sunucusu olarak çalıştırmak için bu komutu çağırır. Protokolü işlemek için Go için mcp-go gibi bir MCP sunucu kitaplığı kullanın.
Dizininizde
mcp.goadlıinternal/cmdbir dosya oluşturun: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) }, } }mcpKomutunu kök komutunuzda kaydedin:rootCmd.AddCommand(newMcpCommand())
Bir araç uygulayın
Yapay zeka aracısının çağırdığı aracı tanımlayın. Aşağıdaki suggest_tags aracı daha önce oluşturduğunuz aynı internal/cmd/mcp.go dosyasına ekleyin.
mcp ve server tanımlayıcıları, bu dosyada zaten içe aktarılmış olan paketlerden (github.com/mark3labs/mcp-go/mcp ve github.com/mark3labs/mcp-go/server) gelir; işleyici de context ve fmt içe aktarmalarını kullanır. İşlevi mcp.go öğesine eklemek, böylece kod derlenir, bu içe aktarmaları yeniden kullanır:
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
}
MCP sunucusunu test edin
MCP sunucusunu ekledikten sonra uzantınızı yeniden derleyin ve sunucunun başladığını doğrulayın:
Uzantıyı yeniden oluşturun:
azd x buildMCP sunucusunu doğrudan başlatarak hatasız çalıştığını doğrulayın:
azd tagger mcp startSunucu, standart giriş ve çıkışları başlatır ve dinler. Uzantınızı kullanmak üzere yapılandırılmış yapay zeka aracısı gibi bir MCP istemcisi, araçlarınızı çağırmak için bu sunucuya bağlanır.