Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una extensión de la CLI para desarrolladores de Azure (azd) puede exponer herramientas a agentes de IA a través de un servidor del Protocolo de contexto de modelo (MCP). Cuando agregas la capacidad mcp-server, los agentes, como GitHub Copilot, pueden descubrir e invocar las herramientas de tu extensión. En este artículo se muestra cómo agregar un servidor MCP a la extensión de ejemplo Contoso Resource Tagger del inicio rápido Creación de una extensión de ejemplo. Puede aplicar el mismo patrón a cualquier extensión.
Note
azd las extensiones están actualmente en versión beta.
Funcionamiento de los servidores MCP
El protocolo de contexto de modelo es un estándar abierto que permite a los agentes de inteligencia artificial detectar y llamar a herramientas proporcionadas por servidores externos. Cuando su extensión declara la capacidad mcp-server, azd puede iniciar su extensión como un servidor MCP y redirigir las solicitudes de herramientas de un agente a su extensión. La extensión implementa herramientas a las que llama el agente para realizar tareas, como sugerir etiquetas estandarizadas para un proyecto.
Declaración de la funcionalidad
Agregue la mcp-server funcionalidad al extension.yaml manifiesto:
capabilities:
- custom-commands
- mcp-server
También puede agregar una mcp sección al manifiesto para configurar cómo azd inicia el servidor MCP. La propiedad serve admite args y env; azd ya conoce el ejecutable de la extensión, por lo que no es necesario especificar ningún comando:
mcp:
serve:
args:
- mcp
- start
Adición de un comando MCP
Agregue un comando que inicie el servidor MCP.
azd invoca este comando para ejecutar la extensión como un servidor MCP. Use una biblioteca de servidores MCP para Go, como mcp-go, para controlar el protocolo.
Cree un archivo denominado
mcp.goen elinternal/cmddirectorio: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) }, } }Registrar el comando
mcpen el comando raíz:rootCmd.AddCommand(newMcpCommand())
Implementación de una herramienta
Defina la herramienta a la que llama el agente de IA. Agregue la siguiente suggest_tags herramienta al mismo internal/cmd/mcp.go archivo que creó anteriormente. Los identificadores mcp y server provienen de los paquetes ya importados en ese archivo (github.com/mark3labs/mcp-go/mcp y github.com/mark3labs/mcp-go/server), y el controlador también utiliza las importaciones context y fmt. Al añadir la función a mcp.go, se reutilizan esas importaciones, por lo que el código compila:
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
}
Prueba del servidor MCP
Después de agregar el servidor MCP, vuelva a generar la extensión y compruebe que se inicia el servidor:
Recompile la extensión:
azd x buildInicie el servidor MCP directamente para comprobar que se ejecuta sin errores:
azd tagger mcp startEl servidor se inicia y escucha en la entrada y salida estándar. Un cliente MCP, como un agente de IA configurado para usar la extensión, se conecta a este servidor para llamar a las herramientas.