Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een Azure Developer CLI-extensie (azd) kan hulpprogramma's beschikbaar maken voor AI-agents via een MCP-server (Model Context Protocol). Wanneer u de mcp-server mogelijkheid toevoegt, kunnen agents zoals GitHub Copilot de hulpprogramma's van uw extensie detecteren en aanroepen. In dit artikel leest u hoe u een MCP-server toevoegt aan de voorbeeldextensie Contoso Resource Tagger uit de quickstart een voorbeeldextensie bouwen. U kunt hetzelfde patroon toepassen op elke extensie.
Opmerking
azd extensies zijn momenteel beschikbaar in de bètaversie.
Hoe MCP-servers werken
Het Model Context Protocol is een open standaard waarmee AI-agents hulpprogramma's van externe servers kunnen detecteren en aanroepen. Wanneer uw extensie de mcp-server mogelijkheid declareert, azd kunt u de extensie starten als een MCP-server en hulpprogrammaaanvragen van een agent naar uw extensie routeren. Uw extensie implementeert hulpprogramma's die de agent aanroept om taken uit te voeren, zoals het voorstellen van gestandaardiseerde tags voor een project.
Geef de mogelijkheid op
Voeg de mcp-server mogelijkheid toe aan uw extension.yaml manifest:
capabilities:
- custom-commands
- mcp-server
U kunt ook een mcp sectie toevoegen aan het manifest om te configureren hoe azd de MCP-server wordt gestart. De serve eigenschap ondersteunt args en envazd ; kent al het uitvoerbare extensiebestand, dus u geeft geen opdracht op:
mcp:
serve:
args:
- mcp
- start
Een MCP-opdracht toevoegen
Voeg een opdracht toe waarmee de MCP-server wordt gestart.
azd roept deze opdracht aan om uw extensie uit te voeren als een MCP-server. Gebruik een MCP-serverbibliotheek voor Go, zoals mcp-go, om het protocol te verwerken.
Maak een bestand met de naam
mcp.goin uwinternal/cmdmap: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) }, } }Registreer de opdracht
mcpop je hoofdopdracht:rootCmd.AddCommand(newMcpCommand())
Een hulpprogramma implementeren
Definieer het hulpprogramma dat de AI-agent aanroept. Voeg het volgende suggest_tags hulpprogramma toe aan hetzelfde internal/cmd/mcp.go bestand dat u eerder hebt gemaakt. De mcp en server id's zijn afkomstig van de pakketten die al in dat bestand (github.com/mark3labs/mcp-go/mcp en github.com/mark3labs/mcp-go/server) zijn geïmporteerd en de handler maakt ook gebruik van de context en fmt importbewerkingen. Door de functie aan mcp.go toe te voegen, worden die imports hergebruikt zodat de code compileert:
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
}
De MCP-server testen
Nadat u de MCP-server hebt toegevoegd, bouwt u de extensie opnieuw en controleert u of de server wordt gestart:
Bouw de extensie opnieuw op:
azd x buildStart de MCP-server rechtstreeks om te controleren of deze zonder fouten wordt uitgevoerd:
azd tagger mcp startDe server wordt gestart en luistert naar standaardinvoer en -uitvoer. Een MCP-client, zoals een AI-agent die is geconfigureerd voor het gebruik van uw extensie, maakt verbinding met deze server om uw hulpprogramma's aan te roepen.