Tato příručka vysvětluje, jak nakonfigurovat sadu GitHub Copilot SDK tak, aby pro interakci s prostředky Azure používala nástroje MCP (Azure Model Context Protocol).
Azure MCP poskytuje sadu nástrojů, které umožňují asistentům AI pracovat s prostředky Azure přímo. Při integraci se sadou Copilot SDK můžete vytvářet aplikace, které využívají přirozený jazyk ke správě předplatných, skupin prostředků, účtů úložiště a dalších.
Předpoklady
Přihlášení k Azure MCP Serveru pro místní vývoj
Azure MCP Server se autentizuje vůči Microsoft Entra ID pomocí knihovny Azure Identity pro .NET. Server podporuje dva režimy ověřování:
-
Režim zprostředkovatele: Používá nativní ověřování operačního systému (například Správce webových účtů systému Windows) s
InteractiveBrowserCredential.
-
Režim řetězu přihlašovacích údajů: Zkouší více metod ověřování v posloupnosti: proměnné prostředí, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI a interaktivní ověřování v prohlížeči.
Přihlaste se pomocí některé z těchto metod:
- Otevřete paletu příkazů (
Ctrl+Shift+P nebo Cmd+Shift+P na Macu).
- Spusťte Azure: Přihlaste se a postupujte podle pokynů.
- Přejděte do Soubor Nastavení účtu.
- Vyberte Přidat účet a postupujte podle pokynů.
Po přihlášení může Azure MCP Server ověřovat a spouštět operace ve službách Azure na základě vašich oprávnění.
Příklad konfigurace Azure MCP Serveru
Bez ohledu na programovací sadu SDK, kterou používáte, musí být server Azure MCP nakonfigurovaný v kontextu aplikace, aby byly k dispozici nástroje. Základní konfigurace vypadá přibližně takto:
{
"mcp_servers": {
"azure-mcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"],
"tools": ["*"]
}
}
}
Parametr tools: ["*"] je nezbytný – umožňuje pro relaci všechny nástroje ze serveru MCP.
Příklady integrace
Následující příklady ukazují, jak integrovat sadu SDK v různých jazycích.
Poznámka:
Pro rychlejší spuštění můžete azure MCP Server nainstalovat globálně pomocí npm install -g @azure/mcp@latest.
Installation
Nainstalujte balíček sady Python SDK pomocí nástroje pip.
pip install github-copilot-sdk
Ukázkový kód
Následující kód ukazuje úplný tok:
import asyncio
from copilot import CopilotClient
from copilot.generated.session_events import SessionEventType
async def main():
# Initialize the Copilot client
client = CopilotClient({
"cli_args": [
"--allow-all-tools",
"--allow-all-paths",
]
})
await client.start()
# Configure Azure MCP server in session config
azure_mcp_config = {
"azure-mcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"],
"tools": ["*"], # Enable all Azure MCP tools
}
}
# Create session with MCP servers
session = await client.create_session({
"model": "gpt-4.1", # Default model; BYOK can override
"streaming": True,
"mcp_servers": azure_mcp_config,
})
# Handle events
def handle_event(event):
if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA:
if hasattr(event.data, 'delta_content') and event.data.delta_content:
print(event.data.delta_content, end="", flush=True)
elif event.type == SessionEventType.TOOL_EXECUTION_START:
tool_name = getattr(event.data, 'tool_name', 'unknown')
print(f"\n[TOOL: {tool_name}]")
session.on(handle_event)
# Send prompt
await session.send_and_wait({
"prompt": "List all resource groups in my Azure subscription"
})
await client.stop()
if __name__ == "__main__":
asyncio.run(main())
Předchozí kód:
- Inicializuje klienta Copilot.
- Nakonfiguruje server Azure MCP pomocí
npx.
- Vytvoří relaci s modelem GPT-4.1 a povoleným streamováním.
- Zpracovává události pro tisk odpovědí pomocníka a protokolů spouštění nástrojů.
- Odešle výzvu k výpisu skupin prostředků Azure.
Installation
Nainstalujte balíček sady Node.js SDK pomocí npm.
npm install @github/copilot-sdk
Následující kód ukazuje úplný tok:
import { CopilotClient } from '@github/copilot-sdk';
import type { MCPLocalServerConfig } from '@github/copilot-sdk';
async function main() {
// Initialize the Copilot client
const client = new CopilotClient({
cliArgs: [
'--allow-all-tools',
'--allow-all-paths',
]
});
await client.start();
// Configure Azure MCP server in session config
const azureMcpConfig: Record<string, MCPLocalServerConfig> = {
'azure-mcp': {
type: 'local',
command: 'npx',
args: ['-y', '@azure/mcp@latest', 'server', 'start'],
tools: ['*'], // Enable all Azure MCP tools
}
};
// Create session with MCP servers
const session = await client.createSession({
model: 'gpt-4.1', // Default model; BYOK can override
streaming: true,
mcpServers: azureMcpConfig,
});
// Handle events
session.on((event) => {
if (event.type === 'assistant.message_delta') {
if (event.data?.deltaContent) {
process.stdout.write(event.data.deltaContent);
}
} else if (event.type === 'tool.execution_start') {
const toolName = event.data?.toolName || 'unknown';
console.log(`\n[TOOL: ${toolName}]`);
}
});
// Send prompt
await session.sendAndWait({
prompt: 'List all resource groups in my Azure subscription 16caa5c4-46f1-4bfd-8c1b-a99f1efc8845'
});
await client.stop();
}
main().catch(console.error);
Předchozí kód:
- Inicializuje klienta Copilot.
- Nakonfiguruje server Azure MCP pomocí
npx.
- Vytvoří relaci s modelem GPT-4.1 a povoleným streamováním.
- Zpracovává události pro tisk odpovědí pomocníka a protokolů spouštění nástrojů.
- Odešle výzvu k výpisu skupin prostředků Azure.
Installation
Přidejte do projektu obsah balíčku NuGet.
dotnet add package GitHub.Copilot.SDK
Ukázkový kód
Následující kód jazyka C# ukazuje úplný tok:
using GitHub.Copilot.SDK;
// Initialize the Copilot client
await using var client = new CopilotClient(new CopilotClientOptions
{
CliArgs = new[] { "--allow-all-tools", "--allow-all-paths" }
});
await client.StartAsync();
// Configure Azure MCP server in session config
var mcpServers = new Dictionary<string, object>
{
["azure-mcp"] = new McpLocalServerConfig
{
Type = "local",
Command = "npx",
Args = ["-y", "@azure/mcp@latest", "server", "start"],
Tools = ["*"] // Enable all Azure MCP tools
}
};
// Create session with MCP servers
await using var session = await client.CreateSessionAsync(new SessionConfig
{
Model = "gpt-4.1", // Default model; BYOK can override
Streaming = true,
McpServers = mcpServers
});
// Handle events
session.On(evt =>
{
if (evt is AssistantMessageDeltaEvent delta)
{
if (!string.IsNullOrEmpty(delta.Data.DeltaContent))
{
Console.Write(delta.Data.DeltaContent);
}
}
else if (evt is ToolExecutionStartEvent toolStart)
{
Console.WriteLine($"\n[TOOL: {toolStart.Data.ToolName}]");
}
});
// Send prompt
await session.SendAndWaitAsync(new MessageOptions
{
Prompt = "List all resource groups in my Azure subscription"
});
Předchozí kód:
- Inicializuje klienta Copilot.
- Nakonfiguruje server Azure MCP pomocí
npx.
- Vytvoří relaci s modelem GPT-4.1 a aktivovaným streamováním.
- Zpracovává události pro tisk odpovědí pomocníka a protokolů spouštění nástrojů.
- Odešle výzvu k výpisu skupin prostředků Azure.
Installation
Získejte balíček Go SDK pomocí go get.
go get github.com/github/copilot-sdk/go
Ukázkový kód
Následující kód ukazuje úplný tok:
package main
import (
"context"
"fmt"
"log"
copilot "github.com/github/copilot-sdk/go"
)
func main() {
ctx := context.Background()
// Initialize the Copilot client
client, err := copilot.NewClient(copilot.ClientOptions{
CLIArgs: []string{
"--allow-all-tools",
"--allow-all-paths",
},
})
if err != nil {
log.Fatal(err)
}
if err := client.Start(ctx); err != nil {
log.Fatal(err)
}
defer client.Stop(ctx)
// Configure Azure MCP server in session config
azureMcpConfig := map[string]copilot.MCPServerConfig{
"azure-mcp": {
Type: "local",
Command: "npx",
Args: []string{"-y", "@azure/mcp@latest", "server", "start"},
Tools: []string{"*"}, // Enable all Azure MCP tools
},
}
// Create session with MCP servers
session, err := client.CreateSession(ctx, copilot.SessionConfig{
Model: "gpt-4.1", // Default model; BYOK can override
Streaming: true,
MCPServers: azureMcpConfig,
})
if err != nil {
log.Fatal(err)
}
// Handle events
session.OnEvent(func(event copilot.SessionEvent) {
switch event.Type {
case copilot.AssistantMessageDelta:
if event.Data.DeltaContent != "" {
fmt.Print(event.Data.DeltaContent)
}
case copilot.ToolExecutionStart:
fmt.Printf("\n[TOOL: %s]\n", event.Data.ToolName)
}
})
// Send prompt
err = session.SendAndWait(ctx, copilot.Message{
Prompt: "List all resource groups in my Azure subscription",
})
if err != nil {
log.Fatal(err)
}
}
Předchozí kód:
- Inicializuje klienta Copilot.
- Nakonfiguruje server Azure MCP pomocí
npx.
- Vytvoří relaci s modelem GPT-4.1 a povoleným streamováním.
- Zpracovává události pro tisk odpovědí pomocníka a protokolů spouštění nástrojů.
- Odešle výzvu k výpisu skupin prostředků Azure.