Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekstensi Azure Developer CLI (azd) dapat mengekspos alat ke agen AI melalui server Model Context Protocol (MCP). Saat Anda menambahkan kapabilitas mcp-server, agen seperti GitHub Copilot dapat menemukan dan memanggil alat pada ekstensi Anda. Artikel ini memperlihatkan kepada Anda cara menambahkan server MCP ke ekstensi sampel Contoso Resource Tagger dari mulai cepat Membuat ekstensi sampel. Anda dapat menerapkan pola yang sama ke ekstensi apa pun.
Nota
azd ekstensi saat ini dalam versi beta.
Cara kerja server MCP
Protokol Konteks Model adalah standar terbuka yang memungkinkan agen AI menemukan dan memanggil alat yang disediakan oleh server eksternal. Saat ekstensi Anda mendeklarasikan kapabilitas mcp-server, azd dapat menjalankan ekstensi Anda sebagai server MCP dan meneruskan permintaan alat dari agen ke ekstensi Anda. Ekstensi Anda menerapkan alat yang dipanggil agen untuk melakukan tugas, seperti menyarankan tag standar untuk proyek.
Mendeklarasikan kemampuan
Tambahkan kapabilitas mcp-server ke manifes extension.yaml Anda:
capabilities:
- custom-commands
- mcp-server
Anda juga dapat menambahkan mcp bagian ke manifes untuk mengonfigurasi cara azd memulai server MCP. Properti serve mendukung args dan env; azd sudah tahu ekstensi yang dapat dieksekusi, sehingga Anda tidak menentukan perintah:
mcp:
serve:
args:
- mcp
- start
Menambahkan perintah MCP
Tambahkan perintah yang memulai server MCP.
azd memanggil perintah ini untuk menjalankan ekstensi Anda sebagai server MCP. Gunakan pustaka server MCP untuk Go, seperti mcp-go, untuk menangani protokol.
Buat file bernama
mcp.godi direktori Andainternal/cmd: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) }, } }Daftarkan
mcpperintah pada perintah root Anda:rootCmd.AddCommand(newMcpCommand())
Menerapkan alat
Tentukan alat yang dipanggil oleh agen AI. Tambahkan suggest_tags alat berikut ke file yang sama internal/cmd/mcp.go yang Anda buat sebelumnya. Identifikator mcp dan server berasal dari paket yang sudah diimpor dalam file tersebut (github.com/mark3labs/mcp-go/mcp dan github.com/mark3labs/mcp-go/server), dan handler juga menggunakan impor context dan fmt. Menambahkan fungsi ke mcp.go akan menggunakan kembali impor tersebut sehingga kode dapat dikompilasi:
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
}
Menguji server MCP
Setelah Anda menambahkan server MCP, build ulang ekstensi Anda dan pastikan server berhasil dijalankan:
Bangun ulang ekstensi:
azd x buildMulai server MCP secara langsung untuk memverifikasi bahwa server berjalan tanpa kesalahan:
azd tagger mcp startServer mulai berjalan dan mendengarkan masukan standar serta keluaran standar. Klien MCP, seperti agen AI yang dikonfigurasi untuk menggunakan ekstensi Anda, terhubung ke server ini untuk memanggil alat Anda.