Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozszerzenie Azure Developer CLI (azd) może udostępniać narzędzia agentom AI za pośrednictwem serwera Model Context Protocol (MCP). Po dodaniu funkcji mcp-server agenci, tacy jak GitHub Copilot, mogą wykrywać i wywoływać narzędzia Twojego rozszerzenia. W tym artykule pokazano, jak dodać serwer MCP do przykładowego rozszerzenia Contoso Resource Tagger opisanego w przewodniku Szybki start: tworzenie przykładowego rozszerzenia. Ten sam wzorzec można zastosować do dowolnego rozszerzenia.
Uwaga / Notatka
azd rozszerzenia są obecnie w wersji beta.
Jak działają serwery MCP
Protokół kontekstu modelu to otwarty standard, który umożliwia agentom sztucznej inteligencji odnajdywanie i wywoływanie narzędzi udostępnianych przez serwery zewnętrzne. Gdy rozszerzenie deklaruje funkcję mcp-server, azd może uruchomić to rozszerzenie jako serwer MCP i przekazywać do niego żądania użycia narzędzi od agenta. Rozszerzenie implementuje narzędzia, które agent wywołuje w celu wykonywania zadań, takich jak sugerowanie standardowych tagów dla projektu.
Deklarowanie możliwości
Dodaj funkcję mcp-server do manifestu extension.yaml:
capabilities:
- custom-commands
- mcp-server
Możesz również dodać sekcję mcp do manifestu, aby skonfigurować sposób azd uruchamiania serwera MCP. Właściwość serve obsługuje args i env; azd już zna plik wykonywalny rozszerzenia, więc nie podajesz polecenia:
mcp:
serve:
args:
- mcp
- start
Dodawanie polecenia MCP
Dodaj polecenie uruchamiające serwer MCP.
azd Wywołuje to polecenie, aby uruchomić rozszerzenie jako serwer MCP. Użyj biblioteki serwerów MCP dla języka Go, takiej jak mcp-go, aby obsłużyć protokół.
Utwórz plik o nazwie
mcp.gowinternal/cmdkatalogu: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) }, } }Zarejestruj polecenie
mcpw swoim poleceniu głównym:rootCmd.AddCommand(newMcpCommand())
Implementowanie narzędzia
Zdefiniuj narzędzie, które wywołuje agent sztucznej inteligencji. Dodaj następujące narzędzie suggest_tags do tego samego pliku internal/cmd/mcp.go utworzonego wcześniej. Identyfikatory mcp i server pochodzą z pakietów już zaimportowanych w tym pliku (github.com/mark3labs/mcp-go/mcp i github.com/mark3labs/mcp-go/server), a procedura obsługi korzysta również z importów context i fmt. Dodanie funkcji do mcp.go pozwala ponownie wykorzystać te importy, dzięki czemu kod się kompiluje:
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
}
Testowanie serwera MCP
Po dodaniu serwera MCP ponownie skompiluj rozszerzenie i sprawdź, czy serwer zostanie uruchomiony:
Skompiluj rozszerzenie:
azd x buildUruchom serwer MCP bezpośrednio, aby sprawdzić, czy działa bez błędów:
azd tagger mcp startSerwer uruchamia się i nasłuchuje standardowych danych wejściowych i wyjściowych. Klient MCP, taki jak agent sztucznej inteligencji skonfigurowany do korzystania z rozszerzenia, łączy się z tym serwerem w celu wywołania narzędzi.