Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Azure Developer CLI (azd)-Erweiterung kann KI-Agents tools über einen MCP-Server (Model Context Protocol) zur Verfügung stellen. Wenn Sie die mcp-server Funktion hinzufügen, können Agents wie GitHub Copilot die Tools Ihrer Erweiterung ermitteln und aufrufen. In diesem Artikel wird gezeigt, wie Sie der Beispielerweiterung Contoso Resource Tagger einen MCP-Server aus der Schnellstartanleitung "Erstellen einer Beispielerweiterung" hinzufügen. Sie können dasselbe Muster auf jede Erweiterung anwenden.
Note
azd Erweiterungen befinden sich derzeit in der Betaversion.
Funktionsweise von MCP-Servern
Das Modellkontextprotokoll ist ein offener Standard, mit dem KI-Agents Tools erkennen und aufrufen können, die von externen Servern bereitgestellt werden. Wenn Ihre Erweiterung die mcp-server Funktion deklariert, azd können Sie Ihre Erweiterung als MCP-Server starten und Toolanforderungen von einem Agent an Ihre Erweiterung weiterleiten. Ihre Erweiterung implementiert Tools, die der Agent aufruft, um Aufgaben auszuführen, z. B. das Vorschlagen standardisierter Tags für ein Projekt.
Fähigkeit deklarieren
Fügen Sie Ihrem mcp-server Manifest die extension.yaml Funktion hinzu:
capabilities:
- custom-commands
- mcp-server
Sie können dem Manifest auch einen mcp Abschnitt hinzufügen, um zu konfigurieren, wie azd der MCP-Server gestartet wird. Die serve Eigenschaft unterstützt args und env; azd kennt bereits die ausführbare Erweiterung, sodass Sie keinen Befehl angeben:
mcp:
serve:
args:
- mcp
- start
Hinzufügen eines MCP-Befehls
Fügen Sie einen Befehl hinzu, der den MCP-Server startet.
azd ruft diesen Befehl auf, um die Erweiterung als MCP-Server auszuführen. Verwenden Sie eine MCP-Serverbibliothek für Go, z. B. mcp-go, um das Protokoll zu verarbeiten.
Erstellen Sie eine Datei mit dem Namen
mcp.goin Ihreminternal/cmdVerzeichnis: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) }, } }Registrieren Sie den
mcpBefehl in Ihrem Stammbefehl:rootCmd.AddCommand(newMcpCommand())
Implementieren eines Tools
Definieren Sie das Tool, das der KI-Agent aufruft. Fügen Sie das folgende suggest_tags Werkzeug zu derselben internal/cmd/mcp.go Datei hinzu, die Sie zuvor erstellt haben. Die mcp Und server Bezeichner stammen aus den Paketen, die bereits in dieser Datei importiert wurden (github.com/mark3labs/mcp-go/mcp und github.com/mark3labs/mcp-go/server), und der Handler verwendet auch die context und fmt importe. Durch das Hinzufügen der Funktion zu mcp.go werden diese Importe wiederverwendet, sodass der Code kompiliert:
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
}
Testen des MCP-Servers
Nachdem Sie den MCP-Server hinzugefügt haben, erstellen Sie die Erweiterung neu, und überprüfen Sie, ob der Server gestartet wird:
Erstellen Sie die Erweiterung neu:
azd x buildStarten Sie den MCP-Server direkt, um zu überprüfen, ob er ohne Fehler ausgeführt wird:
azd tagger mcp startDer Server startet und überwacht die Standardeingabe und -ausgabe. Ein MCP-Client, z. B. ein KI-Agent, der für die Verwendung Ihrer Erweiterung konfiguriert ist, stellt eine Verbindung mit diesem Server zum Aufrufen Ihrer Tools bereit.